Описание работы SUID и SGID в UNIX-подобныйх системах.
Что такое права доступа и биты SUID, SGID
26.11.2004 г.
В UNIX-подобных системах существует жесткая система разграничения прав доступа к файлам (чтение, запись, выполнение). Чтение-возможность чтения каталога, просмотр содержимого файла Запись-возможность создать(добавить), изменить, удалить, переместить Выполнение-возможность запуска программы.
Узнать права на файл можно перейдя в каталог с файлом
(cd /имя_каталога_с_файлом) и выполнив команду ls-la
Увидим что-то типа такого
-rwxr-xr-x 2 user www 15 Mar 2004 file.conf
Расшифрую строку:
-rwxr-xr-x -права доступа
2 -количество жестих ссылок
user -имя владельца файла
www -к какой группе принадлежит владелец файла (ее название)
15 Mar 2004 -дата создания файла
file.conf -название файла
Расшифровка первого параметра на примерах:
---------------------------------------------------------------------
-rw------- (600) только владелец файла, может (читатьзаписывать)
---------------------------------------------------------------------
-rw-r--r-- (644)владелец файла, может (читатьзаписывать), члены
группы и остальные только читать
---------------------------------------------------------------------
-rwx------ (700) только владелец файла, может (читатьзаписывать) и
запускать на исполнение
---------------------------------------------------------------------
-rwxr-xr-x (755) владелец файла, может (читатьзаписывать) и
запускать на исполнение, члены группы и остальные могут читать и
запускать на исполнение, но не могут изменять.
---------------------------------------------------------------------
-rwx--x--x (711) владелец файла, может (читатьзаписывать) и
запускать на исполнение, члены группы и остальные могут запускать на
исполнение, но не могут читать и изменять.
---------------------------------------------------------------------
-rw-rw-rw- (666) любой пользователь может читать и изменять
---------------------------------------------------------------------
-rwxrwxrwx (777) любой пользователь может читать, изменять и
запускать на исполнение
---------------------------------------------------------------------
drwx------ (700) только владелец может входить в этот каталог,
читать и записывать в него файлы
---------------------------------------------------------------------
drwxr-xr-x (755) любой пользователь может входить в этот каталог
и читать содержимое каталога, но изменять содержимое может только
владелец
---------------------------------------------------------------------
В скобках указан числовой эквивалент
r =4
w =2
x =1
- =0
Для вычисления требуется сложить числа
Пример:
-rw-rw-rw-
rw =4+2+0=6
6 для владельца, 6 для группы и 6 для остальных
в итоге получаем 666
Если видим запись примерно такого типа:
lrwxrwxrwx 1 user www 15 Mar 2004 -> /katalog/file
l -(буква) означает, что это не файл а ссылка
-> означает, что это ссылка на /katalog/file
Или такого:
drwxr-xr-x 2 user www 15 Mar 2004 file
d -означает,что "file" является каталогом , а не файлом
Изменить права доступа можно командой chmod
Пример:
chmod a-rw file.dat -отмена всех разрешений на доступ (а означает-
для всех)
chmod 666 file.dat -чтение и запись для всех
Теперь о SUID и SGID
--------------------
Права на файлы это правила, у правил есть исключения в виде дополнительных атрибутов
биты SUID и SGID. Для чего они требуются?
Если установлены права доступа SUID и файл исполняемый, то при запуске на выполнение
файл получает не права запустившего его, а права владельца файла.
Например:
В системе пользователям разрешено самостоятельно изменять пароль при помощи утилиты
passwd, обычно находится /usr/bin/passwd. Владельцем passwd является пользователь root
поскольку утилита работатет с файлом /etc/passwd который может модифицировать только
пользователь root. Что бы непривилигированый пользователь мог работать с системным
файлом (т.е. изменить свой пароль) на утилите passwd должен быть устанвлен бит SUID.
Если установлены права доступа SGID, то это равнозначно установке бита SUID, только
наследуются права не владельца файла, а группы владельца.
Если установить SGID на каталог, то файлы в этом каталоге будут иметь такие же установки
как и установки каталога.
-r-s--x--x 1 root root 15 Mar 2004 passwd
s -(буква) в правах означает, что на файле passwd установлен бит SUID
Найти все файлы в системе с установлеными битами SUID и SGID, владельцем которых является
root, можно командой:
find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;
увидим нечто такое
*-rwsr-xr-x 1 root root 35168 Sep 22 23:35 /usr/bin/chage
*-rwsr-xr-x 1 root root 36756 Sep 22 23:35 /usr/bin/gpasswd
*-r-xr-sr-x 1 root tty 6788 Sep 6 18:17 /usr/bin/wall
-rwsr-xr-x 1 root root 33152 Aug 16 16:35 /usr/bin/at
-rwxr-sr-x 1 root man 34656 Sep 13 20:26 /usr/bin/man
Для того, что бы снять бит s с файла, достаточно выполнить команду
chmod a-s /usr/bin/gpasswd -снимет бит s с файла /usr/bin/gpasswd
Для поиска всех файлов доступных на запись используйте команду
find / -type f ( -perm -2 -o -perm -20 ) -exec ls -lg {} ;
Для поиска всех каталогов доступных на запись - команда
find / -type d ( -perm -2 -o -perm -20 ) -exec ls -ldg {} ;
Автор: dinggo
Источник: http://www.inattack.ru/
Привет!
Похоже, вы зашли сюда первый раз, и еще не знаете что
такое МоёМесто.ru?
Это сервис интернет закладок. Для чего он может вам пригодится?
Здесь вы можете хранить все свои закладки
Просто
зарегистрируйтесь, установите панель
МоёМесто::Панель в свой браузер,
и вы сможете сохранить любую страницу в Интернете в один клик.
А если у вас уже есть коллекция любимых ссылок в браузере — вы можете
импортировать их в
МоеМесто.
Здесь вы можете хранить любые файлы
Картинки, фотографии, документы, музыку и даже видео — все что угодно.
500 Мегабайт дискового пространства
предоставляется бесплатно.
Время хранения файлов
не ограниченно.
Зарегистрируйтесь
прямо сейчас, и уже через несколько секунд
вы сможете хранить свои закладки в Интернете!