2

Я просто смотрю разрешения на некоторые из моих папок через терминал, и я не совсем понимаю, что они означают.

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 ответ1

6

Разрешения 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 найдет больше информации, чем вы хотите знать о них).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .