Ich benutze Ubuntu Linux und ich habe eine proprietäre Viber-Software. Heute habe ich eine Datei mit Viber gespeichert und festgestellt, dass sie im Dateisystem mit dem Root- Benutzer als Eigentümer gespeichert wurde . Ich habe mehr gegraben und festgestellt, dass zwei Prozesse ausgeführt werden, einer unter meinem Benutzernamen und einer unter root. Könnte mir jemand erklären, ob es einem Prozess im Benutzerbereich möglich ist, einen anderen Unterprozess als Root zu starten?
Hier sind die Berechtigungen der mit Viber gespeicherten Datei:
mehdix@spielplatz:~/New Folder2$ ls -l
total 240
-rw-rw-r-- 1 root root 245455 Okt 9 09:50 saved_with_viber
Und hier ist das Ergebnis des Befehls '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:~$
Hier ist die Ausgabe von '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
und hier ist der Inhalt von '/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
ls -l /usr/share/viber/Viber
und/usr/share/viber/Viber.sh
irgendwo posten ? Das könnte uns sagen, was los ist ...Antworten:
Sicher. Eine Datei mit dem SUID-Berechtigungsbit wird unter dem Dateieigentümer und nicht unter dem Benutzer ausgeführt, der sie gestartet hat. Eine SUID-Datei von root wird unter root ausgeführt.
sudo
ist ein Beispiel für ein solches Programm. Sie können es von jedem Benutzer aus starten, aber es wird unter root ausgeführt und kann weitere Prozesse mit root-Rechten starten.Wie Sie in Ihrer
ls -l
Ausgabe sehen können, wird diese Methode hier verwendet: Die Datei gehörtroot
und das SUID-Bit ist gesetzt (wie durch die Ausführungsberechtigungens
anstelle vonx
für Benutzer angegeben). Tatsächlich scheint das SGID-Bit ebenfalls gesetzt zu sein.quelle
sudo
Binärdatei angefordert und verwaltet und hat nichts mit SUID zu tun - es tritt auf, nachdem die Binärdatei unter demroot
Benutzer ausgeführt wurde. Die SUID- und andere Berechtigungsfunktionalität wird vom Kernel (exec
) verwaltet.