Switcherfrage: Benutzerrechte im OS X

Final

Meraner
Registriert
12.05.07
Beiträge
229
Kleine Frage wie verhält es sich mit Programmen installieren unter OS X.
Bei Windows bin ich mit "Benutzer" eingeloggt, will ich aber ein Programm installieren, muss ich auf das Administrator-Account wechseln.

Ist diese mühsame Prozedur beim Mac auch oder kann ich als Benutzer Programme installieren ohne mein Benutzeraccount zu verlassen?

Macht das OS X auch so ein durcheinander mit den Rechten, z.B. das ich gewisse Programme im "Benutzermodus" nur mit dem Admin Passwort starten kann?
 

thrillseeker

Weißer Winterkalvill
Registriert
06.10.04
Beiträge
3.556
Es gibt drei Stufen von Benutzern - von denen Du allerdings nicht viel mitbekommen wirst:

Root
Ein Super-Administrator, der wirklich alles darf und per Voreinstellung unter Mac OS X deaktiviert ist.

Benutzer mit Admin-Rechten
Der erste Benutzer, der auf einem Mac angelegt wird, hat grundsätzlich Admin-Rechte. Er darf Programme installieren und Veränderungen am System vornehmen.

Benutzer mit eingeschränkten Rechten
Wenn man weitere Benutzer anlegt, kann man festlegen, dass sie keine Admin-Rechte haben. Ideal für Kinder, DAUs und alle Familienmitglieder, Mitarbeiter und Benutzer, die am Mac arbeiten, aber nichts am System verändern sollen.


Für jede Datei (das gilt auch für Programe) unter Mac OS X ist festgelegt, wer sie lesen, schreiben (d.h. verändern, verschieben, löschen) und ausführen darf (letzteres gilt nur für ausführbare Dateien, d.h. Programme). Man kann die Zugriffsrechte über das Fenster "Finder --> Ablage --> Informationen" einblenden (im Fenster auf "Eigentümer und Zugriffsrechte" klicken). Aber Vorsicht! Man sollte die voreingestellten Werte nicht ändern, es sei denn, man weiß genau, was man tut!

Der Benutzer "Root" und alle Benutzer mit Admin-Rechten dürfen Programme installieren, verändern und wieder löschen. Benutzer ohne Admin-Rechte dürfen Programme normalerweise nur ausführen, aber i.d.R. nicht verändern oder löschen. Zum Ausführen muss aber kein Kennwort eingegeben werden.

Fazit
Wenn Du Deinen Mac alleine nutzt, bist Du i.d.R. ein Benutzer mit Admin-Rechten. Zum Installieren von Programmen musst Du meistens Dein Kennwort eingeben, zum Ausführen ist aber kein Wechsel in einen anderen Account und auch keine Eingabe eines Kennwortes erforderlich.

Besonders sicherheitsbewusste Macianer empfehlen manchmal, für die tägliche Benutzung einen Account ohne Admin-Rechte anzulegen. In der Praxis ist dies allerdings nicht unbedingt nötig, da die Sicherheitsmechanismen von Mac OS X auch bei eingeloggtem Admin sehr gut vor ungewolltem Schaden schützen.
 

Final

Meraner
Registriert
12.05.07
Beiträge
229
Besonders sicherheitsbewusste Macianer empfehlen manchmal, für die tägliche Benutzung einen Account ohne Admin-Rechte anzulegen.

Danke für Deine Antwort. Sowie es aussieht werde ich im Alltag "als Benutzer mit eingeschränkten Rechten" unterwegs sein.(Ich weiss ich bin Windows geschädigt...:-D ) Dann bleibt mir halt nichts anderes übrig, wennn ich Programme installieren will, mich "als Benutzer mit Admin-Rechten" einzuloggen.

Hoffte das man beim Mac "als Benutzer mit eingeschränkten Rechten" einfach das Admin-Passwort eingibt und dann Programme installieren kann.
 

thrillseeker

Weißer Winterkalvill
Registriert
06.10.04
Beiträge
3.556
Hoffte das man beim Mac "als Benutzer mit eingeschränkten Rechten" einfach das Admin-Passwort eingibt und dann Programme installieren kann.

