Припустимо, маска за замовчуванням 0666. umask0022 зробить нову маску 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? Я думаю, це просто показати, що число знаходиться в восьмериці.