root braucht sudo

Warum Debian? Was muss ich vorher wissen? Wo geht's nach der Installation weiter?
Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

root braucht sudo

Beitrag von Simaryp » 18.03.2020 13:02:14

Ich bin gerade beim Erstellen von ein paar Skripten und stolpere gerade über eine verwirrende Sache.
Da die Skripte später per systemd ausgeführt werden sollen und das ja mit root Rechten geschieht, wollte ich mal schauen, wie ich die Befehle genau aufschreiben muss. Daher habe ich mich mit su root als root angemeldet. Zu meiner Überraschung muss ich auch als Nutzer root nun sudo eingeben, ansonsten funktioniert zum Beispiel hdparm oder hddtemp nicht.

KP97
Beiträge: 2062
Registriert: 01.02.2013 15:07:36

Re: root braucht sudo

Beitrag von KP97 » 18.03.2020 13:08:26

su und su - haben unterschiedliche Pfade, das Thema wurde hier aber schon ca. 1253 mal besprochen...
Da die Skripte später per systemd ausgeführt werden sollen und das ja mit root Rechten geschieht
Nicht unbedingt, wenn systemd einen service als user ausführen soll, muß die Datei nach
/etc/systemd/user eingestellt und dort auch enabled werden.

MSfree
Beiträge: 5567
Registriert: 25.09.2007 19:59:30

Re: root braucht sudo

Beitrag von MSfree » 18.03.2020 13:14:57

Simaryp hat geschrieben: ↑ zum Beitrag ↑
18.03.2020 13:02:14
Zu meiner Überraschung muss ich auch als Nutzer root nun sudo eingeben, ansonsten funktioniert zum Beispiel hdparm oder hddtemp nicht.
Unsinn, sudo ist da absolut nicht nötig. Was aber nötig ist, ist die vollständige Pfadangabe eines Befehls, was vor allem in Scripten sowieso ein muß sein sollte.

hdparm befindet sich übrigens im Verzeichnis /sbin.

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: root braucht sudo

Beitrag von Simaryp » 18.03.2020 13:20:50

Sorry, wenn es ne dumme frage war. Ich kannte das bisher so noch nicht.
Mit /sbin/hdparm geht es danke.

Ist das nur so, wenn ich mich mit su als root anmelde oder auch wenn das Skript als root ausgeführt wird? Oder wenn ich mich direkt als root anmelde?

MSfree
Beiträge: 5567
Registriert: 25.09.2007 19:59:30

Re: root braucht sudo

Beitrag von MSfree » 18.03.2020 13:26:17

Simaryp hat geschrieben: ↑ zum Beitrag ↑
18.03.2020 13:20:50
Ist das nur so, wenn ich mich mit su als root anmelde oder auch wenn das Skript als root ausgeführt wird? Oder wenn ich mich direkt als root anmelde?
Das Geheimnis steckt in der Umgebungsvariable PATH, die du dir mit

Code: Alles auswählen

echo $PATH
auf der Kommandozeie ansehen kannst.

Mit su fehlen die Verzeichnisse /sbin und /usr/sbin, so daß Aufrufe von Programmen, die sich in den beiden Verzeichnissen befinden mit "nicht gefunden" quittiert werden.

Mit su - (man beachte das Minus am Ende) bekommt man /sbin und /usr/sbin gesetzt.

Als root-Login sind /sbin und /usr/sbin ebenfalls gesetzt.

Shellskripte, die von systemd oder cron gestartet werden, haben in der Regel gar keinen PATH gesetzt.

Wenn man sicher gehen will, sollte man in Skripten also immer den vollen Pfad eintragen.

fischic
Beiträge: 307
Registriert: 24.12.2019 12:25:08

Re: root braucht sudo

Beitrag von fischic » 18.03.2020 13:32:08

Welchen Sinn macht eigentlich noch ein nacktes su (ohne Minus, also ohne den Pfad für root)? Mal abgesehen davon, dass man's wieder hinbiegen kann, aber wenn's keinen Sinn mehr gibt, dann wäre es vielleicht besser, diese Variante ganz einzustampfen, statt noch in zehn Jahren mit der entsprechenden Frage konfrontiert zu werden.

