Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Цилюрик О.И. 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

Предыдущий раздел: Оглавление Следующий раздел:
Информация о файле   Навигация в дереве имён