Jedes Mal, wenn ich versuche, eine Ausgabe zu su
erstellen, erhalte ich Folgendes:
$ su
Password:
su: Sorry
Ich muss nicht erwähnen, dass ich das richtige Administratorkennwort eingebe, mit dem es funktioniert sudo
. Was ich möchte, ist nicht sudo
jedes Mal eingeben zu müssen.
sudo su
funktioniert immer noch, so ist es nicht wirklich deaktiviert. Es hat einfach kein Passwort.sudo su
, was in aller Welt ist dann der Grund für die Deaktivierungsu
?su
, das Root-Login zu "deaktivieren " . Durch Deaktivieren der Anmeldung alsroot
verhindern Sie eine Reihe möglicher Sicherheitsprobleme. Jemandem nicht zu erlauben, der kannsudo
,su
ist irgendwie dumm. Grundsätzlich wirdsu
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 wirdsudo
, hat sie nichts zu tun, daher wird nur die Shell ausgeführt. Sie können einen ähnlichen Effekt erzielen, indem Sie Folgendes tunsudo 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 verwendensudo su
, wodurch Sie eine Shell als eigentlichen Root-Benutzer Ihres Mac erhalten.quelle
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.quelle
Ich denke, Sie können dies als "normaler" Benutzer nicht tun ...
Wenn es ein anderes Benutzerkonto mit Administratorrechten gibt, müssen Sie dieses verwenden
quelle
Moderne Lösung:
sudo -u
Verwenden Sie zum Ausführen als andere Verwendung
sudo -u
.So führen Sie beispielsweise einen Texteditor wie nano aus :
… Und geben Sie Ihr Mac-Administratorkennwort ein, wenn Sie dazu aufgefordert werden. Zu diesem Zeitpunkt ruft Ihr Mac-Administrator den Benutzer auf
sudo
, nicht dersomeuser
Benutzer, sodass Sie dassomeuser
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
.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.
Alte Schule:
sudo su someuser
Ein anderer Ansatz verwendet den
su
Befehl in Kombination mit dem Befehlsudo
. Dersu
Befehl bedeutet "Benutzer wechseln".Fügen Sie den Bindestrich hinzu, um die Startskripte des Benutzers auszuführen.
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 wieroot
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 .quelle