Разрешения Unix на самом деле намного менее запутаны, чем вы могли бы подумать, и как только вы перестанете пытаться читать всю строку как одну вещь, а вместо этого будете думать об этом в группах, всегда в схеме 1 3 3 3
становится легче понять.
Фактически, Mac и некоторые другие производные Unix используют структуру 1 3 3 3 1
- подробнее об этом в конце этого поста.
Это объяснение настолько простое, насколько это возможно, включая все соответствующие концепции ...
Извлечено из https://www.cs.swarthmore.edu/help/chmod.html
Unix-файл разрешения
Права доступа к файлам позволяют вам предоставлять или запрещать доступ к вашим файлам и каталогам. Существует три типа разрешений:
- r = читать
- w = запись
- х = выполнить
Эти разрешения означают разные вещи для файлов и каталогов.
Для файлов:
- читать - вы можете открыть и прочитать файл, вы также можете скопировать его.
- написать - вы можете изменить файл
- выполнить - вы можете выполнить (запустить) файл, если он исполняемый (например, программа или команда)
Для каталогов:
- прочитайте - вы можете просмотреть каталог и просмотреть его содержимое.
- написать - вы можете создавать и удалять файлы в этом каталоге.
- выполнить - вы можете перейти в этот каталог.
Используйте команду ls -l для просмотра прав доступа к файлам для ваших файлов и каталогов. Вот пример:
$ ls -l
total 188
drwx------ jk users 4096 2008-10-24 11:30 cs21/
drwx------ jk users 4096 2007-10-01 12:24 mail/
drwxr-xr-x jk users 4096 2008-06-05 10:33 public/
-rw------- jk users 83623 2008-09-10 08:29 turing.pdf
-rw-r--r-- jk users 9134 2008-01-24 16:26 unix-by-example
Первый столбец выше - это права доступа к файлам (drwx ------ или -rw-r - r--), второй - владелец файлов и каталогов (jk), а третий столбец - группа ( пользователей).
Для прав доступа к файлам первая буква - это либо "d", либо «-», что означает каталог или файл. Следующие три символа (например, rwx) являются разрешениями для владельца файла. Затем идут разрешения группы (например, все в группе пользователей) и, наконец, разрешения для всех остальных. Вот некоторые примеры:
* drwx------ : directory only accessible by owner
* drwxr-xr-x : directory anyone can access
* -rwxr-xr-x : file anyone can read and execute
* -rw-r----- : file only people in the group can read
Чтобы увидеть, в каких группах вы находитесь, выполните команду groups.
изменение прав доступа к файлу / каталогу
Используйте chmod (режим изменения), чтобы изменить права доступа к файлу. Команда chmod может использовать числа:
- 4 - читать
- 2 - напиши
- 1 - выполнить
Причина, по которой они не являются 1,2,3, заключается в том, что им нужно добавить уникальный номер в зависимости от того, какую комбинацию из них вы используете.
Итак, чтобы дать разрешение на чтение и запись:
чтение + запись = 4 + 2 = 6
или выполнить и прочитать разрешение:
выполнить + чтение = 1 + 4 = 5
Или просто выполните разрешение:
выполнить = 1
Или все разрешения:
чтение + запись + выполнение = 4 + 2 + 1 = 7
Команда chmod принимает три числа для трех разрешений:
владелец, группа, все пользователи (в таком порядке)
Основная команда chmod идет:
$ chmod ### directory/filename
Итак, если вы хотите дать доступ на чтение всем (-rw-r - r--):
$ chmod 644 filename
Чтобы сделать файл читаемым, записываемым и исполняемым только вами:
$ chmod 700 filename
Чтобы сделать файл читаемым и исполняемым вами и вашей группой, но только для всех остальных:
$ chmod 554 filename
chmod также может использовать буквы: u для пользователя (владельца), g для группы, o для других и a для всех (u, g и o). Таким образом, вы можете сделать chmod g+r файл, чтобы добавить права на чтение для группы. Для получения дополнительной информации о chmod см. Справочную страницу (man chmod).
Заметка об этом последнем персонаже
В Mac OS X (и некоторых других производных Unix) после окончательного набора разрешений есть дополнительный символ. Обычно это пробел, но может быть + или @
Знак + указывает, что файл или каталог имеет дополнительную информацию о безопасности, такую как ACL.
@ Означает, что файл или каталог имеет расширенные атрибуты.
Вы можете увидеть ACL файла или каталога, включив опцию -e при выполнении ls (с опцией -l), и расширенные атрибуты, включив - @ (также с -l).
Обсуждение ACL и расширенных атрибутов выходит далеко за рамки этого ответа, но больше информации о расширенных атрибутах можно найти здесь и ACL здесь (и, конечно, Google найдет больше информации, чем вы хотите знать о них).