Linux mint; Ist das "Su-Passort" das Benutzerpasswort mit dem man sich der Benutzer anmeldet?

5 Antworten

Der Befehl su verlangt das Passwort von root.

Der Befehl sudo verlangt das Passwort des angemeldeten Users. Braucht man su, so ruft man einfach sudo su auf und gibt sein Passwort ein.

Bei Debian hat der Anwender keine sudo-Berechtigung, wenn der root-Zugang eingerichtet wurde. Da muss mann also das Passwort von root kennen.

Bei Ubuntu und Mint ist die sudo-Berechtigung für den bei der Installation eingerichteten eingerichteten User aktiv. Will man auch den Zugang für root freischalten, ruft man einfach sudo passwd root auf.

su steht für "substitute user". So kann man sich als einen anderen Benutzer "ummelden".

Ohne Benutzernamen, also nur "su" wird automatisch "su root" gemacht. Dann muss man das Passwort vom "root" eingeben.

Mint hat aber nach der Installation kein root Benutzerkonto, also gibt es auch kein Passwort dafür.

Man muss "sudo" benutzen. Das steht für "substitute user - do". Hier wird dann alles was dahinter steht mit root rechten ausgeführt. Da es ja keinen Benutzer "root" gibt, muss man dann das eigene benutzerpasswort angeben. Der erste Account den man bei der Installation anlegt hat die Rechte dafür.

Bei allen weiteren Accounts die man anlegt muss man das in den Account Einstellungen frei schalten, nur der erste Account kann also immer "sudo" benutzen.

Gibt es einen "root account", dann muss man auch bei sudo das Passwort vom root Account eingeben. Bei Mint, SteamOS und Ubuntu (und anderen) ist das aber nicht der Fall.

Du kannst aber einen root account anlegen. Ich persönlich bevorzuge ein echtes Root-Passwort.

Dazu kannst Du "sudo -s" verwenden. Das wirkt dann wie "su", benötigt aber das normale sudo passwort. Schon bist Du permanent mit root-rechten unterwegs. Jetzt kannst Du im nächsten Schritt mit "passwd" das root-passwort einstellen.

Ab dann kannst Du dich als "root" anmelden und "su" benutzen.

Bei einigen Distris ist "sudo -s" gesperrt. Dann sollst Du nicht "root" werden können. Das lässt sich aber leicht austricksen. Fast immer klappt dann "sudo su" um "root" zu werden und dann ein Passwort an zu legen.

Woher ich das weiß:Berufserfahrung

Kwalliteht  22.04.2025, 23:14

Denn account root gibt es auf jedem Linux. Mit sudo passwd gibt man ihm ein Passwort und kann sich dann auch als root anmelden.

Commodore64  22.04.2025, 23:20
@Kwalliteht

root ist kein Account. Deswegen findet man "root" auch nicht in der Liste der User und der root hat auch keine User-ID.

"root" ist also kein User und kein Account. "Root" ist aber fester Bestandteil des Systems und kann nicht entfernt werden. Daher ist "root" auch in Distris drin die keinen "root" haben wollen.

Es wird ja schon fast von den Anfängen von Linux geraten sich nicht als "root" an zu melden und stattdessen sudo zu verwenden. Aber da das sozusagen untrennbar im System drin steckt, kann man auch bei Disris die eine Anmeldung als "root" nicht wollen als solcher anmelden. Bei vielen ist auch das sudo -s so umprogrammiert, dass das nicht funktioniert. aber "sudo su root" oder "sudo su" als Kurzfassung funktioniert noch.

Kwalliteht  22.04.2025, 23:27
@Commodore64

root ist der Account mit der UID 0, mit dem man sich, sobald man ein Passwort gesetzt hat, auch anmelden kann. Dass man das normalerweise nicht tun sollte, ist eine andere Frage.

Debian fragt bei der Installation, ob ein Passwort für root gesetzt werden soll. Wenn ja, dann bekommt der bei der Installation eingerichtete User keine sudo-Berechtigung. Ubuntu und Mint fragen bei der Installation nicht, geben dem User aber sudo-Berechtigung.

Commodore64  22.04.2025, 23:31
@Kwalliteht

root ist aber kein Account. Man könnte das höchstens als "Simulierten Account" ansehen.

Denn ohne User-ID kann das Sytem nicht auf einen Account zugreifen.

In meinem Beitrag hatte ich mich verleiten lassen das als "account anlegen" zu bezeichnen wenn man ein root Passwort anlegt. Das ist natürlich nicht richtig, man kann sich das aber der Einfachheit halber so vorstellen als wenn das so funktionieren würde

Commodore64  22.04.2025, 23:34
@Kwalliteht

Schau mal in die /etc/shadow rein.

Die Einträge sind wie folgt:

Username: Passwort: Alter: min. Alter: max. Alter: Warnzeit: Pufferzeit: Ungültigkeit: Reserviert

Und bei Root gibt es nur root:Passwort

Denn das ist kein Account, hat also keine weiteren Informationen.

Kwalliteht  22.04.2025, 23:35
@Commodore64

root hat die User-ID 0. Der Account ist nicht simuliert sondern einfach in jedem Linux fest eingebaut. Es ist auch kein Problem, Linux ausschließlich mit root zu betreiben.

Commodore64  22.04.2025, 23:36
@Kwalliteht

Die "0" bedeutet hier "NUL" oder "VOID". Also in dem Fall "kein Account"

Versuch das mal auf "1" oder so was zu setzen. Das geht nicht, eben weil es keinen Account gibt.

Kwalliteht  22.04.2025, 23:39
@Commodore64

Bei root überflüssige Informationen, werden in /etc/shadow weggelassen, weil dieser Account immer gültig ist. Du kannst die zusätzlichen Informationen auch spaßeshalber in die Datei einfügen, sie werden einfach ignoriert.

Commodore64  22.04.2025, 23:41
@Kwalliteht

Der "root" account ist eine Simulation, der wird "on the fly" erzeugt wenn man den benutzt.

Das ist wie mit dem "/proc" verzeichnis. Auch das gibt es nicht. Da scheinen Dateien drin zu sein und die haben auch einen Inhalt. Der Inhalt dieser Dateien wird aber beim abruf vom System "on the fly" erzeugt, der ist nirgendwo gespeichert.

Kwalliteht  22.04.2025, 23:43
@Commodore64
Die "0" bedeutet hier "NUL" oder "VOID". Also in dem Fall "kein Account"

Nein. 0 ist der erste Account auf dem System. Die kleinste natürliche Zahl (was ja für Nummerierungen die einfachste Methode ist), ist nun einmal die 0.

"kein Account" bedeutet zwangsweise "keine Anmeldung".

Commodore64  22.04.2025, 23:52
@Kwalliteht

Warum sind dann die anderen User 1000 und höher wenn es um die ersten verfügbaren Zahlen geht?

Das ist wie mit dem "Return" Werten eines Programmes oder einer Funktion. "0" hat eine besondere Bedeutung. "0" bedeutet dann "kein Fehler", alle anderen Werte sind dann die Nummer des Fehlers.

In programmen benutzt man das Zero-Flag um Entscheidungen zu treffen. ist das an, also man hat eine "0", hat das eine andere Bedeutung als jeder andere Wert.

Das System kann also beim root schnell feststellen ob das ein echter Account ist oder alles was mit Accounts zu tun hat simuliert wird. Deswegen hat root die "0".

Kwalliteht  23.04.2025, 00:10
@Commodore64

root wird nicht "on the fly" erzeugt, schließlich wird der Account zwingend benötigt, um das System überhaupt laufen zu lassen.

Bevor man sich überhaupt am System anmelden kann, laufen schon viele Tasks als root.

Um beim Debian-Zweig zu bleiben: Schon der erste Task (systemd) läuft als root.

Commodore64  23.04.2025, 00:12
@Kwalliteht

Der läuft als root, aber nicht in einem Account.

Schau Dir mal Distris an die kein root Passwort fragen. Da gibt es kein /root und auch kein /home/root.

Man braucht keinen Account für das Rechte Management. Die User-ID "0" schaltet das alles automatisch frei, ganz ohne Accountinfos.

Commodore64  23.04.2025, 00:16
@Kwalliteht

Da sind wir auch wieder bei der "0".

Ist das Zeroflag aus, muss geprüft werden ob der Benutzer das darf. Ist das an, darf der das ohne Prüfung.

Und das macht ja eine Anmeldung als "root" so gefährlich weil da keinerlei prüfungen gemacht werden.

Würde jeder Prozess der als "root" ausgeführt wird immer wieder prüfen ob root das darf, dann wäre Linux "schnarchlangsam".

Kwalliteht  23.04.2025, 01:46
@Commodore64
Warum sind dann die anderen User 1000 und höher wenn es um die ersten verfügbaren Zahlen geht?

Ganz einfach: Das System kennt noch eine Reihe anderer fest implementierte Accounts, und da wurde eben festgelegt, dass für normale User die Zählung bei 1000 beginnt.

Meine /etc/shadow sieht übrigens so aus:

