Tidak dapat membaca file meskipun di grup saya dan izin untuk membaca grup ditetapkan

14

Saya menemukan masalah aneh pada mesin unix / linux:

Saya anggota grup, sebut saja grup A dan file tertentu (yang memiliki pemilik berbeda) milik grup A juga. Izin file itu adalah

-rw-rw----

jadi saya berharap saya bisa membuka file itu, tetapi saya tidak: Saya akan mendapatkan pesan kesalahan "Izin ditolak" ketika saya mencoba melihat konten file (menggunakan cat).

Karena izin tampaknya benar, apa lagi yang menyebabkan ini? Apakah ada pembatasan izin "penggantian"? Jika demikian, bagaimana saya mencari tahu?

Lagerbaer
sumber
2
Bagaimana dengan izin direktori?
Karlson
Jika Anda berada dalam beberapa grup, apakah grup Anda saat ini disetel ke A?
Code-Guru
2
@Karlson, jika izin direktori adalah masalah, Anda tidak akan dapat melihat izin file di tempat pertama.
cjm
Tolong tunjukkan kami path lengkap dan nama file.
jippie
Ada di /home/theotheruser/somefolder/bla.txt saya ada di banyak grup.
Lagerbaer

Jawaban:

8

Sudahkah Anda logout dan login kembali sejak Anda ditambahkan ke grup A?

Jika tidak, proses login Anda saat ini hanya akan memiliki keanggotaan grup yang dimilikinya pada saat login, tidak ada perubahan sejak itu. Dan setiap proses anak dari login itu akan memiliki keanggotaan grup yang sama (yaitu jika Anda masuk ke X maka setiap aplikasi termasuk emulator dan shell terminal Anda)

Anda dapat menguji ini dengan masuk lagi di konsol lain atau melalui ssh, atau sesuatu seperti exec sudo -u $(id -u -n) -i(untuk secara efektif membunuh dan mengganti shell saat ini dengan shell baru - semua proses latar belakang milik shell itu akan menjadi yatim)

cas
sumber
Tidak, bukan itu masalahnya; Saya login dan kembali dan itu tidak menyelesaikannya.
Lagerbaer
3

Dengan NFS, itu tergantung pada mode keamanan yang Anda gunakan, tetapi dalam yang tradisional, daftar grup milik pengguna dikirim oleh klien ke server, dan ada batasan pada jumlah grup yang dapat dikirim (itu adalah 16 terakhir kali saya periksa).

Jadi, klien mengatakan: Saya uid 1234 dan omong-omong saya anggota grup 12, 13, 14 ... Jika Anda berada di lebih dari 16 grup, daftar itu akan dipotong dan akan ada grup untuk dimana server tidak sadar Anda adalah anggota dari itu.

Mungkin itulah penjelasannya. Hanya administrator sistem mesin lokal dan / atau jarak jauh yang dapat melakukan sesuatu dengan mengubah model keamanan atau pengaturan server NFS atau dengan mengurangi jumlah grup tempat Anda menjadi anggota.

Stéphane Chazelas
sumber
Saya memiliki perasaan yang kuat bahwa ini adalah alasannya, karena grup saya muncul di posisi 19 di output dari perintah "grup". Saya akan menunjukkan jawaban ini kepada sys admin dan melihat apakah itu membantu. :)
Lagerbaer
Bagaimana Anda mengubah "model keamanan" pada NFS untuk menyelesaikan ini?
Danny
2

Seperti yang Anda catat dalam komentar, Anda tidak memiliki izin untuk membaca /home/username. Tetapi untuk membaca /home/username/path1/path2/file, Anda perlu menjalankan izin untuk seluruh jalur.

Untuk men-debug ini, jalankan namei -l /home/username/path1/path2/filesebagai pengguna yang membaca file.

Adam Trhon
sumber
Itulah masalah dalam kasus saya. Saya ingin memberikan hak pengguna lain untuk beroperasi pada subfolder dir home saya, tetapi dir home saya memiliki akses 700, sehingga mereka mendapat "Izin ditolak" untuk perintah apa pun.
Cerberus
1

Bisa jadi ACL. Lihat

getfacl the-file

Bisa jadi karena alasan tertentu, grup tempat Anda berada tidak diatur dengan benar. Periksa dengan

id -a

Bagaimana dengan

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

Apa jenis sistem berkasnya?

Adaptor, SELinux, atau kontrol akses wajib apa pun yang ada di sistem?

Anda yakin file tidak mengandung teks "Izin ditolak", kan ;-)?

Stéphane Chazelas
sumber
Tidak, tidak ada ACL khusus, itu hanya mengulangi apa yang dikatakan bendera standar kepada saya, dan id -a memberi tahu saya bahwa saya ada di grup file itu
Lagerbaer
Yang aneh adalah, saya bisa melihat file pengguna lain milik grup B, yang saya juga anggota ...
Lagerbaer
Sistem file tampaknya nfs4. namei memberi saya / dan rumah milik root, root. / home / username milik username dan group X (di mana saya bukan anggota), maka sisanya adalah / home / username / path1 / path2 / file di mana path1 milik username dan group X, dan path2 milik username, dan grup A, di mana saya menjadi anggota.
Lagerbaer