Як вказати групу з chmod?


34

Мене попросили додати дозволи дозволу group-wrx до каталогу в домашній папці іншого користувача.

Я вважаю, що я повинен запустити chmod 771 -R directorynameв батьківський каталог. Те, що я не можу знайти ніде в пробірках, - це як вказати, якій групі я хочу надати ці дозволи. Я особисто в декількох групах, і в групі я не знаю про корінь.

У випадку, якщо це має значення, система працює Redhat 5.4.

Відповіді:


37

chmod()Системний виклик, і в більш широкому сенсі chmodпрограма, не впливає на групу файлу або каталогу (або інший тип файлу: спеціальний блоковий, спеціальний символьний, розетка, ... символічна є чим - то особливий випадок). Отже, групою, якій надано дозвіл, буде група, до якої належить файл чи каталог.

Щоб додати групові rwxдозволи, слід використовувати:

chmod -R g+rwx DirectoryName

Однак це додає дозволи до кожного файлу, а також до кожного каталогу, і не всі файли повинні бути виконані. Особисто я був би дуже незадоволений, якби хтось надав груповий дозвіл на написання у всіх (або будь-яких) моїх каталогах, але це вже інша історія.

Щоб впливати лише на каталоги, використовуйте findнатомість:

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

( +Позначення є POSIX 2008; не всі системи Unix підтримують його, хоча Linux це робить.)


1
Якщо ви використовуєте + X (з великої літери X), ви додасте дозвіл на виконання (або "пошук") лише в тому випадку, якщо файл є каталогом або вже мав дозвіл на виконання для якогось користувача. linux.die.net/man/1/chmod
Дейв

@Dave: chmod +Xтакож підтримується на BSD (Mac OS X). Ретельний контроль POSIX chmodвказує на те, що +Xє функцією POSIX врешті-решт: Символ перманентної форми X повинен представляти частину виконання / пошуку бітів режиму файлу, якщо файл - це каталог або якщо поточні (немодифіковані) біти режиму файлу мають принаймні один із набір бітів виконання (S_IXUSR, S_IXGRP або S_IXOTH). Він ігнорується, якщо файл не є каталогом і жоден з бітів виконання не встановлений у поточному біті режиму файлу. Зверніть увагу на обґрунтування нижче.
Джонатан Леффлер

12

Кожен файл у файловій системі ext має:

  1. Власник користувача
  2. Група власників
  3. Дозволи для цього користувача, цієї групи та всіх інших.

Якщо ви встановлюєте дозволи групи rwx для файлу, лише група власників цього файлу може його читати / записувати / виконувати. Однак ви можете змінити користувача та власника за допомогою:

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

Існують різні реалізації для розширених привілеїв файлової системи, тобто ACL (списки контролю доступу) на Mac OS X, але оскільки я не є експертом Linux, ви, ймовірно, повинні просити серверну помилку для цього.


"Отже, якщо ви встановлюєте дозволи для групи rwx для файлу, лише група власників цього файлу може читати / записувати / виконувати його", я розумію, що це може ввести в оману, перш за все, якщо ви власник користувача, звичайно Правила власника користувача мають перевагу, якщо ваш ні власник, ні група власників, діють правила для інших.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.