Bagaimana cara menentukan grup dengan chmod?

34

Saya diminta untuk menambahkan izin grup-wrx ke direktori di folder rumah pengguna lain.

Saya percaya apa yang harus saya lakukan dijalankan chmod 771 -R directorynamedi direktori induk. Apa yang saya tidak dapat menemukan tempat di tabung adalah bagaimana untuk menentukan mana kelompok saya ingin memberikan hak akses ini untuk. Saya pribadi di sejumlah grup, dan dalam banyak yang saya tidak tahu sebagai root.

Dalam hal ini penting, sistem menjalankan Redhat 5.4.

joe_young
sumber

Jawaban:

37

The chmod()system call, dan dengan ekstensi chmodProgram, tidak mempengaruhi kelompok file atau direktori (atau jenis file: blok khusus, karakter khusus, socket, ... symlink adalah sesuatu kasus khusus). Jadi, grup tempat izin diberikan akan menjadi grup tempat file atau direktori berada.

Untuk menambahkan rwxizin grup , Anda harus menggunakan:

chmod -R g+rwx DirectoryName

Namun, ini menambahkan izin untuk setiap file serta setiap direktori, dan tidak semua file harus dapat dieksekusi. Secara pribadi, saya akan sangat tidak senang jika seseorang memberikan izin menulis kelompok pada semua (atau apa pun) direktori saya, tapi itu cerita lain.

Untuk hanya memengaruhi direktori, gunakan find:

find DirectoryName -type d -exec chmod g+rwx {} +

( +Notasi adalah POSIX 2008; tidak semua sistem Unix mendukungnya, meskipun Linux mendukungnya.)

Jonathan Leffler
sumber
1
Jika Anda menggunakan + X (modal X), Anda hanya akan menambahkan izin eksekusi (atau 'cari') jika file tersebut adalah direktori atau sudah memiliki izin eksekusi untuk beberapa pengguna. linux.die.net/man/1/chmod
Dave
@Dave: chmod +Xsepertinya didukung pada BSD (Mac OS X) juga. Pengawasan POSIX yang hati-hati chmodmenunjukkan bahwa itu +Xadalah fitur POSIX: Simbol perm X akan mewakili bagian eksekusi / pencarian dari bit mode file jika file tersebut adalah direktori atau jika bit mode file saat ini (tidak dimodifikasi) memiliki setidaknya satu dari bit eksekusi (S_IXUSR, S_IXGRP, atau S_IXOTH) ditetapkan. Itu harus diabaikan jika file bukan direktori dan tidak ada bit eksekusi yang ditetapkan dalam bit mode file saat ini. Perhatikan Dasar Pemikiran di bawah ini.
Jonathan Leffler
12

Setiap file pada sistem file ext memiliki:

  1. Pengguna pemilik
  2. Grup pemilik
  3. Izin untuk pengguna ini, grup ini, dan semua orang lainnya.

Jika Anda mengatur izin grup rwx pada file, hanya grup pemilik file yang dapat membaca / menulis / menjalankannya. Namun, Anda dapat mengubah pengguna dan pemilik dengan:

chown username file1 file2 ...
chown -R username somedir
chgrp groupname file1 file2 ....
chgrp -R groupname somedir
chown username:groupname file1 file2 ...

Ada beberapa implementasi berbeda untuk hak istimewa filesystem yang diperluas, yaitu ACL (Access Control Lists) pada Mac OS X, tetapi karena saya bukan ahli Linux, Anda mungkin harus bertanya pada Server Fault untuk itu.

Marian Theisen
sumber
"jadi jika Anda mengatur izin grup rwx pada file, hanya grup pemilik file yang dapat membaca / menulis / menjalankannya" saya menyadari, itu mungkin menyesatkan, pertama-tama jika Anda adalah pengguna pemilik, tentu saja aturan pengguna pemilik diutamakan, jika Anda bukan pengguna pemilik, atau dalam grup pemilik, aturan untuk orang lain berlaku.