Я использую Ubuntu Linux, и у меня работает проприетарное программное обеспечение Viber. Сегодня я сохранил файл, используя Viber, и понял, что он был сохранен в файловой системе с владельцем root в качестве владельца. Я копал больше и понял, что запущены два процесса, один под моим именем пользователя, другой под root. Может ли кто-нибудь объяснить мне, возможно ли, чтобы процесс в пользовательском пространстве запускал другой подпроцесс от имени пользователя root?

Вот права доступа к файлу, хранящемуся в Viber:

mehdix@spielplatz:~/New Folder2$ ls -l
total 240
-rw-rw-r-- 1 root root 245455 Okt  9 09:50 saved_with_viber

и вот результат команды 'ps':

mehdix@spielplatz:~$ ps axuf | grep Viber
mehdix   23857  0.0  0.0   4444   644 ?        S    Okt08   0:00          \_ /bin/sh /usr/share/viber/Viber.sh
root     23864  0.0  1.8 2794592 146604 ?      Sl   Okt08   0:17          |   \_ /usr/share/viber/Viber
mehdix   26484  0.0  0.0  17432   964 pts/5    S+   09:43   0:00                  \_ grep --color=auto Viber
mehdix@spielplatz:~$

Вот вывод 'ls -l /usr /share /viber /Viber':

mehdix@spielplatz:~$ ls -l /usr/share/viber/Viber
-rwsr-sr-x 1 root root 1733113 Okt 31  2013 /usr/share/viber/Viber

и вот содержимое файла /usr/share/viber/Viber.sh:

mehdix@spielplatz:~$ cat /usr/share/viber/Viber.sh
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
  dirname=$PWD/$dirname
fi

LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH

1 ответ1

2

Конечно. Файл с установленным битом разрешения SUID будет запускаться от имени владельца файла, а не от пользователя, который его запустил. Файл SUID, принадлежащий пользователю root, будет работать под пользователем root.

sudo является примером такой программы. Вы можете запустить его от любого пользователя, но он будет работать под root и может запускать дальнейшие процессы с привилегиями root.

Как вы можете видеть в выводе ls -l , этот метод используется здесь: файл принадлежит root и бит SUID установлен (как указано s вместо x для прав пользователя на выполнение). На самом деле, похоже, что бит SGID также установлен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .