русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

И sticky bit


Дата добавления: 2015-07-09; просмотров: 1341; Нарушение авторских прав


Помимо битов, устанавливающих разрешения на доступ к файлу, существуют специальные атрибуты, для которых предназначена еще одна триада битов:

r sticky bit (save text mode) — бит "липучка";

r SUID — бит подмены UID;

r SGID — бит подмены GID.


 

Sticky bit кодируется восьмеричной 1 (двоичная 001), SGID кодируется вось- меричной 2 (010), а SUID — 4 (100). В символьной нотации применяются символы t для sticky bit, s для SUID и SGID. Эти символы всегда выводятся в позиции, где обычно стоит флаг разрешения на исполнение (x). При этом:

r SUID отображается в виде буквы s в старшей триаде битов, отображаю- щей права владельца;

r SGID отображается в виде буквы s в средней триаде битов, отображаю- щей права группы;

r sticky bit отображается в виде буквы t в младшей триаде битов, отобра- жающей права для всех остальных.

Прописные символы S и T выводятся при отсутствии в этих триадах прав на исполнение, что обычно сигнализирует о ненормальном состоянии прав доступа.

 

Пример 6.19. Специальные биты прав доступа

 

$ ls -ld /tmp /bin/ping

 

-rws--x--x 1 root root 32908 Окт 16 2002 /bin/ping
drwxrwxrwt 94 root root 3488 Дек 14 20:31 /tmp

 

Приведенный пример 6.19 показывает, что на файл системной команды ping установлен бит SUID (символ s в старшей триаде вместо прав на исполнение), а на каталог /tmp установлен sticky bit (символ t в триаде прав остальных).

Атрибут sticky bit в GNU/Linux для файлов не используется, в ранних верси- ях UNIX он был предназначен для того, чтобы оставить в памяти образ про- граммы (save text mode).

Обычный процесс наследует права доступа к системным ресурсам от пользо- вателя, запустившего процесс, и его первичной группы (UID и GID), однако для исполняемых файлов, на которые установлены биты SUID и/или SGID, это не так.



При установленном на исполняемый файл бите SUID процесс выполняется не от имени пользователя, запустившего его, а от имени владельца исполняе- мого файла команды. Аналогично, при установленном бите SGID процесс исполняется не от имени первичной группы пользователя, запустившего про- цесс, а от имени группы пользователей файла.

У каждого процесса имеются четыре идентификатора:

r RUID — Real UID, который всегда равен UID пользователя, выполнивше- го команду;


 

r RGID — Real GID, который всегда равен GID пользователя, выполнивше- го команду;

r EUID — Effective UID, который равен либо RUID, либо если на исполняе- мый файл установлен бит SUID, то UID владельца файла;

r EGID — Effective GID, который равен либо RGID, либо если на исполняе- мый файл установлен бит SGID, то GID владельца файла.

В подавляющем большинстве случаев подмена владельца или группы осуще- ствляется на root или какого-либо привилегированного пользователя или группу. Например, при выполнении команды ping (см. пример 6.19), несмот- ря на то, что ее запустил обычный пользователь, она будет исполняться от имени root, т. к. он владеет ее исполняемым файлом. Это используется, на- пример, в таких программах, как passwd, которые требуют временного пре- доставления доступа обычному пользователю к тем ресурсам, к которым он не имеет доступа. Естественно, такие программы требуют особого подхода к разработке, т. к. представляют серьезную угрозу для безопасности системы. На файлы сценариев Shell биты SUID и SGID устанавливать можно, но они действовать не будут.

Установка sticky bit на каталог, в отношении которого пользователь имеет права на чтение и на запись, позволяет запретить удалять и изменять пользо- вателю чужие файлы в этом каталоге. Это используется при установке прав доступа к каталогу /tmp, открытому на запись всем, поскольку иначе пользо- ватель может удалить чужие временные файлы, находящиеся в этом катало- ге, что может повлечь нежелательные последствия.

При установке атрибута SGID на каталог вновь созданные файлы в этом ка- талоге будут наследовать группу владельцев по группе владельцев каталога (так называемый "стиль BSD"), вместо RGID процесса, создающего файл (пример 6.20).

 

Пример 6.20. Каталог с установленным битом SGID

 

$ cd dir1

$ ls -ld

drwxrwsr-x 2 tania users 48 Dec 14 20:43 .

$ id

uid=500(prof) gid=500(prof) группы=500(prof),100(users)

$ > file

$ ls -l total 0

-rw-r----- 1 prof users 0 Dec 14 22:00 file


 

В каталоге, на который установлен бит SGID, был создан файл (см. при- мер 6.20). При этом группа владельцев файла была назначена не по первич- ной группе пользователя, создавшего файл, а по группе пользователей ката- лога, в котором файл был создан.

Команда chmod позволяет установить особые биты доступа на файлы и ката- логи. Для этого команда chmod может быть выполнена со следующими аргу- ментами:

r u+s — для установки на файл бита SUID;

r g+s — для установки на файл или каталог бита SGID;

r o+t — для установки на каталог бита sticky bit.

Не обязательно устанавливать специальные биты в символьной нотации. Приведенная в примере 6.21 команда chmod 2775 d1 устанавливает бит SGID на каталог.

 

Пример 6.21. Установка SGID на каталог в восьмеричной нотации

 

$ mkdir d1  
$ ls -ld d1
drwxr-x--- 2 prof prof 48 Dec 14 22:31 d1
$ chmod 2770 d1    
$ ls -ld d1      
drwxrws--- 2 prof prof 48 Dec 14 22:31 d1

 

В табл. 6.3 указаны результаты установки различных специальных прав дос- тупа на файлы и каталоги.

 

Таблица 6.3. Специальные биты прав доступа

Права Эффект для каталогов Эффект для файлов
-rws--x--x Команда исполняется от имени владельца файла
-rwx--s--x Команда исполняется от имени группы пользователей файла
drwxrws--- На файлы, создаваемые в каталоге, будет установлена такая же группа, как у каталога
drwxrwxrwt В каталоге можно удалять или переименовывать только соб- ственные файлы



<== предыдущая лекция | следующая лекция ==>
Автоматическая установка прав доступа к вновь создаваемым файлам | Утилиты командной строки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.