Antworten:
In MacOS X ist der Root-Benutzer standardmäßig deaktiviert und su
funktioniert daher nicht. Wie andere gesagt haben, ist es am besten zu verwenden sudo
.
Wenn Sie müssen die Root - Benutzer aktivieren, finden Sie Apples technote: Aktivieren und mit dem Benutzer „root“ in Mac OS X .
sudo su
, was in aller Welt ist dann der Grund für die Deaktivierung su
?
su
, das Root-Login zu "deaktivieren " . Durch Deaktivieren der Anmeldung als root
verhindern Sie eine Reihe möglicher Sicherheitsprobleme. Jemandem nicht zu erlauben, der kann sudo
, su
ist irgendwie dumm. Grundsätzlich wird su
nur die aktuelle Benutzer-ID geändert und ein Befehl ausgeführt (eine Shell, falls nicht angegeben). Wenn die Benutzer-ID bereits 0 (root) ist, z. B. wenn sie mit ausgeführt wird sudo
, hat sie nichts zu tun, daher wird nur die Shell ausgeführt. Sie können einen ähnlichen Effekt erzielen, indem Sie Folgendes tun sudo bash
.
Sie haben zwei Möglichkeiten. Die erste ist zu verwenden sudo -s
- dies gibt Ihnen Superuser-Zugriff, aber Sie bleiben (sozusagen) immer noch "Sie selbst", so dass Dinge wie ~
immer noch Ihr Home-Verzeichnis sind. Alternativ können Sie verwenden sudo su
, wodurch Sie eine Shell als eigentlichen Root-Benutzer Ihres Mac erhalten.
sudo
, um Befehle auszuführen, die erhöhte Berechtigungen erfordern, und nicht, um zu einer Root-Shell zu wechseln und von dort aus zu arbeiten.
sudo
Ethos auf das Äußerste. Aber was auch immer: Semantik. Verwenden Sie unter OS X keine Root-Shells.
Wenn Sie beispielsweise Dateien verschieben oder git über die CLI verwenden müssen, ist in diesem Fall die Verwendung des sudo -s
Befehls die beste Lösung . Nach diesem Befehl müssen Sie das Kennwort nicht immer wieder eingeben.
Ich denke, Sie können dies als "normaler" Benutzer nicht tun ...
Wenn es ein anderes Benutzerkonto mit Administratorrechten gibt, müssen Sie dieses verwenden
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -u
Verwenden Sie zum Ausführen als andere Verwendung sudo -u
.
So führen Sie beispielsweise einen Texteditor wie nano aus :
sudo -u someuser nano
… Und geben Sie Ihr Mac-Administratorkennwort ein, wenn Sie dazu aufgefordert werden. Zu diesem Zeitpunkt ruft Ihr Mac-Administrator den Benutzer auf sudo
, nicht der someuser
Benutzer, sodass Sie das someuser
Kennwort nicht eingeben .
sudo
bedeutet, etwas mit Superuser-Rechten auszuführen.-u
bedeutet "einen bestimmten Befehl als dieser angegebene Benutzer ausführen".someuser
sollte durch Ihren gewünschten Benutzernamen ersetzt werden.Verwenden Sie, um eine Erstanmeldung als bestimmter Benutzer zu simulieren, einschließlich der Ausführung seiner Startskripte -I
.
sudo -u someuser -i nano
Dadurch wird die nano
App als Benutzer ausgeführt, someuser
jedoch erst, nachdem die Startskripts für diesen Benutzer ausgeführt wurden.
Wenn wir keinen Befehl oder keine App angeben, die ausgeführt werden soll, wird eine interaktive Shell als dieser Benutzer ausgeführt.
sudo -u someuser -i
sudo su someuser
Ein anderer Ansatz verwendet den su
Befehl in Kombination mit dem Befehl sudo
. Der su
Befehl bedeutet "Benutzer wechseln".
sudo su someuser
Fügen Sie den Bindestrich hinzu, um die Startskripte des Benutzers auszuführen.
sudo su - someuser
root
BenutzerDer root
Benutzer in Unix-bezogenen Betriebssystemen hat die absolute Macht, alles zu tun.
Apple hat beschlossen, das root
Konto in macOS zu deaktivieren , Sicherheitslücken zu vermeiden und Sie davor zu schützen, sich in den Fuß zu schießen. Apple entwickelte die Idee der Administrator- Benutzerkonten, die viele Befugnisse haben, mehr Befugnisse als ein Standard- Benutzerkonto, aber keine absoluten Befugnisse wie root
diese. Weitere Informationen finden Sie in diesem Apple Support-Hinweis .
Wenn nötig, Sie können die ermöglichen root
Benutzer in macOS und wechseln Sie dann zu diesem Benutzer. Dies wird dringend abgeraten. Ich würde diesen Weg nur als verzweifeltes letztes Mittel beschreiten.
Weitere Informationen hierzu im Kontext des postgres
Benutzers, der das Postgres- Datenbanksystem unter macOS ausführt, finden Sie unter dieser Frage auf der Schwestersite DBA Stack Exchange .
sudo su
funktioniert immer noch, so ist es nicht wirklich deaktiviert. Es hat einfach kein Passwort.