Oke, itu yang baru. Saya telah melihat kasus seperti itu dengan perangkat penyimpanan yang salah, dengan kesalahan dalam penyimpanan jarak jauh (SAN, NAS), saya pikir saya bahkan telah melihat sesuatu yang serupa yang disebabkan oleh izin pemasangan. Tapi ini pertama kalinya saya melihat ini terjadi pada sistem file yang sama dengan homedir saya ....
Saya sangat ingin tahu tentang itu ... Permision macam apa yang muncul di sini? Jelas bukan mount (saya menggunakan filesystem ext4 yang sama), bukan SELinux, bukan ACL. Lalu apa???
Saya tidak ingat bagaimana direktori ini dibuat. Kemungkinan itu dibuat oleh beberapa jenis perangkat lunak.
Bagi saya yang paling aneh adalah bahwa direktori tersebut bahkan tidak diizinkan untuk melihat info orang tuanya (perintah terakhir) ...
Linux Mint Sarah
user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ? ? workspace
user01@MyPC ~/somedirectory $ ls -ld ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27 2016 ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
user01@MyPC ~/somedirectory $
user01@MyPC ~/somedirectory $
user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ? ? workspace
user01@MyPC ~/somedirectory $
user01@MyPC ~/somedirectory $
user01@MyPC ~/somedirectory $ sudo file ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:: directory
user01@MyPC ~/somedirectory $ sudo ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
viso 4
drwxr-xr-x 3 user01 user01 4096 Rgs 27 2016 workspace
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
Size: 4096 Blocks: 8 IO Block: 4096 aplankas
Device: 807h/2055d Inode: 3937216 Links: 3
Access: (0644/drw-r--r--) Uid: ( 1000/ user01) Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
Birth: -
user01@MyPC ~/somedirectory $ sudo getfacl ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
# file: deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
# owner: user01
# group: user01
user::rw-
group::r--
other::r--
user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
Size: 4096 Blocks: 8 IO Block: 4096 aplankas
Device: 807h/2055d Inode: 3937216 Links: 3
Access: (0644/drw-r--r--) Uid: ( 1000/ user01) Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
Birth: -
user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
stat: nepavyksta patikrinti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace'
Size: 4096 Blocks: 8 IO Block: 4096 aplankas
Device: 807h/2055d Inode: 3937217 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 1000/ user01) Gid: ( 1000/ user01)
Access: 2017-09-21 12:58:46.845727190 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2016-12-02 13:56:08.298109826 +0200
Birth: -
user01@MyPC ~/somedirectory $ stat .
File: '.'
Size: 4096 Blocks: 8 IO Block: 4096 aplankas
Device: 807h/2055d Inode: 3278479 Links: 23
Access: (0755/drwxr-xr-x) Uid: ( 1000/ user01) Gid: ( 1000/ user01)
Access: 2017-09-21 09:46:22.102269130 +0300
Modify: 2017-09-20 17:33:04.564009275 +0300
Change: 2017-09-20 17:33:04.564009275 +0300
Birth: -
user01@MyPC ~/somedirectory $ ll ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/.': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/..': Permission denied
viso 0
d????????? ? ? ? ? ? ./
d????????? ? ? ? ? ? ../
d????????? ? ? ? ? ? workspace/
user01@MyPC ~/somedirectory $
Atribut:
user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace
user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace/directory2
user01@MyPC ~/somedirectory $
sumber
Jawaban:
Pada file cukup baca untuk memeriksa izin. Anda perlu membaca DAN menjalankan di folder untuk ls mereka.
Capital X hanya mengatur eksekusi pada folder (dan file yang telah memiliki bit eksekusi).
sumber
Membaca izin suatu file memerlukan pemanggilannya
stat(2)
, dan itu memerlukan izin eksekusi / akses pada direktori yang berisi (semua direktori di jalur). Ini sebenarnya sama dengan setiap panggilan sistem lain yang menggunakan nama file. Namun, membaca isi direktori (daftar nama file) hanya memerlukan akses baca pada direktori.Dalam cuplikan sampel Anda:
ls
mencoba meneleponstat(".../bin/D:/workspace")
, mendapat kesalahan dan mengeluh. Pada beberapa sistem Anda dapat memperoleh informasi parsial darireaddir
/getdents
panggilan bersama dengan nama file, tanpa perlu menggunakanstat
. Seperti di sini,workspace
ditampilkan sebagai direktori.Dan di sini kita melihat tidak ada x bit untuk pengguna mana pun:
Sebagai root, Anda mendapatkan daftar lengkap, karena menjadi root mengabaikan bit izin sepenuhnya.
sumber
LC_ALL=C
mengekspor ke lingkungan Anda?Untuk melihat atribut file, seseorang perlu hak untuk membaca direktori. Jika ini tidak memungkinkan, tanda tanya akan ditampilkan.
Untuk alasan mengapa pengguna itu tidak dapat membaca informasi, lihat atribut direktori (di
.../D:/.
atas). Penyebab lain yang mungkin terjadi adalah jika direktori telah dihapus atau tidak dapat diakses (misalnya sistem file jaringan, basi pegangan) karena alasan yang berbeda dari mode akses.sumber
ll
gagal sepertiuser01
pada orangtua mana pun yang di-root). Tidak perlu memposting output, cukup beri tahu kami hasilnya.ls
tes yang sama . Hasilnya identikx
mengibarkan bendera, jadi HoD benar. Saya belum melihat itu dalam output Anda yang berantakan.strace
akan memberitahumu itu. terlalu.Hari ini saya memiliki masalah yang sangat mirip, dengan gejala yang sama: tanda tanya di bidang izin dan kepemilikan, dan bahkan dengan root / sudo saya tidak dapat mengubah semua ini. Lalu saya akhirnya ingat bahwa direktori khusus ini sebenarnya adalah titik tunjuk ke direktori pada berbagi file Windows, yang telah saya buat beberapa minggu yang lalu (dalam sesi percobaan untuk melihat apakah Samba / CIFS ada gunanya untuk proyek saya) dan tampaknya itu dilepas sementara itu. Setelah menerbitkan kembali
mount.cifs
perintah dan memasukkan kredensial saya untuk bagian Windows dari jaringan kami, 'ls' melaporkan izin normal dan informasi kepemilikan pada direktori. Karena gejalanya tampak persis seperti Anda, saya ingin tahu apakah Anda berada dalam situasi yang sama, juga karena "D:" terlihat sangat Windows-ish.sumber
~
). Plus mereka sudah sadar bahwa masalah seperti ini dapat disebabkan oleh masalah pemasangan dengan penyimpanan jarak jauh.stat
perintah mengkonfirmasi ini. BandingkanDevice
bidang untukstat .
vs sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D \: File: './deploy_dir/liferay-portal-6.1.1-ce -ga2 / tomcat-7.0.27 / bin / D: '`. Sama. Output ini adalah bukti yang baik bahwa mereka berada di sistem file yang sama.