Посмотреть права можно командой ls -la. У любого файла и каталога в Linux есть 4 группы прав:

  1. первая группа состоит из одного символа. Как правило вам будет встречаться «-» что означает обычный файл, «d» - директория или же «l» - символьная ссылка.
  2. блок rwx, относящийся к владельцу файла. Буквенное обозначение - u (user)
  3. блок rwx, относящийся к группе. Буквенное обозначение - g (group)
  4. блок rwx, относящийся ко всем остальным. Буквенное обозначение - o (other)
113.jpg
  • r - read, права на открытие и чтение файла или просмотр содержимого в каталоге
  • w - write, права на запись в файл или возможность создавать, удалять или переименовывать объекты в каталоге
  • x - execute, возможность выполнить файл или войти в каталог

Права можно записывать как в буквенной нотации, так и в цифровой.
Каталог - это особый тип файла. Его содержание - это список других файлов. Каталоги имеют те же «биты прав», что и остальные файлы. Однако то, что эти права означают может быть не таким простым для понимания.

Если каталог можно изменять (w), то это означает, что в нем можно изменять файлы, их имена, удалять их. Это можно делать даже с файлами, доступ к которым запрещен для данной категории. Вводят дополнительный t-бит. При его наличии пользователь может изменять только свои файлы.

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. Посмотрим на права доступа к этому файлу - -rwsr-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.

115.jpg

Эти пользователи могут создавать файлы в директории drwxrwxr-x 2 root pr_user 4096 фев 2 11:20 project/. Каждый из сотрудников создал по своему файлу для работы

116.jpg

Как мы видим, файл принадлежит пользователю, который его создал и его основной группе. Поэтому файл Васи не может редактировать Петя и наоборот. Они могут только удалять файлы друг друга. Для решения этой проблемы необходимо сделать так, чтобы все файлы принадлежали той же группе, что и пользователи chmod g+s /project/ и тогда увидим drwxrwsr-x 2 root pr_user 4096 фев 2 11:33 project/. Теперь попробуем от имени Васи создать еще один файл и посмотрим на его права

117.jpg

Судя по этим правам, пользователь Петя теперь может редактировать новый файл Васи. Профит!

При создании новой директории в директории с уже установленным SGID-битом, у созданной директории SGID-бит устанавливается автоматически!

Stiky бит применяется только к директориям. Если такой бит установлен на директорию, значит, в этой директории файл может удалить только хозяин файла или суперпользователь. Stiky-бит рекомендуется устанавливать на публичные директории, такие как: /tmp и /var/tmp

  • for_students/os/privileges.txt
  • Последнее изменение: 2022/02/02 12:07
  • ejlka