root:$y$j9T$KoAjEolP1.SgeP/PTrpSf/$aOsVpzOD2rq09vnPPlsshyUhbulPrA0ilOELv7C/Sx7:20200:0:99999:7:::daemon:*:20192:0:99999:7:::bin:*:20192:0:99999:7:::sys:*:20192:0:99999:7:::sync:*:20192:0:99999:7:::games:*:20192:0:99999:7:::man:*:20192:0:99999:7:::lp:*:20192:0:99999:7:::mail:*:20192:0:99999:7:::news:*:20192:0:99999:7:::uucp:*:20192:0:99999:7:::proxy:*:20192:0:99999:7:::www-data:*:20192:0:99999:7:::backup:*:20192:0:99999:7:::list:*:20192:0:99999:7:::irc:*:20192:0:99999:7:::_apt:*:20192:0:99999:7:::nobody:*:20192:0:99999:7:::systemd-network:!*:20192::::::systemd-timesync:!*:20192::::::messagebus:!:20192::::::usbmux:!:20192::::::avahi:!:20192::::::speech-dispatcher:!:20192::::::pulse:!:20192::::::saned:!:20192::::::geoclue:!:20192::::::sddm:!:20192::::::polkitd:!*:20192::::::rtkit:!:20192::::::colord:!:20192::::::
boss:$y$j9T$DdNPQqvaIBq1iQ6CDx.3l/$0t9n8WzvTbnPIt5CFydqqT4VB.CtDaX/Yxnv3Ro17B/:20192:0:99999:7:::

Fällt Die etwas bei root auf? Dort stehen genauso viele Informationen wie bei boss (dem einzigen auf dem Rechner eingerichteten User). Ganz einfach, weil ich ein Passwort für root gesetzt habe. Für die ganzen Systemaccounts, die dazwischen aufgelistet sind, habe ich kein Passwort gesetzt, da ist auch nichts mit anmelden. Alle Accounts außer nobody und boss haben UIDs < 1000.
Die ersten 11 übrigens von 0 bis 10, es sind fest implementierte Accounts. nobody mit der 65534 übrigens auch. Die anderen Accounts hängen von der jeweiligen Installation ab.

Das ist wie mit dem "Return" Werten eines Programmes oder einer Funktion. "0" hat eine besondere Bedeutung. "0" bedeutet dann "kein Fehler", alle anderen Werte sind dann die Nummer des Fehlers.

0 hat bei verschiedenen Dingen verschiedene Bedeutungen. Ein Return > 0 KANN eine Fehlermeldung sein, muss es aber nicht. Und wenn ein Programm einen berechneten Wert zurückliefern soll, kann der auch 0 sein.

Das System kann also beim root schnell feststellen ob das ein echter Account ist oder alles was mit Accounts zu tun hat simuliert wird. Deswegen hat root die "0".

root ist ein echter Account, nur eben fest im Kernel implementiert und mit allen im System verfügbaren Rechten. Dieser Account wird NICHT "on the fly" erstellt, er ist mit dem ersten Task des Systems bereits aktiv. Kannst Du leicht überprüfen:

ps -u 0 | more

Wenn Du jetzt damit kommst "da ist ja die 0 nicht dabei": Richtig, 0 ist der aufrufende Prozess, kannst Du in einer login-shell leicht überprüfen mit kill -9 0, dann fliegst Du raus.

Wenn aber der erste Task bereits als root läuft, mit welchem Task wurde dann der User root "on the fly erstellt"? Dafür bräuchte man root-Rechte. Die Lösung ist einfach: Der gesamte Kernel Mode läuft schon als root, ein "on the fly" erstellen des Users hat sich also erledigt. Sobald der Kernel geladen ist, noch bevor er irgendwelche Module lädt oder Tasks startet, werkelt schon der Account root.

Kwalliteht  23.04.2025, 02:27
@Commodore64
Der läuft als root, aber nicht in einem Account.

doch

Schau Dir mal Distris an die kein root Passwort fragen. Da gibt es kein /root und auch kein /home/root.

Das Verzeichnis ist nicht der Account. Prinzipiell kommt jeder Account ohne eigenes Verzeichnis aus.

Die Tatsache, dass ein User in /etc/shadow gelistet ist, ist Beweis genug, dass der Account existiert. Dafür benötigt er KEIN Home-Verzeichnis. Auch alle anderen User können mit einem simplen useradd ohne Home-Verzeichnis angelegt werden. Die landen dann eben in /, wo sie zwar keine Daten ablegen können, was die Nutzung also auf nur sehr wenige Möglichkeiten einschränkt. Für bestimmte Jobs kann das sinnvoll sein, SAP (übrigens auch Linux) macht davon massiv gebrauch.

