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