Недавно мне стало интересно, в чем разница между трех- и четырехзначными цифровыми разрешениями для файлов. Я получаю числовые разрешения, запустив. stat --format "%a" $file_name
Какая разница между 0644 и 644?
bash
permissions
files
NerdOfCode
источник
источник
Ответы:
Первая цифра в четырехзначном разрешении является суммой заданного идентификатора пользователя (4), заданного идентификатора группы (2) и закрепления (1). Разрешение из трех цифр похоже на разрешение из четырех цифр, причем первая цифра установлена в ноль. Таким образом:
Примеры использования для разрешений четвертой цифры
Если исполняется файл с установленным идентификатором пользователя, то он выполняется так, как если бы владелец файла выполнял его. Таким образом, например,
/bin/mount
он обычно принадлежит пользователю root и имеет права 4755, где 4 означает, что, даже если он выполняется обычным пользователем, он будет работать с привилегиями владельца (root).Установка идентификатора группы в каталоге полезна для обмена файлами.
Заклепка используется в каталогах, например,
/tmp
так что все пользователи могут создавать файлы, но не позволяет другим пользователям удалять файлы других пользователей. Таким образом, разрешения/tmp
обычно равны 1777, где 1 означает, что установлен бит закрепления.Документация
От
man chmod
:источник