Su

Материал из Wiki Open book
Перейти к: навигация, поиск

Оглавление | Предыдущая страница | Следующая страница


Программа su позволяет запустить оболочку с правами другого пользователя и группы.

su [OPTION]... [-] [USER [ARG]...]

Если запустить программу без параметров, то вы по умолчанию попытаетесь получить права пользователя root.

[artur@main ~]$ su
Password:
[root@main artur]#

Посмотрим что происходит. Вот список процессов

 UID   GID  CMD
 500   500     \_ -bash
   0     0         \_ su
   0     0             \_ bash
   0     0                 \_ ps -xafo uid,gid,cmd
   0     0                 \_ less

Программа su запускается с правами суперпользователя. Почему?

[root@main artur]# ls -l /bin/su
-rwsr-xr-x 1 root root 34904 Июн 22 15:46 /bin/su

Обратите внимание на установленный SUID бит. Это означает, что кто бы не запустил эту программу, она выполняется с правами хозяина файла программы. Хозяин root, вот и su выполняется с правами этого пользователя. Соответственно все порожденные ей программы, по умолчанию выполняются с правами root.

su запустила новый экземпляр bash, в котором собственно и была введена команда ps -xafo uid,gid,cmd | less.

Для того, что бы получить обратно права пользователя artur, достаточно завершить выполнение программы bash, которая была запущена из su. Как только завершает работу программа, запущенная программой su, она (su) прекращает свою работу. Т.е. достаточно выполнить команду exit.

[root@main artur]# exit
exit
[artur@main ~]$

Если вы хотите получить права другого пользователя, достаточно указать его логин в качестве аргумента командной строки.

[artur@main ~]$ su kryukov
Password:
sh-4.1$ id
uid=10194(kryukov) gid=10000 группы=10000,97(dovecot)
sh-4.1$ exit
exit
[artur@main ~]$

to be продолжение....

Источник — «http://kryukov.biz/wiki/Su»
Инструменты
    
Личные инструменты