Izin grup memungkinkan, tetapi izin tetap ditolak

43

Saya memiliki partisi ext4 dan saya telah mengatur pemilik grup untuk semua subdirektori ke mygroup:

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

Pengguna saya adalah bagian dari grup itu. Di dalam partisi itu ada folder yang dimiliki oleh pengguna 'tidak ada' dan sekarang oleh grup 'mygroup'. Pengguna saya adalah bagian dari 'mygroup'. Inilah ls-l:

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

Perhatikan bahwa saya tidak dapat menghapus atau membuat file yang dimiliki oleh grup yang menjadi bagian dari pengguna saya.

Saya kira saya tidak sepenuhnya mengerti cara kerja kelompok. Saya pikir jika Anda adalah bagian dari grup maka Anda mewarisi izin grup itu. Apakah saya melakukan sesuatu yang salah?

Terima kasih

Kekacauan
sumber
Sepertinya triad izin adalah pemilik-grup-dunia. Di atas Anda dapat melihat drwxr-sr-x untuk direktori. Jadi izin grup adalah rs. Sepertinya chmod -R tidak secara rekursif mengatur izin ke rwx. Ketika saya membalik bit untuk izin grup folder, itu berfungsi.
Kekacauan

Jawaban:

70

Apakah Anda baru-baru ini menambahkan pengguna itu ke grup itu, tanpa keluar / di antaranya? Kemudian "grup" akan menampilkan grup tetapi pengguna belum memiliki izin grup.

Anda dapat menunjukkan grup efektif Anda menggunakan

$ id

Sebagai contoh, jika saya menambahkan pengguna saya pske grup faxdan kemudian ketik

$ id

itu tidak menunjukkan grup fax, tetapi

$ groups ps

menunjukkan fax.

Melakukan suke pengguna Anda sendiri memberi Anda afiliasi grup baru:

$ su ps
$ id

Output sekarang juga mengandung fax.

peschü
sumber
1
Ini sangat membantu untuk mengetahui. Terutama bagian 'sudo <username>'.
Kekacauan
4
log in / out sangat jelas sehingga saya melewatkan intinya, terima kasih banyak sobat!
nicolallias
1
@ peschü saya miliki sudodan menggunakannya secara teratur. Kesalahan yang saya tunjukkan kepada Anda mengeluh bahwa perintah ubuntu(yaitu, nama pengguna) bukan perintah yang dikenali. Saya tidak berpikir saran Anda secara sintaksis benar - mungkin itu berfungsi dalam kasus Anda karena pskebetulan juga menjadi perintah serta nama pengguna.
beldaz
1
@ Beldaz oh tidak! Kamu benar! benar secara sintaksis su <username>. Saya telah mengedit posting.
peschü
1
sialan logout lama / log in lagi bekerja setiap saat.
Steampunkery
9

Metode yang Anda gunakan tampaknya benar. Saya baru saja mencoba untuk mereplikasi itu, dan itu bekerja dengan baik.

Saya tidak yakin apakah ada kesalahan ketik, tetapi ada sedikit masalah dengan perintah. Tidak perlu ada "grup saya" yang disebutkan di sana. Pekerjaan berikut

# chmod -R g+swrx /mount/abc

Bahkan, Anda dapat menghapus sbit, lakukan saja g+rwx. Setelah Anda mengubah izin, dan Anda melakukannya ls -l, itu akan menampilkan hak istimewa yang relevan.

Vivek Kapoor
sumber
2
Saya menghapus kesalahan ketik dengan nama grup. Direktori memiliki izin wrx di atasnya ketika Anda melakukan ls-l, dan itu dimiliki oleh siapa pun: mygroup. Meskipun myuser adalah bagian dari mygroup, myuser masih tidak dapat membuat / menghapus file. Saya harap itu masuk akal.
Kekacauan
3

Anda tidak dapat menghapus file karena grup mygrouptidak memiliki izin menulis pada file test.pngserta folder. Untuk operasi tulis agar berfungsi pada file, izin file akan terlihat seperti:

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

Jika Anda melihat lebih dekat pada format izin

duuugggooo

Tiga penampung pertama uuuadalah pengguna r benar menyebalkan, w ritus dan e x ecute. Tiga penampung berikutnya gggadalah untuk grup dan ooountuk orang lain. Dalam potongan diposting oleh kelompok OP yang hilang w izin ritus.

Ashoka Lella
sumber
2

Untuk menambah jawaban yang diterima (karena saya belum bisa berkomentar):

Jika Anda menggunakan perangkat lunak seperti BitVise untuk membuat koneksi SSH ke server Anda, cukup menutup & membuka kembali terminal tidak akan dihitung sebagai masuk dan keluar. Ini akan melakukan hal-hal seperti memuat ulang Anda ~/.bashrc, tetapi tidak melakukan pembaruan grup yang sebenarnya (jika Anda menambahkan grup dalam sesi "login" Anda). Agar ini berlaku, Anda harus keluar sepenuhnya dan masuk lagi dengan kunci SSH / kredensial Anda.

Figidon
sumber
2

Direktori memerlukan x bit set (untuk direktori yang bit dilihat sebagai bit pencarian) untuk membuka. Jadi saya menggunakan pohon sehingga saya hanya dapat mengatur folder dan menghindari mimpi buruk memiliki semua file ditetapkan sebagai executable (opsi untuk pohon adalah -d List directories only.):

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

Peringatan!!! Anda harus mempertimbangkan ini:

  • menggunakan chmod atau chown rekursif pada /direktori root atau direktori sistem akan menghancurkan OS Anda (sebenarnya apa pun yang rekursif pada /direktori atau direktori sistem berbahaya)

  • ini bukan praktik keamanan yang baik untuk mengatur izin massal seperti itu

Eduard Florinescu
sumber
1
Terima kasih banyak! Kata-kata "Direktori perlu set x bit" menyelesaikan masalah saya! Saya melakukan "sudo chmod g + x <parent dir path>" dan berhasil.
kinORnirvana