Middle
128
questionbank
Как устроена система прав доступа в операционной системе Linux?
Ответ от нейросети
sobes.tech AI
В Linux используется дискреционный контроль доступа (DAC). Права назначаются пользователям, группам и остальным. Для каждого из этих трех категорий определяются права на чтение (r), запись (w) и выполнение (x).
ls -l # Пример вывода команды ls -l
# drwxr-xr-x 2 user group 4096 Oct 26 10:00 directory_name
# -rw-r--r-- 1 user group 1024 Oct 26 10:00 file_name
Первый символ указывает тип файла (- для обычного файла, d для директории). Следующие девять символов представляют права:
- Первые три: Права владельца (
rwx) - Следующие три: Права группы (
r-x) - Последние три: Права остальных (
r-x)
Права можно изменить с помощью команды chmod, используя восьмеричное или символьное представление:
# Добавить право на запись для группы
chmod g+w some_file.txt
# Установить права чтения, записи и выполнения для владельца,
# чтения и выполнения для группы,
# и только чтения для остальных (754 в восьмеричной)
chmod 754 some_other_file.txt
Владельца файла или директории можно изменить командой chown:
# Изменить владельца на new_user
chown new_user some_file.txt
# Изменить владельца на new_user и группу на new_group
chown new_user:new_group some_file.txt
Группа файла или директории изменяется командой chgrp:
# Изменить группу на new_group
chgrp new_group some_file.txt
Дополнительные специальные биты:
| Символ | Описание | Применение |
|---|---|---|
s |
SUID (Set User ID): Если установлен на исполняемом файле, процесс будет выполняться с правами владельца файла, а не запускающего пользователя. | Используется для программ, которым требуются повышенные права для выполнения задач, например, passwd. |
s |
SGID (Set Group ID): Если установлен на исполняемом файле, процесс будет выполняться с правами группы файла. Если установлен на директории, новые файлы, созданные в этой директории, будут принадлежать группе этой директории. | На исполняемых файлах используется реже SUID. На директориях полезно для общих директорий, где все файлы должны принадлежать одной группе. |
t |
Sticky Bit: Если установлен на директории, файлы в этой директории могут быть удалены или переименованы только их владельцем, владельцем директории или root. | Часто используется в директории /tmp, чтобы пользователи не могли удалять файлы других пользователей, даже если у них есть право на запись в эту директорию. |
# Пример файла с SUID
# -rwsr-xr-x 1 root root 50000 Oct 26 10:00 /usr/bin/passwd
# Пример директории со SGID
# drwxrwsr-x 2 user shared_group 4096 Oct 26 10:00 shared_directory
# Пример директории со Sticky Bit
# drwxrwxrwt 10 root root 4096 Oct 26 10:00 /tmp
Эти механизмы совместно обеспечивают гранулярный контроль доступа к файловой системе в Linux.