Das geht auch (hatte ich oben vergessen, zu schreiben). Du wirst beim Ausführen des Installationsprogrammes oder beim Verschieben eines Programmes in den Ordner "Programme" jeweils aufgefordert, Benutzernamen und Kennwort eines Administrators einzugeben. Aus- und Einloggen ist also nicht nötig :)
 

Final

Meraner
Registriert
12.05.07
Beiträge
229
Das geht auch (hatte ich oben vergessen, zu schreiben). Du wirst beim Ausführen des Installationsprogrammes oder beim Verschieben eines Programmes in den Ordner "Programme" jeweils aufgefordert, Benutzernamen und Kennwort eines Administrators einzugeben. Aus- und Einloggen ist also nicht nötig :)

Ja dann ist meine Nacht gerettet & ich kann es kaum erwarten im Juli stolzer Besitzer eines Mac Pro zu sein...;)
 

MacMan2

Gast
Ganz genau, du wirst begeistert sein. Für mich ist es das beste Betriebssystem seit ich durch den Irrsinn von Windows gestapft bin und dennoch keine wirkliche Lösung gefunden habe. Mac OS X ist das einzige Betriebssystem das dass tut was du von ihm verlangst.

MacMan2

(ehemaliger Schulkamerad von Thrillseeker)
 

DBertelsbeck

Tiefenblüte
Registriert
20.04.04
Beiträge
6.421
Bei Windows bin ich mit "Benutzer" eingeloggt, will ich aber ein Programm installieren, muss ich auf das Administrator-Account wechseln.

Ist diese mühsame Prozedur beim Mac auch oder kann ich als Benutzer Programme installieren ohne mein Benutzeraccount zu verlassen?
Mühsame Prozedur ?
Wenn Du "Fast User Switching" aktiviert hast, steht oben rechts in der Menüleiste Dein Benutzername, sagen wir final.
Ein Klick darauf und Du siehst einen weiteren Eintrag, nämlich den des Admin.
Ein Klick darauf und Du bekommst die Anmeldemaske für den Admin. Kennwort eingeben und Du bist als Admin angemeldet.
Wohlgemerkt, der User final ist nach wie vor angemeldet.
Jetzt installierst Du Dein PGM und meldest den Admin wieder ab, dann erscheint wieder die Anmeldemaske , an der Du wieder das Kennwort von final eingegeben hast und siehe da,
Du findest alles wieder so vor, wie Du es verlassen hast.

Das ist nicht mühsam, das ist einfach einfach. ;)
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
Danke für Deine Antwort. Sowie es aussieht werde ich im Alltag "als Benutzer mit eingeschränkten Rechten" unterwegs sein.(Ich weiss ich bin Windows geschädigt...:-D ) Dann bleibt mir halt nichts anderes übrig, wennn ich Programme installieren will, mich "als Benutzer mit Admin-Rechten" einzuloggen.

Hoffte das man beim Mac "als Benutzer mit eingeschränkten Rechten" einfach das Admin-Passwort eingibt und dann Programme installieren kann.

Genau so geht das. War auch lange Zeit auf Windows unterwegs und hab diesen ganzen Userwechsel-Quatsch mitgemacht. Mal Admin, mal nicht, aber immer wieder hakte es.

Auf dem Mac arbeitete ich zuerst als User mit Adminrechten, hab mich aber dann dazu entschieden, ohne weiterzumachen (und das, obwohl ich beruflich fast ausschliesslich als root auf Unix-Systemen unterwegs bin ;)).

Fazit: Überhaupt keine Probleme.

Wenn ich mal ein Programm installieren will, gebe ich die Accountdaten des natürlich noch vorhandenen Adminusers an (Button "Identifizieren"), das war's. Einige wenige Programme (z.B. zur Systempflege wie TinkerTool) und Systemeinstellungen brauchen ebenfalls Adminrechte, aber die Identifizierung erfolgt aus dem Programm heraus ohne notwendigen Userwechsel.

Beim "nomalen" Arbeiten ist das in der Regel gar nicht notwendig. Und solltest Du tatsächlich mal den User wechseln wollen, geht das - wie schon erwähnt - mit dem "schnellen Userwechsel" superleicht.

Einziges winziges Manko: Ich arbeite viel mit dem Terminal, ab und zu auch mal als root. Um zum root-Account zu kommen, muss ich erst per "su" zum Adminaccount wechseln und kann dann per "sudo su" root werden. Halt ein Schritt mehr... :)

Im Vergleich zu Windows ist das aber alles ein (positiver) Witz. ;)
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
Und du bist "beruflich als root unterwegs"?
Na, das war auch mal ein guter Witz...

Was stört Dich?
Daß ich nicht "sudo su - root" ausgeschrieben habe oder was?
Oder daß ich noch keine Konstruktion mit Alias, Skripten und sudoers konstruiert habe?

Oder ist einfach nur Deine Smiley-Taste kaputt? ;)

Falls nicht, lästere nicht über Leute, die Du nicht kennst. :p
 
  • Like
Reaktionen: thrillseeker

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
… Dann bleibt mir halt nichts anderes übrig, wennn ich Programme installieren will, mich "als Benutzer mit Admin-Rechten" einzuloggen.

Hoffte das man beim Mac "als Benutzer mit eingeschränkten Rechten" einfach das Admin-Passwort eingibt und dann Programme installieren kann.

Du mußt Dich als User der Admin-Gruppe autentifizieren für /Applications.

Jeder kann aber seine privaten Programme unter ~/Applications ablegen.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Daß ich nicht "sudo su - root" ausgeschrieben habe oder was?
ROFL
Ein Witz mit verschärfter Doppelpointe. Goil.
Schaffst du den Hattrick?

Du weisst ja: "Reden ist Silber, Schweigen ist Gold"
Zwei mal hintereinander geredet, und schon bist du auf dem Umweg übers Aluminium beim Altmetall angekommen...

Aber wahrscheinlich findest du das schon wieder nicht lustig.
Aber vielleicht erheitern dich ja die man-Pages zu diesen beiden Programmen etwas mehr? Darüber hast du bestimmt noch nie gelacht während deiner...
...beruflichen Laufbahn als...
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
ROFL
Ein Witz mit verschärfter Doppelpointe. Goil.
Schaffst du den Hattrick?

Du weisst ja: "Reden ist Silber, Schweigen ist Gold"
Zwei mal hintereinander geredet, und schon bist du auf dem Umweg übers Aluminium beim Altmetall angekommen...

Aber wahrscheinlich findest du das schon wieder nicht lustig.
Aber vielleicht erheitern dich ja die man-Pages zu diesen beiden Programmen etwas mehr? Darüber hast du bestimmt noch nie gelacht während deiner...
...beruflichen Laufbahn als...

Also lieber Rastafari, momentan machst Du Dich nur selber zum Affen. Wer so viel heisse Luft versprüht und nichts hinterherzuschieben weiß, braucht keine Kritiker mehr, der hat sich schon selber disqualifiziert.

Übrigens: Bei mir "auf der Arbeit" (von der aus ich auch gerade schreibe) ist der Befehl "sudo su - root" durchaus in Verwendung, und das nicht ohne Grund. Solange Du also fachlich nichts entgegenzusetzen hast, bin ich da ganz ruhig und habe überhaupt keine Bedenken, irgendwann beim Altmetall anzukommen. Die Man-Pages und sudoers sind auf meiner Seite. ;)
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
Ein paar Infos über sudo:

sudo dient dazu, Kommandos als ein anderer User ausführen zu können, in der Regel ist das der root-User (also der Chef auf der Maschine). Dazu gibt es ein Konfigfile /etc/sudoers (bei Mac OS X äquivalent zu /private/etc/sudoers), in dem genau festgelegt wird, wer was wo als wer ausführen darf.

Die beiden standardmässig aktiven Zeilen lauten
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
Das bedeutet in Kurzform, der User root sowie alle User in der Gruppe admin dürfen mit sudo jedes Kommando als jeder User auf jedem Host ausführen, sozusagen ein Freifahrtschein. ;)

Daher ist es als Admin-User möglich, z.B. mit einem
sudo lsof
das Kommando lsof als User root (da kein anderer User explizit angegeben) auszuführen, ohne dafür extra den User wechseln zu müssen. Ich kann ein Kommando aber auch als ein bestimmter anderer User ausführen, z.B. mit
sudo -u andereruser tolleskommando
sudo erlaubt mit dem Parameter -s einen Trick, direkt in die root-Shell zu kommen. -s bedeutet, statt ein Kommando auszuführen, wird eine Shell (definiert in der Umgebungsvariable $SHELL) aufgerufen und da bei
sudo -s
kein spezieller User angegeben ist, landet man automatisch in einer root-Shell.

All das funktioniert aber nur, weil ich als Admin-User in der sudoers-Datei einen Freifahrtschein habe. Alles was ich brauche, ist mein eigenes Passwort (und selbst das kann mit dem Parameter NOPASSWD in der sudoers abschalten).

Ein Nicht-Admin-User kann standardmässig auf Mac OS X kein direktes su (Userwechsel) auf den User root machen, aber auch ein sudo hilft nicht, da er nicht zur Gruppe admin gehört. Folglich bleibt nur, zuerst vom Nicht-Admin-User auf einen Admin-User zu wechseln, um dann wieder alle sudo-Vorteile geniessen zu können (Befehl direkt als root ausführen bzw. in die root-Shell wechseln).

Aber es gibt einen "Trick". Ich kann natürlich meinen Nicht-Admin-User in die sudoers eintragen (und damit den Sicherheitsvorteil ein Stück weit einbüssen ;)). Die Zeile
lazertis ALL = (ALL) /usr/bin/su - root
macht genau das. Sie gibt dem User lazertis die Möglichkeit, den Befehl "su - root" mithilfe von sudo auszuführen und so direkt root zu werden. Es reicht das eigene Passwort.
lazertis ALL = (ALL) NOPASSWD: /usr/bin/su - root
würde sogar dieses überflüssig machen. Hier kommt auch genau der von mir erwähnte Befehl
sudo su - root
ins Spiel.

Fazit: Mit sudo samt /etc/sudoers kann ich Berechtigungen zum Ausführen von Befehlen auf Wunsch filigran steuern. Eine sudoers-Zeile wie
wwwrun ALL = (ALL) NOPASSWD: /bin/ls -l /home/lazertis/mail/
würde meinem Apache Webserver (der ansonsten als ziemlich unpriviligierter User wwwrun läuft) erlauben, z.B. in einem PHP-Skript die Dateien in meinem IMAP-Mailverzeichnis anzuzeigen. Und da ein Webserver eher selten Passwörter irgendwo eintippen kann, braucht er das durch das NOPASSWD nicht. Vorteil: Er darf mit dieser Zeile aber auch nur genau das, kann die Dateien also z.B. nicht verändern.

Das ist die Welt von sudo... ;)


Kleiner Nachtrag: Warum eigentlich "sudo su - root" anstatt gleich "su - root"? Weil ich bei ersterem (wenn überhaupt) mein eigenes Passwort angeben muss, letzteres aber das root-Passwort benötigt und das soll vielleicht nicht jeder wissen. ;)
 
Zuletzt bearbeitet:

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
Noch eine Frage zum su-Verhalten unter Mac OS X, welches für mich etwas gewöhnungsbedürftig ist:

Ein Nicht-Admin-User (weil nicht in Gruppe wheel oder admin) kann kein direktes su zu root machen. Das ist zwar, soweit ich das bisher kenne, anders als bei anderen Unixen, aber durchaus sinnvoll.

Wechsele ich nun zu einem Admin-User incl. Loginshell durch "su - adminuser" (anschl. ist BASH=/bin/bash), kann auch dieser kein su auf root machen. Benutze ich aber "su adminuser", also keine Loginshell (BASH=su), funktioniert ein anschliessendes "su - root" einwandfrei.

