Библиотека сайта rus-linux.net
Цилюрик О.И. Linux-инструменты для Windows-программистов | ||
Назад | Консольные команды | Вперед |
Дополнительные атрибуты файла
У файла могут устанавливаться дополнительные атрибуты, которые выставляются флагам. Такими реально употребляемыми атрибутами являются (для атрибута числом показано значение флага в 1-м байте атрибутов):
- установка идентификатора пользователя (setuid
) - 4;
- установка идентификатора группы (setgid
) - 2;
- установка sticky
-бита - 1;
Последний атрибут устарел, и используется редко. А
вот возможность установки setuid
и/или setgid
принципиально для UNIX и устанавливаются они для исполнимых файлов:
при запуске файла программы с такими атрибутами, запущенная программа
выполняется не с правами (от имени) запустившего её пользователя
(зарегистрировавшегося в терминале, как обычно), а от имени того
пользователя (группы) который установлен как владелец этого файла
программы. Это обычная практика использования setuid
, например, когда:
- владельцем файла программы является
root
; - и такая программа должна иметь доступ к файлам
данных, доступных только
root
(например/etc/passwd
)... - нужно дать возможность рядовому пользователю
выполнять такую программу, но не давать пользователю прав
root
; - элементарным примером такой ситуации является
то, когда вы меняете свой пароль доступа к системе, выполняя
от своего имени команду
passwd
(проанализируйте эту противоречивую ситуацию).
Принципиально важное значение имеет возможность установки setuid
и/или setgid
для исполнимых файлов, в числовой записи прав доступа это выглядит
так:
$ stat -c%a start.start.start 765 $ sudo chmod 2765 start.start.start $ stat -c%a start.start.start 2765 $ stat -c%A start.start.start -rwxrwSr-x $ sudo chmod 4765 start.start.start $ stat -c%A start.start.start -rwsrw-r-x $ sudo chmod 1765 start.start.start $ stat -c%A start.start.start -rwxrw-r-t
В символической записи прав для chmod
ключ -s
устанавливает setuid
и setgid
(одновременно, нет возможности управлять ими раздельно):
$ stat -c%a start.start.start 765 $ sudo chmod a+s start.start.start $ stat -c%a start.start.start 6765 $ stat -c%A start.start.start -rwsrwSr-x
Предыдущий раздел: | Оглавление | Следующий раздел: |
Информация о файле | Навигация в дереве имён |