Почему Umask использует эту сложную систему счисления?
Я пытаюсь научиться использовать Umask, но это кажется таким сложным.
Помимо всех вычитаний, которые я должен делать в своей голове отдельно для каталогов и файлов каждый раз, когда вижу значение маски, umask в разное время кажется другим (см. Ниже).
Например, если у меня есть маска
umask
0002
это также можно рассматривать как
umask -S
u=rwx,g=rwx,o=rx
Почему умаск дает rwxrwxr-x
и не -------w-
в этом случае? Когда мне дают 0002, я должен рассчитать разрешения для файлов по 666-002 и каталогов по 777-002. Не должен тогда umask -S
дайте мне аналогичную вещь, чтобы я мог рассчитать с. Например negation-of(-------w-)
, Таким образом, в одном случае он действует как маска для отрицания, а во втором случае он просто дает результат из того, что я понимаю. Почему это неоднозначное поведение?
1 ответ
Вот только как поведение umask
определено:
Если указан -S, сообщение должно иметь следующий формат:
"u =% s, g =% s, o =% s \ n",,,
где три значения должны быть комбинациями букв из множества { r, w, x}; наличие буквы должно указывать на то, что соответствующий бит сброшен в маске создания режима файла.
(с http://pubs.opengroup.org/onlinepubs/9699919799/utilities/umask.html)
Кажется логичным, что возможность отображения маски в обеих формах была бы полезной, хотя по общему признанию umask(1)
страница руководства не очень ясно, на что -S
вариант делает.