KP97
Beiträge: 2062
Registriert: 01.02.2013 15:07:36

Re: root braucht sudo

Beitrag von KP97 » 18.03.2020 14:02:07

fischic hat geschrieben: ↑ zum Beitrag ↑
18.03.2020 13:32:08
... dann wäre es vielleicht besser, diese Variante ganz einzustampfen, statt noch in zehn Jahren mit der entsprechenden Frage konfrontiert zu werden.
Tja, diese Variante ist ja erst mit Buster eingeführt worden, in Anpassung an andere Distributionen von z.B. RedHat bzw. Suse.
So schnell wird das also nicht wieder verschwinden, in meinem Sid habe ich das schon vor längerer Zeit geändert.
Wie es geht, wurde hier auch schon sehr oft beschrieben...

fischic
Beiträge: 307
Registriert: 24.12.2019 12:25:08

Re: root braucht sudo

Beitrag von fischic » 18.03.2020 14:12:37

KP97 hat geschrieben:Tja, diese Variante ist ja erst mit Buster eingeführt worden [...] So schnell wird das also nicht wieder verschwinden
Ich fühle mich missverstanden. Ich möchte nicht die konkurrenzlos sinnvolle neue Variante abgeschafft wissen. Das hieße ja, dass ich hoffnungslos rückständig wäre, im Grunde ein todeswürdiges Verbrechen an der Gemeinschaft. Ich frage mich, welches Lebensrecht die absolut indiskutable alte Veriante noch hat - nicht zuletzt deinem Blutdruck zuliebe. :wink:

MSfree
Beiträge: 5567
Registriert: 25.09.2007 19:59:30

Re: root braucht sudo

Beitrag von MSfree » 18.03.2020 15:28:16

fischic hat geschrieben: ↑ zum Beitrag ↑
18.03.2020 14:12:37
Ich frage mich, welches Lebensrecht die absolut indiskutable alte Veriante noch hat - nicht zuletzt deinem Blutdruck zuliebe. :wink:
Ich befürchte, es ist sehr müssig darüber zu diskutieren. Die Änderungen wurden vor einigen Jahren vollzogen.

fischic
Beiträge: 307
Registriert: 24.12.2019 12:25:08

Re: root braucht sudo

Beitrag von fischic » 18.03.2020 19:59:08

Nochmal: es geht mir gar nicht um die Änderung an sich, sondern um deren halbherzige Implementierung. Wobei ich nicht mal weiß, ob sie denn halbherzig ist. Danach hatte ich weiter oben indirekt gefragt. Aber bisher hat meines Wissens noch niemand versucht, zu zeigen, warum die Fortexistenz von nacktem su in Debian Sinn macht. Mir fällt keiner ein. Und ich weiß auch nicht, wies andernorts aussieht. Ich benutze nur Debian. Aber viele hier regen sich auf, sind zumindest genervt über Leute, die es auch nach Jahren noch nicht mitbekommen haben. Mich verwundert das eigentlich nicht. su ist ein essenteilles Kommando eines Debian-Systems. Es ist ja so selbsterklärend, dass, wenn su nicht funktioniert, dann eben funktionieren muss. Ich behaupte, kein deutschsprachiger Mensch, der Debian seit langer Zeit anwendet, aber auch nur anwendet, hier nicht sehr intensiv mit liest, oder tief am System bastelt, kriegt das "intuitiv" mit. Was er auch nicht müsste, wenn ihm ein nacktes su als irgendwie unvollständig auf die Füße fallen würde. Tut's aber nicht. Warum's trotzdem nicht funktioniert und dass das an $PATH liegt, erfährt er nur, wenn er hier fragt. Oder aber ihn beschleicht die Vermutung: "root braucht sudo" - jetzt nicht nur in *buntu, sondern auch in Debian.

Das ist meines Erachtens verbesserungsbedürftig.

Benutzeravatar
TRex
Moderator
Beiträge: 6478
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: root braucht sudo

