С момента своего создания Linux был адаптирован для поддержки многопользовательской среды. При наличии большого количества пользователей и групп в работающей системе довольно часто встречаются каталоги, совместно используемые пользователями одной и той же группы, и проблемы возникают из-за совместного использования файлов в этих каталогах. В этой статье мы обсудим, как можно использовать липкие биты для точной настройки прав доступа к файлам в общих каталогах.
Для иллюстрации у нас есть система с тремя пользователями — john1, john2 и john3, все они являются членами общей группы «johns»
Предположим, «john1» создает новый каталог под названием «shared-dir», который будет доступен всем пользователям группы «johns».
С помощью команды ls
мы можем просмотреть разрешения «shared-dir», которые можно интерпретировать в следующей таблице:
Только «john1» может читать содержимое каталога, а также записывать в него. Поскольку мы работаем с общим каталогом, мы хотим, чтобы все пользователи группы могли писать в «shared-dir».
Для этого мы изменим разрешения с помощью команды
. Мы добавим разрешения на запись всем пользователям группы «johns», как показано ниже.14
Мы можем просмотреть обновленные разрешения для «shared-dir», как показано ниже. Часть, подчеркнутая желтым, показывает, что группе «johns» предоставлены разрешения на запись.
Добавление файлов в общий каталог
Теперь «john1» добавляет два файла (j1_file1.txt и j1_file2.txt) в «shared-dir»
Для удобства понимания первые два символа имени файла являются синонимами имени пользователя.
Аналогично «john2» также может «записывать» в каталог «shared-dir»
Теперь в «shared-dir» четыре файла.
Есть ли проблема с текущей настройкой?
Файл «j1_file1.txt» был создан
Contents
Добавление файлов в общий каталог
ладельцем файла. Теперь «john2» войдет в систему и попытается удалить этот файл, и он сможет это сделать.«john1» был владельцем файла, но «john2» смог его удалить, поскольку разрешение «запись» было предоставлено всем членам группы «johns».
Этот сценарий не идеален. Мы хотим, чтобы все пользователи могли писать в каталог, но только владелец файла должен иметь возможность удалять файл. Как этого можно достичь?
Представляем Sticky Bit
Бит фиксации — это специальное разрешение, которое можно установить для каталога, в котором установлены разрешения «на запись» для группы, имеющей к нему доступ. Этот бит гарантирует, что все члены группы могут писать в каталог, но удалить файл может только тот, кто создал файл, то есть владелец файла.
Команда
chmod
с флагом +t
мож
Есть ли проблема с текущей настройкой?
я для каталога.Обновленное разрешение можно увидеть ниже.
Теперь, если «john2» попытается удалить файл «j1_file2.txt», созданный «john1», эта операция не разрешена.
Если вы удалите разрешение «выполнение» для «других», как показано ниже:
Существование липкого бита в каталоге обозначается заглавной буквой «T» в части «другие» строки разрешения. Поведение липкого бита в каталоге остается прежним.
Вариант команды «chmod»
Числовую форму команды chmod
также можно использовать для установки бита закрепления для каталога.
chmod nxyz <file_name>
где,
- n = 1, что означает липкий бит. Другие значения «n» относятся к другим специальн
Представляем Sticky Bit
ешение, предоставленное владельцу файла. - y: разрешение, предоставленное группе с доступом к файлу
- z: разрешение, предоставленное другим
Чтобы установить липкий бит для «shared-dir», используйте следующую команду:
chmod 1755 shared-dir
что дает тот же результат, что и использование +t
для существующих разрешений по умолчанию.
Использование липкого бита применимо только для каталогов, для файлов его использовать не имеет смысла.