Kwalliteht  23.04.2025, 02:39
@Commodore64
In meinem Beitrag hatte ich mich verleiten lassen das als "account anlegen" zu bezeichnen wenn man ein root Passwort anlegt. Das ist natürlich nicht richtig, man kann sich das aber der Einfachheit halber so vorstellen als wenn das so funktionieren würde.

useradd root führt zu "account already exists", selbst wenn man einem User explizit das Recht gibt, Accounts anzulegen und das Kommando useradd zu benutzen (also Schreibrechte auf /etc/shadow und /etc/passwd und Ausführungsrechte auf /sbin/useradd gibt) und kein root angemeldet ist (der Account root also nach Deiner Darstellung nicht existiert).

Nein, Su steht bei Linux für Super User. Das ist der, der alles darf, auch das was der Nutzer nicht darf. So ähnlich wie der Admin bei Windows. Ich frage mich aber ob Linux das Richtige für jemanden ist der schon daran scheitert solche Kleinigkeiten zu googeln.

https://linux-bibel.at/index.php/2023/09/03/sudo-und-su-administrator-unter-linux/


CatsEyes  22.04.2025, 22:36

Linux soll für alle da sein! Früher war das kaum möglich, weshalb Linux auch keine echte Alternative zu Windows war. Nun Linux-User wegen Unwissenheit zu vergraulen macht keinen Sinn.

apfelbus  22.04.2025, 22:40
@CatsEyes

Das war auch nicht meine Absicht und ich (Mac - User) würde Linux immer Windows den Vorzug geben, aber sag selber. wie weit kommt man wenn man nicht mal googeln kann was Su ist? Eben.

CatsEyes  22.04.2025, 22:41
@apfelbus

Ok, hast ja nicht unrecht. Aber kann man ja auch "sanfter" sagen...

apfelbus  22.04.2025, 22:45
@CatsEyes

Das war so nett wie ich konnte. Und die Absicht war nicht ihn von Linux abzuhalten sondern ihn anzuspornen doch einfach mal zu googeln wenn man was nicht weiß.

PS.:

Linux soll für alle da sein! Früher war das kaum möglich, weshalb Linux auch keine echte Alternative zu Windows war.

Den Spruch höre ich seit ich meinen ersten PC hatte. Ist das jetzt endlich wirklich so?

CatsEyes  22.04.2025, 22:49
@apfelbus

Besser denn je! Bei Mint usw. muss man normalerweise nichts von Terminalbefehlen wissen beim Installieren. Und - von besonderen Umständen abgesehen - auch im Betrieb nicht.

Commodore64  22.04.2025, 23:15

Nein, "su" steht für "substitute user".

Man kann zum Beispiel "su meier" eingeben um zu Benutzer "Meier" zu werden. Das macht den Meier noch lange nicht zum "Super User".

Wenn man "su" ohne alles eingibt, ist das genau wie "su root". Das ist einfach nur eine Vereinfachung um nicht immer " root" mit tippen zu müssen.

Kwalliteht  22.04.2025, 23:03

su steht für switch user oder substitute user. Gibt man keinen User an, geht das Kommando davon aus, dass root gemeint ist.

su (substitute user) nimmt ohne explizite Nutzerangabe an, daß root verlangt wird und fragt nach dessen Passwort.

Nein, das wäre ja fatal! Das ist das root-user-Passwort.


Knowingbase 
Beitragsersteller
 22.04.2025, 22:36

und wann und wo wird das vergeben?

CatsEyes  22.04.2025, 22:45
@Knowingbase

Dann sollte es bei Mint Dein Passwort sein. Das wird bei anderen Linux-Distris verschieden gehandhabt.

Kelec  22.04.2025, 22:46
@CatsEyes

Linux mint hat kein Passwort bei su, weil der root user kein Passwort hat.

Linux mint verwendet wie Ubuntu nur sudo.

Kelec  22.04.2025, 22:49
@CatsEyes

Ich glaube nicht da su immer das Passwort des Accounts verlangt auf den man wechseln will und das Command su will auf root wechseln.

Mint und Ubuntu lässt aber einen Wechsel auf root selbst nicht direkt zu.

Kwalliteht  22.04.2025, 22:50
@Knowingbase

Unter Mint wird nowmalerweise kein Passwort für root gesetzt, daher ist die Anmeldung als root nicht möglich. su geht da auch nicht. Dafür funktioniert beim User, der bei der Installation eingerichtet wurde, das Kommando sudo.

