Linux -сборник рецептов


Глава 9 Операции с файлами и разделами


Учтите, что флаг +s устанавливает оба бита, setgid и setuid, что может создать угрозу для безопасности, если в этом каталоге хранятся исполняемые файлы или сценарии. Команда chmod 2775 устанавливает только бит setgid.

ВНИМАНИЕ Бит setuid пробивает большую брешь в системе безопасности. Не используйте его для исполняемых файлов. Программы, использующие его (например, /usr/bin/passwd), содержат внутренние меры защиты для предотвращения эскалации привилегий и других нарушений. Если в системе имеются сценарии, которые должны запускаться пользователями, создайте для этой цели специальную группу.

Установите статический бит (sticky bit), чтобы файл не мог быть удален никем, кроме владельца:

# chmod +t /общий_каталог

или

# chmod 3775 /общий_каталог

Комментарии

Все файлы, создаваемые в каталоге, принадлежат той же группе, что и сам каталог. Все файлы, скопированные в каталог, сохраняют принадлежность исходной группе. Чтобы разные пользователи могли работать с одним каталогом, они должны принадлежать к одной группе. Разрешения файлов, создаваемых в каталоге, определяются масками umask владельцев.

Каталог /tmp является классическим примером каталога, использующего статический бит:

# stat /tmp ... Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)

Каталог /tmp должен быть общедоступным для чтения и записи, но мы не хотим, чтобы пользователи или процессы удаляли чужие временные файлы. Задача решается при помощи статического бита.

Бит setuid позволяет пользователям выполнить команду с такими же разрешениями, как у владельца файла. Именно так рядовые пользователи могут изменять свои пароли, хотя запись в файл /etc/passwd разрешена только суперпользователю root:

$ stat /usr/bin/passwd File: '/usr/bin/passwd' Size: 26584 Blocks: 56 10 Block: 4096 regular file ... Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)









Начало  Назад  Вперед