Das verwundert mich doch etwas. Bin da gerne offen für (sachliche ;)) Erklärungen oder Nachhilfe.
 

Hobbes_

Gast
Allgemein verstehe ich nicht (und ich glaube auch, dass das einer von Rastafaris Punkten ist), weshalb Du bei su immer explizit root noch erwähnst. Wenn Du su auf einem Linux-System und auch auf Mac OS X aufrufst, wird immer standardmässig root genommen (ist dies bei anderen UNICES anders?).

---------

Noch eine Frage zum su-Verhalten unter Mac OS X, welches für mich etwas gewöhnungsbedürftig ist:

Ein Nicht-Admin-User (weil nicht in Gruppe wheel oder admin) kann kein direktes su zu root machen. Das ist zwar, soweit ich das bisher kenne, anders als bei anderen Unixen, aber durchaus sinnvoll.

Wechsele ich nun zu einem Admin-User incl. Loginshell durch "su - adminuser" (anschl. ist BASH=/bin/bash), kann auch dieser kein su auf root machen. Benutze ich aber "su adminuser", also keine Loginshell (BASH=su), funktioniert ein anschliessendes "su - root" einwandfrei.

Das verwundert mich doch etwas. Bin da gerne offen für (sachliche ;)) Erklärungen oder Nachhilfe.

Bei Mac OS X ist su auf root (eben kurz mit su alleine) allgemein nur möglich, wenn root "aktiviert" ist. root ist also standardmässig weder normalen Usern noch Admins via su zugänglich.

"Aktivieren" deshalb, da root ja bekanntermassen nicht wirklich inaktiv ist (siehe zahlreiche Dateien und zahlreiche laufende Prozesse auf jedem System). Es gibt jedoch wenigstens meiner Meinung absolut keinen Grund auf dem Mac den direkten Zugang zu root zu "aktivieren".

Alternativ kann man natürlich jederzeit mit su auf einen anderen Benutzer (eben beispielsweise einen Admin) wechseln, wobei bei einem Admin dann sudo genutzt werden kann zur Ausführung von Programmen als root.


Konkret: So wüsste ich in dem von Dir in der Frage angegebenen Beispiel
(...) Benutze ich aber "su adminuser", also keine Loginshell (BASH=su), funktioniert ein anschliessendes "su - root" einwandfrei.
auch nicht, was für ein Passwort ich für root eingeben sollte/könnte (oder hast Du root auf dem Mac "aktiviert"?).

---------

Der Grund, weshalb man auf dem Mac nicht als Benutzer sudo benutzen kann, ist, dass normale Benutzer nicht in der sudoers Liste sind - im Gegensatz zu den Admins, wie Du in den obenstehenden Erkärungen zur sudoers Liste bereits erwähnt hast. Dieses Einstellung macht auch Sinn, so dass man auch da meines Erachtens wenigstens als normaler Benutzer, wie ich es bin, nichts daran zu ändern braucht.

Als Ergänzung möchte ich noch sagen, dass man diese sudoers Liste nicht einfach mittels eines Editors ändern sollte, sondern das Kommando visudo benutzen sollte, das auf vim basiert und entsprechend gleich zu bedienen ist. Selbstverständlich führt man visudo als Admin mittels sudo aus :) Den vimtutor brauchst Du sicher nicht. Den erwähne ich nur der Vollständigkeit halber, so dass sich jemand, der sich mit vim nicht auskennen sollte, sehr rasch in dessen Funktionen einarbeiten kann. Selbstverständlich sollte man solche tiefgreifende Änderungen erst machen, wenn man sich absolut sicher ist, was man tut. Als root (und das ist man auch, wenn man einen Befehl via sudo ausführt) kann man ein System schneller "zerschiessen", als einem lieb ist.

---------

Noch eine Frage: Wie hier und andernorts bereits dargelegt, benutze ich eigentlich immer als Admin sudo mit dem entsprechend als root geplanten Befehl, wenn ich als root einen Befehl ausführen lassen möchte. Allgemein geniesse ich das gewisse Sicherheitsgefühl (Sicherheit vor meinen eigenen Typos :) ), indem ich nicht ständig als root unterwegs bin. Wenn ich mal wirklich # im bash-Prompt sehen möchte, dann benutze ich kurz sudo -s. Gibt es einen relevanten Unterschied zwischen sudo -s und sudo su, so dass ich besser die zweite Option wählen sollte als die erste? Vielen Dank!
 
Zuletzt bearbeitet von einem Moderator:

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
@psc: Erstmal vielen lieben Dank für diese ausführliche Antwort. Sie hilft mir, ein Stück mehr die Unixwelt von Mac OS X zu verstehen, die manchmal doch etwas von der abweicht, die ich bis jetzt gewohnt bin. Warum das so ist, erklären auch meine untenstehenden Antworten ein Stück.

Allgemein verstehe ich nicht (und ich glaube auch, dass das einer von Rastafaris Punkten ist), weshalb Du bei su immer explizit root noch erwähnst. Wenn Du su auf einem Linux-System und auch auf Mac OS X aufrufst, wird immer standardmässig root genommen (ist dies bei anderen UNICES anders?).
Ahaaa, deswegen. Seht Ihr, das ist für mich so selbstverständlich, bei su den User mitzunennen, weil die Standardsituation für mich genau umgekehrt ist: Ich arbeite in der 24*7 Systemüberwachung eines grossen Rechenzentrums (LH Systems), wir betreuen rund um die Uhr mehrere tausend Unix-Server im sog. 2nd und 3rd level support. Dabei geht es sowohl um Betriebssystemprobleme als auch Applikationen (R3, Oracle, diverseste Kundenanwendungen). Liegt eine Störung vor, muß die Analyse schnell und effizient erfolgen. Daher loggen wir uns auf den Servern (per ssh-key) direkt als root ein. So "arrogant" es vielleicht klingen mag, aber mein Satz mit dem "beruflich als root unterwegs" stimmt wirklich.

Ein Arbeiten mit eingeschränktem User plus sudo würde unser Tempo deutlich verlangsamen, was sich in der Praxis auch bereits einmal gezeigt hatte und dann ganz schnell geändert wurde.
Natürlich müssen wir für viele Maßnahmen auch häufig den User wechseln, wobei ich (weil ich als root anfange) immer einen Usernamen anzugeben habe, sei es für R3, Oracle, Middleware oder andere Applikationen. Daher ist in meinem (unserem) Sprachgebrauch das "su plus user" die Regel.

Denoch bleibt mir unverständlich, wie diese Tatsache eine solche hmmm... respektlose Reaktion wie die von Rastafari auslösen kann und er dann nicht mal fähig oder willens ist, zu sagen, um was es eigentlich geht.

Bei Mac OS X ist su auf root (eben kurz mit su alleine) allgemein nur möglich, wenn root "aktiviert" ist. root ist also standardmässig weder normalen Usern noch Admins via su zugänglich.
Hmmm... jetzt wird mir der Mechanismus des "aktivierten" root-Accounts klarer. Bei mir geht das durchaus, aber erst, nachdem ich root ein Passwort vergeben habe (erst sudo -s, dann die Nutzung des Befehls passwd). Das ist aber nichts anderes als die Aktivierung von root im Netinfo Manager. ;) Ja... hätte ich mir denken können... mea culpa... :)

Es gibt jedoch wenigstens meiner Meinung absolut keinen Grund auf dem Mac den direkten Zugang zu root zu "aktivieren".
Für ein privates System vollkommen richtig. In der Server-Störungsbeseitigung im Rechenzentrum ist das aus meiner Sicht anders (s.o.), aber für ein privates System vollkommen richtig. Zu Hause bin ich dann auch ganz Macianer, denn trotz aller Gewohnheiten vom Job her hat mein Hauptuser zu Hause keine Adminrechte. ;)

dass man diese sudoers Liste nicht einfach mittels eines Editors ändern sollte, sondern das Kommando visudo benutzen sollte
Jep, eine Selbstverständlichkeit, ebenso wie die Nutzung von vi (nicht mal vim), da wir uns auf den verschiedensten Systemen immer mal wieder editierend in Dateien bewegen müssen und da bleibt kein anderer kleinster Nenner mehr.

