
Ich dachte:
echo hello world > /usr/bin/firefox
würde die Meldung im Browser anzeigen. Nichts passierte. Dann habe ich versucht:
echo hello world > /usr/bin/kwrite
um zu sehen, ob kwrite mit der Eingabe von „Hallo Welt“ geöffnet wird. Wieder passierte nichts. Dann, nachdem ich versucht hatte, beide Befehle auszuführen:
computer:~$ kwrite
/usr/bin/kwrite: line 1: hello: command not found
computer:~$ firefox
/usr/bin/firefox: line 1: hello: command not found
Tun ls -l /usr/bin/
:
-rwxr-xr-x 1 root root 182576 2012-08-21 06:42 apt-ftparchive
-rwxr-xr-x 1 root root 116996 2012-08-21 06:41 apt-get
-rwxr-xr-x 1 root root 2151596 2011-10-20 21:45 aptitude
-rwxr-xr-x 1 root root 1939 2011-10-20 21:45 aptitude-create-state-bundle
-rwxr-xr-x 1 root root 3007 2011-10-20 21:45 aptitude-run-state-bundle
-rwxr-xr-x 1 root root 7336 2012-08-21 06:41 apt-key
lrwxrwxrwx 1 root root 20 2012-12-29 10:41 /usr/bin/firefox -> /opt/firefox/firefox
-rwxr-xr-x 1 root root 5476 2010-11-17 04:58 /usr/bin/kwrite
-rwxr-xr-x 1 root root 181104 2010-02-16 01:40 zip
-rwxr-xr-x 1 root root 1184 2011-01-21 23:49 zxpdf
Die Binärdateien in /usr/bin
(und anderen Bin-Ordnern) auf meinem System hatten zumindest die Benutzer-Schreibberechtigung (?). Was ich also effektiv getan habe, warschreibenzu den ausführbaren Dateien 'Hallo Welt', obwohl es /usr/bin/kwrite
sich um eine binäre Exec handelte, während es /opt/firefox/firefox
sich um ein Shell-Skript handelte
Es ist also klar, dass ausführbare Dateien anfällig für derartige Unfälle sind. Daher möchte ich fragen, ob die Schreibberechtigung überhaupt erforderlich ist. Ich möchte sie deaktivieren, möchte jedoch sicherstellen, dass ich hier nichts übersehe.
Antwort1
Zunächst müssen Sie es echo hello world > /usr/bin/kwrite
als Root versucht haben, da alle w
oder Schreibbits
für Benutzer und Gruppe deaktiviert -rwxr-xr-x
. Zu Ihrer zweiten Frage hat nur root die richtige Berechtigung zum Schreiben in
die meisten Binärdateien, sofern sie nicht von einem normalen Benutzer kompiliert und installiert wurden.
Sie sollten auch Ihre Kenntnisse über Dateiberechtigungen auffrischen. Hier ist eine großartigeVerknüpfung
Antwort2
Die Binärdateien haben Schreibrechte des Benutzers, weilDer Benutzer ist root. Nur Root kann in schreiben /usr/bin
.
Sie sollten sich wirklich gut daran erinnern, dass Sie als Root keine einfachen Dinge tun müssen (wie Browser und Textverarbeitungsprogramme). Lesen Sie hier, wie Sie den Schaden begrenzen: http://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-your-linux-system-as-root/
Außerdem werden Sie wahrscheinlich feststellen, dass sich .sh
in eine Reihe von Dateien befinden /usr/bin
. Diese könnten bei Bedarf von root bearbeitet werden.