Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Четвёртая цифра в правах доступа

#unix


$ chmod 0777 файл-или-каталог


Что означает 0 перед остальными цифрами?
    


Ответы

Ответ 1



согласно документации (этот топик можно просмотреть при наличии установленного пакета gnu/info командой info 'file permissions' 'numeric modes') числовые значения обозначают: Value in Corresponding Mode Mode Bit Other users not in the file's group: 1 Execute/search 2 Write 4 Read Other users in the file's group: 10 Execute/search 20 Write 40 Read The file's owner: 100 Execute/search 200 Write 400 Read Special mode bits: 1000 Restricted deletion flag or sticky bit 2000 Set group ID on execution 4000 Set user ID on execution т.е., 0 в числе 0777 обозначает: убрать все три «специальных» бита — sticky-bit, setguid-bit и setuid-bit. чтобы меньше «ломать себе голову» над всем этими циферками, удобнее, вероятно, использовать символические эквиваленты (info 'file permissions' 'symbolic modes'). например, вышеприведённую команду chmod 0777 файл-или-каталог можно заменить такой командой: $ chmod a=rwx,a-st файл-или-каталог a — для «всех» (комбинация из u — пользователь, g — группа, и o — остальные). = — установить именно такой набор битов. a=rwx — установить биты r — чтения, w — записи, и x — исполнения, для «всех». - — убрать перечисленные биты. a-st — убрать «специальные биты». эквивалентно u-s,g-s,-t

Ответ 2



Устанавливает В '0' биты Запуск от от имени пользователя и группы (set user or group ID on execution) и 'липкий' бит (restricted deletion flag or sticky bit).

Ответ 3



Биты четвёртой тройки означают 04000 - (s-бит) выполнение с правами владельца файла. При выполнении данного файла система заменит эффективный пользовательский идентификатор (euid) на идентификатор владельца файла. При необходимости программа может вернуться к пользовательским правам с помощью вызова seteuid(getuid()). Команда ls -l этот бит показывает как 's' вместо 'x' для владельца или 'S', если владельцу нет разрешения исполнять файл. В Linux для каталогов, скриптов и прочих файлов этот бит игнорируется. Во FreeBSD (совместно со специальной опцией монтирования) для каталогов этот бит указывает, что новые файлы будут наследовать владельца от каталога, а не от euid создавшей программы, а новые подкаталоги кроме того так же будут наследовать и этот бит. 02000 - аналогичный s-бит для группы-владельца файла. В Linux этот бит так же используется совместно с запретом исполнения группе для включения обязательных блокировок (man 2 fcntl), а для каталогов указывает, что новые файлы будут наследовать группу-владельца от каталога, а новые подкаталоги кроме того так же будут наследовать и этот бит. 01000 - (t-бит) в старых unix-системах ставился для часто используемых программ сохраняя их образ в оперативной памяти после исполнения. В настоящее время в Linux и FreeBSD этот бит указывает, что в данном каталоге, несмотря на доступность каталога на запись какому-то пользователю, разрешается удалять или создавать жёсткие ссылки только владельцу файла, владельцу каталога или суперпользователю.

Комментариев нет:

Отправить комментарий