Все двенадцать атрибутов можно представить в виде битов двоичного числа, равных 1, если атрибут установлен, и 0, если нет. Порядок битов в числе следующий: sU|sG|t|rU|wU|xU|rG|wG||xG|rO|wO|xO, где sU – это SetUID, sG – это SetGID, t – это t-атрибут, после чего следуют три тройки атрибутов доступа. Этим форматом можно пользоваться в команде chmod вместо конструкции "роли=виды_доступа", причем число надо записывать в восьмеричной системе счисления. Так, атрибуты каталога /tmp будут равны 1777, атрибуты /bin/su – 4711, атрибуты /bin/ls – 755 и т. д.
Тем же побитовым представлением атрибутов регулируются и права доступа по умолчанию при создании файлов и каталогов. Делается это с помощью команды umask. Единственный параметр umask – восьмеричное число, задающее атрибуты, которые не надо устанавливать новому файлу или каталогу. Так, umask 0 приведет к тому, что файлы будут создаваться с атрибутами "rw-rw-rw-", а каталоги – "rwxrwxrwx". Команда umask 022 убирает из атрибутов по умолчанию права доступа на запись для всех, кроме хозяина (получается "rw-r--r--" и "rwxr-xr-x" соответственно), а с umask 077 новые файлы и каталоги становятся полностью недоступны ("rw-------" и "rwx------") всем, кроме их хозяев. 6)
![]() |
![]() |
![]() |
1)
Здесь есть тонкость. В файле group указываются не идентификаторы, а входные имена пользователей. Формально говоря, можно создать двух пользователей с одинаковым
UID, но разными
GID и списками групп. Обычно так не делают: надобности - почти никакой, а неразберихи возникнет много.
2)
Зато он может сначала поменять права доступа к этому файлу с помощью chmod u+r, а потом читать из него.
3)
Более точно - обо всех процессах, имеющих право выводить на какой-нибудь терминал, а значит, запущенными из терминального сеанса.
4)
Вместо полного имени такому пользователю часто пишут "root of all evil".
5)
Строго говоря, при этом меняется не собственно идентификатор пользователя, а т.н. исполнительный идентификатор пользователя,EUID; это нужно для того, чтобы знать, кто на самом деле запустил программу.
6)
Параметр командной строки umask должен обязательно начинатся на 0, как это принято для восьмеричных чисел в языке Си.
![]() | © 2003-2007 INTUIT.ru. Все права защищены. |