Als root (und das ist man auch, wenn man einen Befehl via sudo ausführt) kann man ein System schneller "zerschiessen", als einem lieb ist.
Auch hier: Zustimmung. Ich denke, die meisten Mißverständnisse, die hier zwischen anderen und mir aufkamen, liegen am unterschiedlichen Umfeld. Ich betrachte mich sicherlich nicht als "Profi", bewege mich aber in gewisser Weise selbstverständlich als root auf einem Unix-System (mitunter auch als Server-Admin, also auch das komplette Aufsetzen und Pflegen von Systemen).

Gibt es einen relevanten Unterschied zwischen sudo -s und sudo su, so dass ich besser die zweite Option wählen sollte als die erste?
Der Unterschied liegt im Detail, genauer in den Umgebungsvariablen, der Shell und der Ausführung von z.B. .profile und .bashrc-Dateien.

sudo su
  • keine Loginshell (BASH=/usr/bin/su)
  • Homediectory wechselt zu dem von root (HOME=/var/root)
  • Aktuelles Verzeichnis bleibt gleich (PWD=/Users/adminuser)
  • Die Shell wird zur sh (SHELL=/bin/sh)
  • .bashrc wird ausgeführt
  • .profile wird NICHT ausgeführt
sudo -s
  • Login-Shell (BASH=/bin/bash)
  • Homedirectory bleibt gleich (HOME=/Users/adminuser)
  • Aktuelles Verzeichnis bleibt gleich (PWD=/Users/adminuser)
  • Typ der Shell wird übernommen (aus $SHELL) (SHELL=/bin/bash)
  • .bashrc wird ausgeführt
  • .profile wird NICHT ausgeführt
sudo su -
  • Login-Shell (BASH=/bin/sh)
  • Homediectory wechselt zu dem von root (HOME=/var/root)
  • Aktuelles Verzeichnis: root's Home (PWD=/var/root)
  • Die Shell wird zur sh (SHELL=/bin/sh)
  • .bashrc wird NICHT ausgeführt
  • .profile wird ausgeführt
Wenn Du also spezielle Befehle in der root-.profile definiert hast, macht ein sudo su - (oder ausgeschrieben sudo su - root ;)) am meisten Sinn, weil die .profile auch ausgeführt wird. Ferner hast Du (im Gegensatz zu sudo su) eine neue Shell (aber sh!) und bist gleich im HomeDir von root.

Beim sudo -s bleiben Home- und aktuelles Verzeichnis unverändert, ebenso der Shell-Typ.
Ist also sozusagen ein "halber Wechsel" nach root, da auch die .profile nicht ausgeführt wird. Hier steht zwar wohl standardmässig nicht viel drin, aber das kann sich ja auch ändern. ;)

Ein sudo su, also ohne -, sprich ohne Loginshell ist m.E. das größte "Durcheinander". Du hast keine Loginshell, das aktuelle Verzeichnis bleibt gleich, aber Dein HomeDir ändert sich etc.

Letzten Endes Geschmackssache, man nimmt, was am besten passt. Ich bevorzuge nachwievor (natürlich nur, wenn überhaupt notwendig ;)), das sudo su - root


Fazit: Vielen Dank für diese Diskussion. Ich konnte doch noch einiges über den Hintergrund von Mac OS X lernen im Vergleich zu anderen Unices. Und aus meiner Sicht hat es bestimmt das eine oder andere Mißverständnis aufgeräumt. Danke!



 
Zuletzt bearbeitet:
  • Like
Reaktionen: 1 Person

Final

Meraner
Registriert
12.05.07
Beiträge
229
Diese Woche sollte mein MacBook eintreffen.. I like to switchit switchit...

Wenn ich OS X installiere macht es Sinn, als Benutzer "Administrator" als erstes einzurichten oder kann man das immer noch nachher ändern?
Ich werde für meinen täglichen Gebrauch nur mit "normalen" Benutzerrechten unterwegs sein...

also OS X mit "Administrator oder "Normal" Account aufsetzen?