воскресенье, 9 декабря 2012 г.

Setuid, Setgid


Поиск файлов с битом setuid

find / -type f -perm -4000 -exec ls -l {} \;

...
-rwsr-xr-x 1 root root 35712 Nov  8  2011 /bin/ping
-rwsr-xr-x 1 root root 40256 Nov  8  2011 /bin/ping6
-rwsr-xr-x 1 root root 69096 Mar 30  2012 /bin/umount
-rwsr-xr-x 1 root root 36832 Sep 13 02:29 /bin/su
-rwsr-xr-x 1 root root 31304 Mar  2  2012 /bin/fusermount
-rwsr-xr-x 1 root root 94792 Mar 30  2012 /bin/mount
...

(Бит setuid, установленный для директорий игнорируется (в большинстве дистрибутивов Linux/Unix))

Поиск файлов и каталогов с битом setgid

find / -perm -2000 -exec ls -l {} \;

...
-rwxr-sr-x 1 root tty 14648 Mar 31  2012 /usr/bin/bsd-write
-rwxr-sr-x 3 root mail 14544 Oct 18  2011 /usr/bin/mail-unlock
-rwxr-sr-x 3 root mail 14544 Oct 18  2011 /usr/bin/mail-touchlock
-rwsr-sr-x 1 daemon daemon 47928 Oct 25  2011 /usr/bin/at
-rwxr-sr-x 1 root mlocate 39472 Aug 17  2011 /usr/bin/mlocate
-rwxr-sr-x 1 root shadow 50760 Sep 13 02:29 /usr/bin/chage
-rwxr-sr-x 3 root mail 14544 Oct 18  2011 /usr/bin/mail-lock
-rwxr-sr-x 1 root utmp 375984 Jun  6  2011 /usr/bin/screen
-rwxr-sr-x 1 root shadow 23168 Sep 13 02:29 /usr/bin/expiry
-rwxr-sr-x 1 root tty 18976 Mar 30  2012 /usr/bin/wall
-rwxr-sr-x 1 root mail 14800 Oct 17  2011 /usr/bin/dotlockfile
-rwxr-sr-x 1 root crontab 35896 Jun 20  2012 /usr/bin/crontab
-rwxr-sr-x 1 root ssh 129104 Apr  2  2012 /usr/bin/ssh-agent
-rwsr-sr-x 1 libuuid libuuid 18856 Mar 30  2012 /usr/sbin/uuidd
...

Поиск файлов и каталогов c обеими битами сразу

find / -perm -6000 -exec ls -l {} \;

...
-rwsr-sr-x 1 daemon daemon 47928 Oct 25  2011 /usr/bin/at
-rwsr-sr-x 1 libuuid libuuid 18856 Mar 30  2012 /usr/sbin/uuidd
...

setuid, setgid для файла:

Когда атрибут setuid установлен файлу (chmod u+s), обычный пользователь, запускающий этот файл на исполнение, получает повышение прав до пользователя-владельца файла (обычно root) в рамках запущенного процесса. После получения повышенных прав приложение может выполнять задачи выполнение которых обычному пользователю недоступно. Пользователю будет запрещено системой изменение нового процесса. Из-за возможности состояния гонки многие операционные системы игнорируют установленный атрибут к shell-скриптам.
Хоть атрибут setuid очень удобен во многих случаях, его неправильное использование может представлять угрозу безопасности когда атрибут присваивается исполняемому файлу, который не тщательно спроектирован. Пользователи могут использовать уязвимости в недоработанных программах, чтобы получить повышенные привилегии или непреднамеренно запустить программу троянского коня.
Установленный setgid атрибут (chmod g+s) дает аналогичное повышение прав, но только для группы. Атрибуты setuid и setgid обычно устанавливаются командой chmod установкой первого бита в 4 (setuid) или 2 (setgid). Команда "chmod 6711" соответственно установит оба бита сразу (4+2=6). Также можно использовать символьные аргументы для установки этих битов командой "chmod ug+s".
Обычно, установка бита setuid и setgid на неисполняемых файлах бессмысленна.

setuid, setgid для директории:

Бит setgid для папки (chmod g+s) заставляет только новые папки и файлы, созданные в ней, наследовать ID группы этой папки вместо ID группы пользователя создавшего файл. Новые подпапки также наследуют бит setgid. Это например позволяет создать общее рабочее пространство для группы без неудобств членам группы явно менять их текущую группу для создания новых файлов и папок. Наследование устанавливается только для новых файлов и папок.

Бит setuid не несет никакого смысла, если он установлен на директорию.

Комментариев нет:

Отправить комментарий