Предположим, маска по умолчанию 0666. umask
0022 сделает новую маску 0644 (0666-0022 = 0644), что означает, что группа и другие пользователи имеют права на чтение (без записи или выполнения).
«Дополнительная» цифра (первое число = 0) указывает, что специальных режимов нет.
Если режим начинается с цифры, он будет интерпретирован как восьмеричный, в противном случае он будет символическим.
0 - это цифра, равно как 1 (для фиксированного бита) или 6 (для SGID). Такая команда chmod
может быть вызвана другими методами, например, chmod ug+rw mydir
где вы бы добавили права на чтение и запись для пользователя и группы. Обратите внимание, что режим в этом случае (ug + rw) не начинается с цифры, поэтому он не будет интерпретироваться как восьмеричный, а скорее символический.
См. En.wikipedia.org/wiki/Chmod#Symbolic_examples для символики, а также www.lifeaftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/, чтобы узнать о специальных режимах.
Я не знаю, что вы бы разоблачили первый бит umask
, но технически вы могли бы. Это объясняет, почему вы почти всегда видите это как ноль.
Кредит для pinkfloydx33
Первая цифра маски связана со специальными разрешениями, которые не совсем точно вписываются в модель владельца / группы / другой модели. Когда для разрешения доступа к файлу предоставляются четыре цифры, первая относится к этим специальным значениям:
4000 = SUID
2000 = SGID
1000 = sticky bit
Бит SUID, сокращение от set-user-ID, заставляет исполняемую программу запускаться с эффективным идентификатором пользователя (uid) владельца - другими словами, независимо от того, кто его выполняет, программа выполняется с правами владельца. Это обычно наблюдается в программах, которые выполняют действия, требующие прав суперпользователя, но предназначенные для запуска обычными пользователями: passwd
один из таких примеров.
Бит SGID, сокращенно от set-group-ID, очень похож, но работает с эффективным идентификатором группы (gid) владельца.
Слепка немного сложнее, если вы хотите больше информации об этом, вы можете прочитать справочную страницу для sticky
.
Эти биты также можно использовать с каталогами, но их значения меняются.
Я не верю, что вы на самом деле можете установить параметр, umask
позволяющий вам включить любой из этих дополнительных битов по умолчанию, но вы, вероятно, никогда не захотите делать это в любом случае.
Кредит для пользователя470379
man 2 umask
(соответствующий системный вызов) «используются только биты прав доступа к файлуmask
». Вbash
umask 1000 выдается ошибка: «восьмеричное число вне диапазона». Так почему лишние 0? Я думаю, что это просто, чтобы показать, что число в восьмеричном.