root: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<b>root</b> ist der Benutzername desjenigen [[Benutzers]] (auch "superuser" genannt) mit den maximalen Systemverwalterrechten bei einem [[Unix]]-Betriebssystem. Das | <b>root</b> ist der Benutzername desjenigen [[Benutzers]] (auch "superuser" genannt) mit den maximalen Systemverwalterrechten bei einem [[Unix]]-Betriebssystem. Das Benutzerkonto des Benutzers "root" wird auch "root account" genannt. | ||
In unixoiden Betriebssystemen wird jedes Benutzerkonto mit einer Zahl assoziiert; der sogenannten "User ID / UID". Das erste Benutzerkonto auf jedem System hat die UID 0 und besitzt historisch bedingt alle Rechte über die Ressourcen des Systems. Da dieses Konto für die Installation des Rechners notwendig ist und daher alle Dateien und Verzeichnisse aus diesem Benutzerkonto hervorgehen, kann hier von einer "Wurzel" (engl. root) gesprochen werden. Nach dem Beenden der Installation kann dieses Konto zur Verwaltung (Administration) des Systems verwendet werden. | In unixoiden Betriebssystemen wird jedes Benutzerkonto mit einer Zahl assoziiert; der sogenannten "User ID / UID". Das erste Benutzerkonto auf jedem System hat die UID 0 und besitzt historisch bedingt alle Rechte über die Ressourcen des Systems. Da dieses Konto für die Installation des Rechners notwendig ist und daher alle Dateien und Verzeichnisse aus diesem Benutzerkonto hervorgehen, kann hier von einer "Wurzel" (engl. root) gesprochen werden. Nach dem Beenden der Installation kann dieses Konto zur Verwaltung (Administration) des Systems verwendet werden. | ||
Der Benutzer mit den root-Rechten hat als einziger Benutzer auf einem [[Unix]]-Rechner uneingeschränkte Rechte, die sich insbesondere bei [[Dateiverwaltung]] ([[ | Der Benutzer mit den root-Rechten hat als einziger Benutzer auf einem [[Unix]]-Rechner uneingeschränkte Rechte, die sich insbesondere bei [[Dateiverwaltung]] ([[Zugriffsrechte]] usw.) und Benutzung von Systemressourcen (Arbeitsspeicher, Geräte) auszeichnet. Eine besondere Position wird dem Benutzer "root" auch bei der Verwaltung des [[Kernels]] sowie der [[Prozesskontrolle]] eingeräumt: So kann dieser Benutzer sämtliche Prozesse nach Belieben verändern und damit beispielsweise den Rechner neu starten. Bei einem Kernel, der dynamisch ladbare Kernelmodule unterstützt, kann der Benutzer "root" indirekt mit dem Kernel-Space auf nächster Ebene agieren. | ||
Sollte ein böswilliger Cracker das Passwort des Benutzers "root" herausfinden, so ist dieser daher vollständig kompromittiert. Um im Anschluss an einen erfolgreichen Angriff die eigene Anwesenheit vor dem Systemadministrator zu verbergen, nutzen Angreifer sogenannte [[ | Sollte ein böswilliger Cracker das Passwort des Benutzers "root" herausfinden, so ist dieser daher vollständig kompromittiert. Um im Anschluss an einen erfolgreichen Angriff die eigene Anwesenheit vor dem Systemadministrator zu verbergen, nutzen Angreifer sogenannte [[Rootkits]]. | ||
Üblicherweise unterscheidet sich die Eingabeaufforderung des Benutzers "root" von der anderer Benutzer durch eine abschliessende Raute ("#"), statt einem Dollarzeichen ("$"). Man spricht in diesem Falle von einem root-Prompt. | Üblicherweise unterscheidet sich die Eingabeaufforderung des Benutzers "root" von der anderer Benutzer durch eine abschliessende Raute ("#"), statt einem Dollarzeichen ("$"). Man spricht in diesem Falle von einem root-Prompt. | ||
== Fragen und Antworten == | |||
=== Test, ob der aktuelle Benutzer "root" ist === | |||
# Deduce the effective user id: | |||
# 1. POSIX-style, the id program | |||
# 2. the old whoami program | |||
# 3. last gasp, check if we have write permission on /dev | |||
# | |||
euid=$(id|sed -e 's/.*uid=[0-9]*(\([^)]*\)).*/\1/') | |||
test -z "$euid" && \ | |||
euid=$((whoami) 2>/dev/null) test -z "$euid" && \ | |||
test -w /dev && \ | |||
euid=root if [ "$euid" != "root" ]; then | |||
echo "Sorry, but you must run this script as the super-user!" | |||
exit 1 | |||
fi | |||
=== Aufruf eines Skripts ohne Rechte als Benutzer "root" === | |||
Angenommen es gibt im Verzeichnis "/tmp" ein Skript namens "test.sh", ohne jegliche Rechte, egal wem es gehört. | |||
root@abc:/tmp# <b>ls -al test.sh</b> | |||
---------- 1 mik mik 38 Jul 11 19:54 test.sh | |||
Das Skript hat folgenden Inhalt: | |||
#!/bin/bash | |||
echo "Aufruf ist erfolgt" | |||
Mit folgenden beiden Befehlen kann das Skript auch als Benutzer "root" nicht aufgerufen werden: | |||
root@abc:/tmp# <b>/tmp/test.sh</b> | |||
bash: /tmp/test.sh: Keine Berechtigung | |||
root@abc:/tmp# <b>./test.sh</b> | |||
bash: ./test.sh: Keine Berechtigung | |||
Mit den folgenden Befehlen kann Benutzer "root" es aber durchaus aufrufen. Ein vorheriges Berechtigen mit chmod kann man sich also sparen. "sh" ist meist ohnehin bloss ein Link auf "bash". Der Punkt (".") ist in der Bash ein Synonym für "source": | |||
root@abc:/tmp# <b>sh test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>bash test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>source /tmp/test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>source ./test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>source test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>. /tmp/test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>. test.sh</b> | |||
Aufruf ist erfolgt | |||
root@abc:/tmp# <b>. ./test.sh</b> | |||
Aufruf ist erfolgt | |||
All das gilt natürlich nur für den superuser "root", der sich also nicht selber entmachten kann. | |||
== Weblinks == | == Weblinks == | ||
{{ | {{Weblinks}} | ||
}} | {{url_dewikipedia|Root-Account|Root-Account}} | ||
{{Fuss}} | |||
Aktuelle Version vom 11. Juli 2014, 18:11 Uhr
root ist der Benutzername desjenigen Benutzers (auch "superuser" genannt) mit den maximalen Systemverwalterrechten bei einem Unix-Betriebssystem. Das Benutzerkonto des Benutzers "root" wird auch "root account" genannt.
In unixoiden Betriebssystemen wird jedes Benutzerkonto mit einer Zahl assoziiert; der sogenannten "User ID / UID". Das erste Benutzerkonto auf jedem System hat die UID 0 und besitzt historisch bedingt alle Rechte über die Ressourcen des Systems. Da dieses Konto für die Installation des Rechners notwendig ist und daher alle Dateien und Verzeichnisse aus diesem Benutzerkonto hervorgehen, kann hier von einer "Wurzel" (engl. root) gesprochen werden. Nach dem Beenden der Installation kann dieses Konto zur Verwaltung (Administration) des Systems verwendet werden.
Der Benutzer mit den root-Rechten hat als einziger Benutzer auf einem Unix-Rechner uneingeschränkte Rechte, die sich insbesondere bei Dateiverwaltung (Zugriffsrechte usw.) und Benutzung von Systemressourcen (Arbeitsspeicher, Geräte) auszeichnet. Eine besondere Position wird dem Benutzer "root" auch bei der Verwaltung des Kernels sowie der Prozesskontrolle eingeräumt: So kann dieser Benutzer sämtliche Prozesse nach Belieben verändern und damit beispielsweise den Rechner neu starten. Bei einem Kernel, der dynamisch ladbare Kernelmodule unterstützt, kann der Benutzer "root" indirekt mit dem Kernel-Space auf nächster Ebene agieren.
Sollte ein böswilliger Cracker das Passwort des Benutzers "root" herausfinden, so ist dieser daher vollständig kompromittiert. Um im Anschluss an einen erfolgreichen Angriff die eigene Anwesenheit vor dem Systemadministrator zu verbergen, nutzen Angreifer sogenannte Rootkits.
Üblicherweise unterscheidet sich die Eingabeaufforderung des Benutzers "root" von der anderer Benutzer durch eine abschliessende Raute ("#"), statt einem Dollarzeichen ("$"). Man spricht in diesem Falle von einem root-Prompt.
Fragen und Antworten
Test, ob der aktuelle Benutzer "root" ist
# Deduce the effective user id: # 1. POSIX-style, the id program # 2. the old whoami program # 3. last gasp, check if we have write permission on /dev # euid=$(id|sed -e 's/.*uid=[0-9]*(\([^)]*\)).*/\1/') test -z "$euid" && \ euid=$((whoami) 2>/dev/null) test -z "$euid" && \ test -w /dev && \ euid=root if [ "$euid" != "root" ]; then echo "Sorry, but you must run this script as the super-user!" exit 1 fi
Aufruf eines Skripts ohne Rechte als Benutzer "root"
Angenommen es gibt im Verzeichnis "/tmp" ein Skript namens "test.sh", ohne jegliche Rechte, egal wem es gehört.
root@abc:/tmp# ls -al test.sh ---------- 1 mik mik 38 Jul 11 19:54 test.sh
Das Skript hat folgenden Inhalt:
#!/bin/bash echo "Aufruf ist erfolgt"
Mit folgenden beiden Befehlen kann das Skript auch als Benutzer "root" nicht aufgerufen werden:
root@abc:/tmp# /tmp/test.sh bash: /tmp/test.sh: Keine Berechtigung root@abc:/tmp# ./test.sh bash: ./test.sh: Keine Berechtigung
Mit den folgenden Befehlen kann Benutzer "root" es aber durchaus aufrufen. Ein vorheriges Berechtigen mit chmod kann man sich also sparen. "sh" ist meist ohnehin bloss ein Link auf "bash". Der Punkt (".") ist in der Bash ein Synonym für "source":
root@abc:/tmp# sh test.sh Aufruf ist erfolgt root@abc:/tmp# bash test.sh Aufruf ist erfolgt root@abc:/tmp# source /tmp/test.sh Aufruf ist erfolgt root@abc:/tmp# source ./test.sh Aufruf ist erfolgt root@abc:/tmp# source test.sh Aufruf ist erfolgt root@abc:/tmp# . /tmp/test.sh Aufruf ist erfolgt root@abc:/tmp# . test.sh Aufruf ist erfolgt root@abc:/tmp# . ./test.sh Aufruf ist erfolgt
All das gilt natürlich nur für den superuser "root", der sich also nicht selber entmachten kann.
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | Root-Accountwbm | Enzyklopädischer Artikel |