права доступа к файлам unix

права доступа к файлам unix

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

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

Связанный контент