Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
for_students:os:privileges [2022/01/27 17:14]
ejlka
for_students:os:privileges [2022/02/02 12:07] (текущий)
ejlka
Строка 10: Строка 10:
   * w - write, права на запись в файл или возможность создавать, удалять или переименовывать объекты в каталоге   * w - write, права на запись в файл или возможность создавать, удалять или переименовывать объекты в каталоге
   * x - execute, возможность выполнить файл или войти в каталог   * x - execute, возможность выполнить файл или войти в каталог
 +Права можно записывать как в буквенной нотации, так и в цифровой. \\
 +Каталог - это особый тип файла. Его содержание - это список других файлов. Каталоги имеют те же «биты прав», что и остальные файлы. Однако то, что эти права означают может быть не таким простым для понимания.
 +<WRAP center round info 60%>
 +Если каталог можно изменять (w), то это означает, что в нем можно изменять файлы, их имена, удалять их. Это можно делать даже с файлами, доступ к которым запрещен для данной категории. Вводят дополнительный t-бит. При его наличии пользователь может изменять только свои файлы.
 +</WRAP>
 +[{{:for_students:os:114.jpg?}}]
 +=== Изменение прав доступа ===
 +  * ''chgrp'' - изменение принадлежности файла или каталога к определенной группе
 +  * ''chown'' - изменяет владельца файла или каталога
 +  * ''chmod'' - изменяет режим доступа к файлу или каталогу.
 +=== Специальные права ===
 +  * SUID (Set UID) - файл, у которого есть такой бит, выполняется с правами владельца файла программы. Этот бит стоит использовать с исполняемыми файлами.
 +  * SGID (Set GID) - аналогично SUID, но выполняется с правами группы, которой принадлежит файл. Кроме исполняемых файлов этот бит может устанавливаться на директории.
 +  * Stiky — бит имеет смысл только если он установлен на директорию. Означает, что в этой директории файл может удалить только его хозяин. (Суперпользователь может удалять любые файлы, в том числе и не принадлежащие ему.)
 +Рассмотрим эти права более детально.\\
 +**SUID**
 +Изменение пароля происходит с помощью записи в файл /etc/shadow, при это любой пользователь может менять свой пароль. Поэтому, логично было бы предположить, что на этот файл у всех права на запись. Однако же, если выполнить команду ''ls -la /etc/shadow'', мы увидим ''-rw-r----- 1 root shadow 1640 фев  1 09:12 /etc/shadow'', то есть писать в этот файл может только root. Каким же образом любой пользователь может изменить свой пароль? Вспоминаем, что для изменения пароля требуется утилита passwd, которая находится в /usr/bin/passwd. Посмотрим на права доступа к этому файлу - ''-rw**s**r-xr-x 1 root root 68208 июл 15  2021 /usr/bin/passwd''. Здесь стоит обратить внимание на бит s, который говорит о том, что используется как раз SUID. То есть файл будет выполняться всегда с правами владельца (который в данном случае root). \\
 +Если вы хотите установить такой бит на файл, то можно воспользоваться числовым форматом - ''chmod 4751 test'', где 4 - это как раз нужный нам бит, или же в символьном формате - ''chmod u+s test''. \\
 +**GUID** редко используется с исполняемыми файлами. Его чаще используют для работы группы пользователей с одним проектом. То есть, у вас есть проект, состоящий из нескольких файлов и эти файлы создавали разные пользователи. При создании файла, он принадлежит пользователю и его основной группе, при этом изменять владельца и группу - нельзя. Но нам надо, чтобы группа людей работала не только со своими файлами, но и с чужими, то есть нужен полный доступ для группы. Рассмотрим ситуацию, когда есть некий проект и файлы этого проекта лежат в директории /project, для работы над проектом создана группа pr_user, то есть эта группа имеет полный доступ к этой директории. В группу входят пользователи Vasya и Petya. [{{:for_students:os:115.jpg?}}]Эти пользователи могут создавать файлы в директории ''drwxrwxr-x   2 root pr_user  4096 фев  2 11:20 project/''. Каждый из сотрудников создал по своему файлу для работы [{{:for_students:os:116.jpg?}}] Как мы видим, файл принадлежит пользователю, который его создал и его основной группе. Поэтому файл Васи не может редактировать Петя и наоборот. Они могут только удалять файлы друг друга. Для решения этой проблемы необходимо сделать так, чтобы все файлы принадлежали той же группе, что и пользователи ''chmod g+s /project/'' и тогда увидим ''drwxrwsr-x   2 root pr_user  4096 фев  2 11:33 project/''. Теперь попробуем от имени Васи создать еще один файл и посмотрим на его права [{{:for_students:os:117.jpg?}}] Судя по этим правам, пользователь Петя теперь может редактировать новый файл Васи. Профит!
 +<WRAP center round important 60%>
 +При создании новой директории в директории с уже установленным SGID-битом, у созданной директории SGID-бит устанавливается автоматически!
 +</WRAP>
 +**Stiky** бит применяется только к директориям. Если такой бит установлен на директорию, значит, в этой директории файл может удалить только хозяин файла или суперпользователь. Stiky-бит рекомендуется устанавливать на публичные директории, такие как: /tmp и /var/tmp 
  
  • for_students/os/privileges.1643292876.txt.gz
  • Последнее изменение: 2022/01/27 17:14
  • ejlka