Kwalliteht  22.04.2025, 22:51
@Kelec
Mint und Ubuntu lässt aber einen Wechsel auf root selbst nicht direkt zu.

Doch: sudo su

CatsEyes  22.04.2025, 22:51
@Kelec

Beim Raspi hat's aber aber geklappt mit su ohne Passwort. Eigentlich schlimm. Muss ich mal abstellen.

Knowingbase 
Beitragsersteller
 22.04.2025, 22:51
@Kwalliteht

ach steht sudo -> su do -> super user do -> super user is doing

Kelec  22.04.2025, 22:53
@Kwalliteht

Ja das ist dann äquivalent dazu, dass du eben mit sudo die Bash startest, du meldest dich aber nicht direkt mit root an wie es su alleine machen würde.

Kelec  22.04.2025, 22:54
@CatsEyes

Beim Raspi geht auch sudo ohne Passwort.

Das OS ist nicht gerade auf sicherheit ausgelegt.

CatsEyes  22.04.2025, 22:57
@Kelec

Kann man aber ändern. Nutze meine Raspis aber nicht für direkten Internetzugriff usw.

Kwalliteht  22.04.2025, 22:57
@CatsEyes

Bei Ubuntu ind Mint wird bei der Installation kein root-Passwort gesetzt, deshalb kann man sich auch nicht als root anmelden. Dafür erhält der User, der bei der Installation eingerichtet wird, sudo-Berechtigung.

Auf einem Mac läuft es auch so und unter Windows ähnlich.

Kelec  22.04.2025, 22:58
@Knowingbase

Eigentlich steht su für substitute user und sudo für substitute user do.

Du kannst mit su einen login auf ein anderes Konto machen das kann root sein muss aber nicht.

Sudo hingegen führt den nachstehenden Befehl lediglich mit den Nutzerrechten des gewählten Nutzers aus.

Kwalliteht  22.04.2025, 23:00
@Kelec

Das ist eine der ersten Änderungen, die ich bei Ubuntu und seinen Derivaten (also auch Mint) vornehme. Ich setze ein Passwort für root, und schon kann sich root auch anmelden.

Kelec  22.04.2025, 23:03
@Kwalliteht

Kann man so machen du solltest dann eben nur bei einem ssh Server den direkten Login per root deaktivieren.

Also das hat schon einen Grund warum root per Default deaktiviert ist aber wie viel zusätzliche Sicherheit bringt, darüber lässt sich natürlich streiten.

Kwalliteht  22.04.2025, 23:11
@Kelec

OpenSSH hat root von Hause aus deaktiviert. Sollte man so lassen. Am sichersten ist es, wenn man den Login bei SSH über Zertifikat UND Passwort einrichtet.

Kelec  22.04.2025, 23:16
@Kwalliteht

Geht weniger um den Login an sich sondern mehr darum dass du ein Programm hast welches direkt eine Rootshell von außen öffnen kann.

Wenn der root user selbst keine Anmeldung erlaubt könnte der ssh server nur eine shell für einen nonroot user öffnen.

Kwalliteht  22.04.2025, 23:17
@CatsEyes

su verlangt immer das Passwort von root. Solange für root kein Passwort gesetzt wurde, funktioniert su nicht. Dafür funktioniert sudo für den bei der Installation eingerichteten User.

Kwalliteht  22.04.2025, 23:20
@Kelec

Raspberry Pi OS fragt gleich nach dem ersten Login, ob man für den User und für root die default-Passwörter ändern will. Muss man natürlich machen, wenn das System sicher sein soll.

Kelec  22.04.2025, 23:28
@Kwalliteht

Ich weiß, dass es das tut, es geht viel mehr darum, dass das System von Grund auf nicht auf Sicherheit ausgelegt war und diese nachträglich erst wieder hinzugenommen wird.

Raspbian war eben von Grund auf für Bastler konzipiert die sich nicht viel mit Linux beschäftigen wollen, sondern die eben mit Python direkt loslegen wollen. Also gleicher Default Nutzer, sudo ohne Passwort usw.

Wenn das System sicher sein soll würde ich aus diesem Grund kein Raspbian drauf laufen haben sondern Debian selbst.

Kwalliteht  22.04.2025, 23:33
@Kelec
Wenn der root user selbst keine Anmeldung erlaubt könnte der ssh server nur eine shell für einen nonroot user öffnen.

Und das ist auch gut so.

Kelec  22.04.2025, 23:35
@Kwalliteht

Ja es war auch genau so gemeint, dass das sinnvoll ist wenn der root user keine Anmeldung erlaubt, daher hat er ja eben unter Ubuntu kein Passwort, als zusätzlichen Schutz.