Immer wenn ich versuche, etwas auszugeben su
, bekomme ich Folgendes:
$ su
Password:
su: Sorry
Unnötig zu sagen, dass ich das richtige Admin-Passwort eingebe, das mit funktioniert sudo
. sudo
Was ich möchte, ist, nicht jedes Mal eintreten zu müssen.
In MacOS X ist der Root-Benutzer standardmäßig deaktiviert und su
funktioniert daher nicht. Wie andere gesagt haben, ist es am besten, sudo
.
Wenn Sie den Root-Benutzer aktivieren müssen , lesen Sie den technischen Hinweis von Apple: Enabling and using the "root" user in Mac OS X .
Sie haben zwei Möglichkeiten. Die erste ist zu verwenden sudo -s
- dies gibt Ihnen Superuser-Zugriff, aber Sie bleiben immer noch 'Sie selbst' (sozusagen), also werden Dinge wie ~
immer noch Ihr Home-Verzeichnis sein. Alternativ können Sie verwenden sudo su
, wodurch Sie als eigentlicher Root-Benutzer Ihres Mac eine Shell erhalten.
sudo
, Befehle auszuführen, die erhöhte Berechtigungen erfordern, und nicht, zu einer Root-Shell zu wechseln und von dort aus zu arbeiten.sudo
Ethos auf die Spitze treiben. Aber egal: Semantik. Verwenden Sie keine Root-Shells in OS X.sudo -u
Um als andere Verwendung ausgeführt zu werden, verwenden Sie sudo -u
.
Um beispielsweise einen Texteditor wie nano auszuführen :
sudo -u someuser nano
…und geben Sie Ihr Mac-Administratorkennwort ein, wenn Sie dazu aufgefordert werden. An dieser Stelle ist es Ihr Mac-Admin-Benutzer, der aufruft sudo
, nicht der someuser
Benutzer, also geben Sie das someuser
Passwort nicht ein.
sudo
bedeutet, etwas mit Superuser-Rechten auszuführen.-u
bedeutet „einen angegebenen Befehl als diesen angegebenen Benutzer ausführen“.someuser
sollte durch Ihren gewünschten Benutzernamen ersetzt werden.Verwenden Sie -I
.
sudo -u someuser -i nano
Dadurch wird die nano
App als Benutzer someuser
ausgeführt, jedoch erst, nachdem die Startskripts für diesen Benutzer ausgeführt wurden.
Wenn wir uns dafür entscheiden, keinen auszuführenden Befehl oder keine App anzugeben, erhalten wir eine interaktive Shell, die als dieser Benutzer ausgeführt wird.
sudo -u someuser -i
sudo su someuser
Ein anderer Ansatz verwendet den su
Befehl in Kombination mit der sudo
. Der su
Befehl bedeutet „Benutzer wechseln“.
sudo su someuser
Oder fügen Sie den Bindestrich hinzu, um die Startskripts des Benutzers auszuführen.
sudo su - someuser
root
BenutzerDer root
Benutzer in Unix-bezogenen Betriebssystemen hat die absolute Macht, alles zu tun.
Apple hat sich entschieden, das Konto in macOS zu deaktivieren, um das root
Ausnutzen von Sicherheitslücken zu vermeiden und Sie davor zu schützen, sich selbst ins Knie zu schießen. Apple hat die Idee der Administrator - Benutzerkonten entwickelt, die viele Befugnisse haben, mehr Befugnisse als ein Standard -Benutzerkonto, aber keine absolute Macht wie root
sie hat. Weitere Informationen finden Sie in diesem Apple Support-Hinweis .
Bei Bedarf können Sie den Benutzer in macOS aktivieren root
und dann zu diesem Benutzer wechseln. Davon wird dringend abgeraten. Ich würde diesen Weg nur als verzweifelten letzten Ausweg gehen.
Eine Diskussion dazu im Kontext des postgres
Benutzers, der das Postgres -Datenbanksystem unter macOS ausführt, finden Sie in dieser Frage auf der Schwesterseite DBA Stack Exchange .
Ich denke, das kann man als "normaler" User nicht machen...
Wenn es ein anderes Benutzerkonto mit Admin-Rechten 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
account required pam_group.so ...
weist das System an, su nur rooten zu lassen, wenn Sie von einem Konto in der Gruppe admin
oder wechseln wheel
. Sie können diese Zeile auskommentieren, wenn Sie das wirklich wollen, aber ich würde es nicht tun, da es für die (hoffentlich seltenen) Gelegenheiten, in denen Sie root werden müssen, nicht wirklich notwendig ist.Wenn Sie beispielsweise Dateien verschieben oder git mit der 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 Passwort nicht immer wieder neu eingeben.
Ich hatte das gleiche Problem und wie @Nohillside vorgeschlagen hat, gibt es keine Möglichkeit, über den Befehl su als normaler Benutzer auf root zuzugreifen, indem Sie einfach su verwenden . Wie bereits erwähnt, wird das Hinzufügen des Administratorkontos zum Befehl su erkannt. Auf diese Weise konnte ich mich als Root verbinden. Es ist nicht etwas, was ich oft tun werde. Ich wollte es nur testen und das Ergebnis war eine sofortige Verbindung.
> admin-server:~ admin$ su
> Password:
> su: Sorry
> admin-server:~ admin$ su - admin
> Password:
> admin-server:~ admin$
sudo su
da es auch unter Linux funktioniert.Versuchen Sie das Passwort alpine
?! Der Legende nach alpine
war das viele Jahre lang das Root-Passwort auf macOS! Sie können von einer Admin-Konto-Shell aus rooten mit:
sudo su
Ich empfehle dann das Passwort für root zu ändern mit:
passwd
Danach kann ich einfach su
das eigentliche Root-Passwort ausführen und eingeben. Praktisch, um von einem normalen Benutzerkonto aus root zu werden.
Falscher Name
sudo su
funktioniert immer noch, also ist es nicht wirklich deaktiviert. Es hat nur kein Passwort.Kellen Stuart
sudo su
, was in aller Welt bringt essu
dann, es zu deaktivieren?Falscher Name
su
", sondern die Root-Anmeldung zu verhindern . Indem Sie die Anmeldung als verbietenroot
, verhindern Sie eine Reihe möglicher Sicherheitsprobleme. Jemandem nicht zu erlauben, der es kannsudo
,su
ist irgendwie albern. Ändert im Grundesu
nur die aktuelle Benutzer-ID und führt einen Befehl aus (eine Shell, falls nicht angegeben). Wenn die Benutzer-ID bereits 0 (root) ist, z. B. wenn sie mit ausgeführtsudo
wird, gibt es nichts zu tun, also führt sie einfach die Shell aus. Sie können einen ähnlichen Effekt erzielen, indem Siesudo bash
.Kellen Stuart
Falscher Name