Права доступа Unix, SUID, SGID, Sticky биты Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:стандартные_права_unix [2014/12/13 19:58]
[Расширенные права] в Wiki указание авторства не принято - статья вики - совместное творчество.
wiki:стандартные_права_unix [2020/10/07 17:56] (текущий)
[Расширенные права]
Строка 58: Строка 58:
 Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое,​ в восьмеричном представлении (оно короче). Так, например,​ права на файл всем и вся, соответствуют записи **777** (что аналогично символьному представлению **rwxrwxrwx**). Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое,​ в восьмеричном представлении (оно короче). Так, например,​ права на файл всем и вся, соответствуют записи **777** (что аналогично символьному представлению **rwxrwxrwx**).
  
-Существуют также специальные биты, такие как **SUID**, **SGID** и **Sticky**-бит. ​Они ​влияют на запуск файла. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую,​ в различной технической литературе права обозначаются именно 4-мя цифрами,​ например **0744**. Многие стараются не использовать специальные биты, сетуя на безопасность (и не без основательно),​ но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже.+Существуют также специальные биты, такие как **SUID**, **SGID** и **Sticky**-бит. ​**SUID**, **SGID** ​влияют на запуск файла, а **Sticky** влияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую,​ в различной технической литературе права обозначаются именно 4-мя цифрами,​ например **0744**. Многие стараются не использовать специальные биты, сетуя на безопасность (и не без основательно),​ но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже.
  
 Давайте рассмотрим пример,​ итак: Давайте рассмотрим пример,​ итак:
Строка 84: Строка 84:
 Восьмеричное обозначение в этом примере:​ **0755**. Восьмеричное обозначение в этом примере:​ **0755**.
  
-<note important>​Для полноценного просмотра каталога,​ необходимы права на чтение каталога и доступ к файлам,​ а главное к их атрибутам,​ т.е. минимальные разумные права на каталог - 5 (r-x). Прав 4 (r--) хватит только на просмотр имен файлов,​ без атрибутов,​ т.е. не будет известен ни размер файла, ​ни его тип (что даже не позволит отличить ​директории от файлов).+<note important>​Для полноценного просмотра каталога,​ необходимы права на чтение каталога и доступ к файлам,​ а главное к их атрибутам,​ т.е. минимальные разумные права на каталог - 5 (r-x). Прав 4 (r--) хватит только на просмотр имен файлов,​ без атрибутов,​ т.е. не будут известны размер файла, ​права доступавладелец.
  
 На практике для каталогов используется только три режима:​ 7 (rwx), 5 (r-x) и 0 (---).</​note>​ На практике для каталогов используется только три режима:​ 7 (rwx), 5 (r-x) и 0 (---).</​note>​
Строка 151: Строка 151:
  
 Символьное назначение окажет неоценимую услугу,​ если требуется добавить права на объект к уже существующим правам. Символьное назначение окажет неоценимую услугу,​ если требуется добавить права на объект к уже существующим правам.
 +
 +=== Массовое назначение прав ===
 +
 +Иногда,​ бывает,​ нужно массово установить права на определенный тип объектов,​ например,​ только на каталоги или только на файлы. Простое использование опции **-R** (рекурсия) здесь не поможет т.к. chmod будет проходить по всем объектам удовлетворяющим маске, что иногда вовсе не то, что нужно. ​
 +
 +Итак, чтобы массово установить права на определенный тип объектов можно использовать один из вариантов (вообще,​ их очень много):​
 +
 +  * **chmod -R 770 $(find . -type d)** 
 +
 +где **-type d** - каталоги,​ **-type f** - файлы. В данном примере chmod установит,​ начиная от текущего каталога((О чем сообщает точка после **find**.)), ​ права на все каталоги (включая подкаталоги) разрешения 770 (rwx rwx- - -) при этом не трогая права на другие объекты. ​
 +
 +Более длинный вариант аналогичной операции:​
 +
 +  * **find ./ -type f -exec sudo chmod 775 {} \;**
 +
 +где **-type d** - каталоги,​ **-type f** - файлы. В данном варианте chmod установит разрешения 775 на все файлы включая файлы в подкаталогах начиная от текущего.
 +
 +
 ===== Биты SUID, SGID и Sticky ===== ===== Биты SUID, SGID и Sticky =====
  
Строка 168: Строка 186:
 </​code>​ </​code>​
  
-**1000** - идентификатор (GID) дополнительной группы allexserv пользователя **allexserv**((Обратите внимание,​ в этом примере основная группа пользователя **allexserv** - это группа **root** (идентификатор 0), а группа **allexserv** (1000) - считалась бы дополнительной. В данном примере ​пользователь **allexserv** не входит ​больше в группу **allexserv** (видимо я, при создании себя вручную изменил принадлежность к группам), так что группа ​**allexserv** на данный момент пуста.))+**1000** - идентификатор (GID) дополнительной группы allexserv пользователя **allexserv**((Обратите внимание,​ в этом примере основная группа пользователя **allexserv** - это группа **root** (идентификатор 0) - при создании этого пользователя ему была явно указана принадлежность к группе **root**.))
  
-Зачастую, ​при создании пользователя, если не указано иноеидентификатор группы пользователя равен идентификатору ​пользователя. Например:​+Если при создании пользователя ​основная группа ​не указана явно, то основной ​группой пользователя ​будет группа с тем же именем, что и имя пользователя. Например:​
  
 <​code>​ <​code>​
Строка 309: Строка 327:
  
 В больших сетях, ​ с многоуровневыми схемами доступа применяется более гибкая реализация назначения прав, именуемая как **ACL** - [[access_control_list|Списки контроля доступа]]. ​   В больших сетях, ​ с многоуровневыми схемами доступа применяется более гибкая реализация назначения прав, именуемая как **ACL** - [[access_control_list|Списки контроля доступа]]. ​  
 +
 +<style right> --- //​[[allexmail@yandex.ru|Соловьев Алексей aka allexnew]] upd 07.10.2020 17:56// </​style>​
  
 {{tag>​Администрирование система Права_доступа }} {{tag>​Администрирование система Права_доступа }}