1 авг. 2008 г.

Определение прав доступа в виде числового кода



Помните сокращенный вариант записи аргументов команды chmod? Рассмотрим теперь другой способ изменения прав доступа. На первый взгляд он выглядит более сложным.
Вернем первоначальные права доступа к файлу example1.txt:
-rw-rw-r--  1 user user 42 Мар 24 22:07 example1.txt
Каждый тип прав доступа может быть представлен в цифровом виде:
  • r = 4
  • w = 2
  • x = 1
  • - = 0
Для установки определенных прав доступа используется сумма этих значений. Например, если вы хотите дать право на чтение и запись, необходимо использовать число 6, так как 4 (чтение) + 2 (запись) = 6.
Вот цифровой эквивалент прав доступа для файла example1.txt:
-  (rw-)   (rw-)  (r--)
    |       |      |
  4+2+0   4+2+0  4+0+0

Сумма прав пользователя равна 6, сумма прав группы равна 6, и сумма прав остальных пользователей равна 4. Права доступа читаются как 664.
Если вы хотите изменить права доступа таким образом, чтобы пользователи, принадлежащие к вашей группе, могли читать файл, но не могли изменять его, отберите у них соответствующее право вычитанием двойки из соответствующего набора чисел.
Цифровой эквивалент станет равным числу 644.
Чтобы ввести в действие новые настройки, введите:
chmod 644 example1.txt
Теперь проверьте изменения, набрав следующую команду:
ls -l example1.txt
Вывод должен быть:
-rw-r--r--   1 user user 42 Мар 24 22:17 example1.txt
Теперь ни у группы, ни у других пользователей нет права на запись в файл example1.txt. Чтобы вернуть право на запись группе, добавьте значение права на запись (2) ко второму набору разрешений.
chmod 664 example1.txt
[Warning]Внимание
Права доступа, зашифрованные как 666, дают всем пользователям право читать и изменять файл или каталог. Права доступа, зашифрованные как 777, дают право любому пользователю читать, изменять и исполнять файл. Данные разрешения позволяют любому изменять важные файлы, поэтому, в общем случае, устанавливать такие разрешения — не лучшая идея.
Вот список некоторых часто используемых настроек, цифровых эквивалентов и их значения:
  • -rw------- (600) — только владелец имеет права на чтение и изменение файла;
  • -rw-r--r-- (644) — только у владельца есть права на чтение и изменение; у группы и остальных есть право только на чтение;
  • -rwx------ (700) — только у владельца файла есть права на чтение, изменение и выполнение файла;
  • -rwxr-xr-x (755) — у владельца есть права на чтение, изменение и выполнение, а у группы и остальных пользователей — на чтение и выполнение;
  • -rwx--x--x (711) — у владельца есть права на чтение, изменение и выполнение, а у группы и остальных пользователей — только на выполнение;
  • -rw-rw-rw- (666) — любой пользователь может читать и изменять файл (будьте осторожны с такими правами);
  • -rwxrwxrwx (777) — любой пользователь может читать, изменять и выполнять файл (еще раз предупреждаем, что в общем случае использовать такие разрешения опасно).
Некоторые часто встречающиеся разрешения для каталогов:
  • drwx------ (700) — только владелец может читать и изменять данный каталог;
  • drwxr-xr-x (755) — владелец может читать и изменять каталог, у пользователей и группы есть право на чтение и выполнение.

Комментариев нет: