Ich spiele mit Linux herum und beginne mit der Verwendung des Terminals. Ich versuche, Ordner im Stammverzeichnis des Dateisystems zu erstellen, wozu mein normaler Benutzer keine Berechtigung hat.
Beim Ausführen su root mkdir u01
werde ich zur Eingabe der Anmeldeinformationen aufgefordert und das Terminal gibt den Fehler „Binärdatei kann nicht ausgeführt werden“ zurück.
Wenn ich su root
und dann ausführe mkdir u01
, funktioniert der Befehl einwandfrei.
Irgendwelche Ideen?
Ich verwende Oracle Linux 6.5
Antwort1
Das Problem ist Ihr Anruf bei su
.
Die korrekte Syntax zum Ausführen eines Befehls als ein anderer Benutzer lautet:
su [username] -c "[command]"
Beachten Sie die Anführungszeichen um den Befehl. Sie sind wichtig, damit die anderen Argumente des Befehls ordnungsgemäß ausgeführt werden.
Antwort2
Insgesamt sollte es einem „normalen“ Benutzer nicht gestattet sein, Dateien oder Ordner im Stammverzeichnis des Dateisystems zu erstellen. Dies zuzulassen führt zu allen möglichen Sicherheitsproblemen.
Wenn Sie „su root mkdir u01“ ausführen, fragt Ihr System Sie nach dem Root-Passwort. Was Sie wahrscheinlich ausführen sollten, ist „sudo mkdir u01“, das Sie nach Ihrem normalen Benutzerpasswort fragt. Beachten Sie, dass dies voraussetzt, dass sudo richtig konfiguriert ist, um dies zuzulassen.
Antwort3
Bei sudo
ordnungsgemäßer Konfiguration können Sie dieses Verzeichnis folgendermaßen erstellen:
sudo mkdir u01
Wenn sudo aus irgendeinem Grund nicht funktioniert (oder nicht einmal installiert ist – unwahrscheinlich, aber möglich), können Sie es su
mit Befehlsparametern -c
wie folgt verwenden:
su -c "mkdir u01"
(Beachten Sie, dass der Befehl in Anführungszeichen gesetzt werden muss, damit er ordnungsgemäß übergeben werden kann su
.)
Wichtiger Unterschied zwischen der Verwendung von sudo
und su
: Bei der Aufforderung zur Eingabe eines Passworts sudo
wird das Passwort Ihres Benutzerkontos benötigt, aber su
das Passwort des Root-Kontos. Bei vielen Linux-Distributionen (insbesondere der Ubuntu/Debian-Familie) wird das Passwort des Root-Kontos möglicherweise nie zugewiesen und su
kann daher fehlschlagen (es sei denn, Sie weisen dem Root-Konto vorher ein Passwort zu).