
Я просто просматриваю разрешения для некоторых моих папок через терминал и не совсем понимаю, что они означают.
iMac:~ me$ ls -alt
total 40
drwx------ 4 me staff 136 10 Oct 06:17 .Trash
drwx------+ 4 me staff 136 10 Oct 06:16 Desktop
drwxr-xr-x 6 me staff 204 10 Oct 06:16 .bash_sessions
-rw-r--r--@ 1 me staff 8196 8 Oct 22:37 .DS_Store
drwx------+ 9 me staff 306 8 Oct 22:37 Downloads
drwx------@ 12 me staff 408 8 Oct 20:50 Google Drive
drwx------@ 13 me staff 442 8 Oct 20:49 Dropbox
drwx------ 9 me staff 306 8 Oct 20:49 .dropbox
drwxr-xr-x+ 19 me staff 646 8 Oct 20:48 .
-rw-r--r-- 1 me staff 100 4 Oct 12:03 .bash_history
drwx------@ 49 me staff 1666 4 Oct 10:17 Library
drwx------ 4 me staff 136 4 Oct 09:52 Applications
-r-------- 1 me staff 7 4 Oct 09:45 .CFUserTextEncoding
drwx------+ 3 me staff 102 4 Oct 09:42 Documents
drwx------+ 3 me staff 102 4 Oct 09:42 Movies
drwx------+ 3 me staff 102 4 Oct 09:42 Music
drwx------+ 3 me staff 102 4 Oct 09:42 Pictures
drwxr-xr-x+ 5 me staff 170 4 Oct 09:42 Public
drwxr-xr-x 7 root admin 238 4 Oct 09:42 ..
В чем разница между «drwxr-xr-x+», найденным в «.», и «drwx------@», найденным в «Google Диске»?
решение1
Права доступа Unix на самом деле гораздо менее запутанны, чем вы могли бы подумать на первый взгляд, и как только вы перестанете пытаться читать всю строку как единое целое, а вместо этого будете думать о ней группами, всегда в шаблоне, 1 3 3 3
становится легче понять.
На самом деле, Mac и некоторые другие производные Unix используют 1 3 3 3 1
структуру — подробнее об этом в конце этого поста.
Это объяснение настолько простое, насколько это возможно, и в то же время оно включает в себя все соответствующие концепции...
Извлечен изhttps://www.cs.swarthmore.edu/help/chmod.html
права доступа к файлам unix
Разрешения на доступ к файлам позволяют вам предоставлять или запрещать доступ к вашим файлам и каталогам. Существует три типа разрешений:
- г = читать
- ж = писать
- х = выполнить
Эти разрешения означают разные вещи для файлов и каталогов.
Для файлов:
- чтение - вы можете открыть и прочитать файл, вы также можете его скопировать.
- запись - вы можете изменить файл
- выполнить - вы можете выполнить (запустить) файл, если он является исполняемым (как программа или команда)
Для каталогов:
- read - вы можете выполнить команду ls для каталога и просмотреть его содержимое.
- запись - вы можете создавать и удалять файлы в этом каталоге.
- выполнить - вы можете перейти в этот каталог.
Используйте команду 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 (CHange MODe) для изменения прав доступа к файлу. Команда 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 file, чтобы добавить доступ на чтение для группы. Для получения дополнительной информации о chmod см. страницу руководства (man chmod).
Заметка об этом последнем персонаже
В Mac OS X (и некоторых других производных Unix) после последнего набора разрешений есть дополнительный символ. Обычно это пробел, но может быть + или @
+ указывает, что файл или каталог имеет дополнительную информацию о безопасности, например ACL.
@ указывает, что файл или каталог имеет расширенные атрибуты.
Вы можете увидеть ACL файла или каталога, включив опцию -e при выполнении ls (с опцией -l), и расширенные атрибуты, включив -@ (также с -l).
Обсуждение ACL и расширенных атрибутов выходит далеко за рамки этого ответа, но более подробную информацию о расширенных атрибутах можно найтиздесьи списки контроля доступаздесь(И, конечно же, Google выдаст больше информации о них, чем вы хотели бы знать.)