Припустимо, маска за замовчуванням 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, призводить до запуску виконуваної програми з ефективним ідентифікатором користувача (uid) власника - іншими словами, незалежно від того, хто його виконує, програма виконує з правами власника. Це часто спостерігається в програмах, які виконують речі, які вимагають привілеїв root, але призначені для виконання звичайними користувачами: passwd
є одним з таких прикладів.
Біт SGID, короткий для ідентифікатора set-group, дуже схожий, але працює з ефективним ідентифікатором групи (gid) власника.
Клейкий шматочок трохи складніше, якщо ви хочете отримати додаткову інформацію про це, ви можете прочитати сторінку sticky
.
Ці біти також можна використовувати з каталогами, але їх значення змінюються.
Я не вірю, що ви насправді можете встановити функцію, umask
яка дозволить вам включити будь-який із цих додаткових бітів за замовчуванням, але ви, ймовірно, ніколи не хотіли б цього робити.
Кредит користувачу470379
man 2 umask
(відповідний системний виклик) "використовуються лише біти дозволу файлуmask
". Уbash
, umask 1000 створює помилку: "восьмеричне число поза діапазоном". То чому додаткові 0? Я думаю, це просто показати, що число знаходиться в восьмериці.