Jak określić grupę za pomocą chmod?

34

Poproszono mnie o dodanie uprawnień grupy-wrx do katalogu w folderze domowym innego użytkownika.

Wierzę, że powinienem uruchomić chmod 771 -R directorynamew katalogu nadrzędnym. Nigdzie nie mogę znaleźć na tubach tego, jak określić, do której grupy chcę przyznać te uprawnienia. Jestem osobiście w wielu grupach i w grupie, o której nie wiem jako root.

W razie potrzeby w systemie działa Redhat 5.4.

joe_young
źródło

Odpowiedzi:

37

chmod()Wywołanie systemowe, oraz rozbudowie chmodprogramu, nie ma wpływu na grupę pliku lub katalogu (lub innego typu pliku: Dom Specjalny, znak specjalny, gniazda ... symlink jest czymś szczególnym przypadku). Tak więc grupa, do której udzielono uprawnienia, będzie grupą, do której należy plik lub katalog.

Aby dodać rwxuprawnienia grupy , należy użyć:

chmod -R g+rwx DirectoryName

Dodaje to jednak uprawnienia do każdego pliku, a także do każdego katalogu, i nie wszystkie pliki powinny być wykonywalne. Osobiście byłbym bardzo niezadowolony, gdyby ktoś zapewnił grupowe pozwolenie na pisanie we wszystkich (lub w dowolnym) moim katalogu, ale to inna historia.

Aby wpływać tylko na katalogi, użyj findzamiast tego:

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

( +Notacja to POSIX 2008; nie wszystkie systemy Unix ją obsługują, choć Linux tak.)

Jonathan Leffler
źródło
1
Jeśli użyjesz + X (duże X), dodasz uprawnienia do wykonywania (lub „wyszukiwania”) tylko wtedy, gdy plik jest katalogiem lub już miał uprawnienia do wykonywania dla niektórych użytkowników. linux.die.net/man/1/chmod
Dave
Wygląda na chmod +Xto, że @Dave: jest także obsługiwany w BSD (Mac OS X). Dokładna analiza POSIX chmodwskazuje, że +Xjest to w końcu funkcja POSIX: Symbol perm X reprezentuje część wykonywania / wyszukiwania bitów trybu pliku, jeśli plik jest katalogiem lub jeśli bieżące (niezmodyfikowane) bity trybu pliku mają co najmniej jeden z zestaw bitów wykonania (S_IXUSR, S_IXGRP lub S_IXOTH). Należy go zignorować, jeśli plik nie jest katalogiem i żaden z wykonywanych bitów nie jest ustawiony w bieżącym bicie trybu pliku. Zwróć uwagę na uzasadnienie poniżej.
Jonathan Leffler,
12

Każdy plik w systemie plików ext ma:

  1. Użytkownik będący właścicielem
  2. Grupa właścicieli
  3. Uprawnienia dla tego użytkownika, tej grupy i wszystkich innych osób.

Jeśli ustawiasz uprawnienia grupy rwx dla pliku, tylko grupa właścicieli tego pliku może go odczytać / zapisać / wykonać. Możesz jednak zmienić użytkownika i właściciela za pomocą:

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

Istnieją różne implementacje rozszerzonych uprawnień systemu plików, np. Listy ACL (listy kontroli dostępu) w systemie Mac OS X, ale ponieważ nie jestem ekspertem od Linuksa, prawdopodobnie powinieneś o to poprosić w usłudze Server Fault .

Marian Theisen
źródło
„więc jeśli ustawiasz uprawnienia grupy rwx do pliku, tylko grupa właściciela tego pliku może go odczytać / zapisać / wykonać”, zdaję sobie sprawę, że może to wprowadzać w błąd, przede wszystkim jeśli jesteś właścicielem właściciela, oczywiście reguły użytkownika właściciela mają pierwszeństwo, jeśli nie jesteś właścicielem użytkownika ani grupą właścicieli, obowiązują zasady dla innych.