Beitrag von TRex » 18.03.2020 20:17:45

Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!

fischic
Beiträge: 307
Registriert: 24.12.2019 12:25:08

Re: root braucht sudo

Beitrag von fischic » 19.03.2020 09:38:20

Danke für die Information!

Benutzeravatar
whisper
Beiträge: 2481
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: root braucht sudo

Beitrag von whisper » 19.03.2020 09:59:57

fischic hat geschrieben: ↑ zum Beitrag ↑
18.03.2020 19:59:08
su ist ein essenteilles Kommando eines Debian-Systems.
Nein su ist ein unix Kommando, das so für Linux implementiert wurde.
Ich habe vor >25 Jahren Unix Kurse besucht, dort wurde schon immer su - benutzt und auf den Unterschied zu su hingewiesen.
Ganz im Gegenteil ich empfand die Nachlässigkeit vom alten Debianverhalten komisch, weil ich es gewohnt war und bin su - zu benutzen.

MSfree
Beiträge: 5567
Registriert: 25.09.2007 19:59:30

Re: root braucht sudo

Beitrag von MSfree » 19.03.2020 10:21:22

whisper hat geschrieben: ↑ zum Beitrag ↑
19.03.2020 09:59:57
Ich habe vor >25 Jahren Unix Kurse besucht, dort wurde schon immer su - benutzt und auf den Unterschied zu su hingewiesen.
Nunja, Unixkurse habe ich vor 25 Jahren zwar nicht besucht, aber damals gab es auch noch kein /sbin und /usr/sbin, bzw. wurde PATH nicht durch den Aufruf ohne Minus verkrüppelt. Der Unterschied ob mit oder ohne Minus war also damals irrelevant, mal abgesene davon, daß einen su - auf das Homeverzeichnis von root bringt, während su (ohne Minus) im aufrufenden Verzeichnis bleibt.

Ich finde jedenfalls das Verhalten von su - eher kontraproduktiv. Ich will in der Regel ja gar nicht ins /root-Verzeichnis wechseln sondern z.B. Dateibesitz und/oder -rechte im aktuellen Verzeichnis ändern.

Benutzeravatar
whisper
Beiträge: 2481
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: root braucht sudo

Beitrag von whisper » 19.03.2020 11:03:54

MSfree hat geschrieben: ↑ zum Beitrag ↑
19.03.2020 10:21:22
damals gab es auch noch kein /sbin und /usr/sbin, bzw. wurde PATH nicht durch den Aufruf ohne Minus verkrüppelt. Der Unterschied ob mit oder ohne Minus war also damals irrelevant, mal abgesene davon, daß einen su - auf das Homeverzeichnis von root bringt, während su (ohne Minus) im aufrufenden Verzeichnis bleibt.

Ich finde jedenfalls das Verhalten von su - eher kontraproduktiv. Ich will in der Regel ja gar nicht ins /root-Verzeichnis wechseln sondern z.B. Dateibesitz und/oder -rechte im aktuellen Verzeichnis ändern.
Nur unter Linux gibt es /root.
Das wurde wahrscheinlich gemacht, um Neueinsteiger vor versehentlichen rm -rf * zu schützen :-)
Dass es /sbin und /usr/sbin nicht gab, glaube ich nicht, kann es ohne Recherche aber auch nicht widerlegen.
Tatsache ist genau die Sache mit dem PATH ist ja extra so gewollt. Zum Beispiel hat root kein . also den aktuellen Pfad im PATH. Dies bleicbt aber erhalten, wenn man vom normal User mit su die root Rechte annimmt. ein ls im aktuellen verzeichnis wird dann also ggfs. ./ls ausführen, wenn vorhanden..
Nicht vergessen sollte man auch die vielfältigen Möglichkeiten von su. So z.B. kann man mit su - monitoring zum user monitoring werden um nach anpassen von Konfigurationen keine Gedanken an die user/gruppen Rechten zu verschwenden... oder z.B. su - -s /bin/bash www-data
als user www-data arbeiten, obwohl www-data gar keine Login shell hat.
Aber gut, bin ja jetzt wieder still.

Antworten