Probleme mit Bash Environment
Probleme mit Bash Environment
Hallo,
ich versuche mal eben das Problem zu umreissen:
Ich logge mich per ssh als "root" ein, starte ein script -> success
Ich logge mich per ssh als "user" ein, wechsle mit "su -" nach root und starte ein Skript -> fail
So leid es mir tut - was den Ablauf des Scripts (steht hier Synonym für unglaublich komplexer Prozess) angeht kann ich nicht weiter ins Detail gehen. Ich denke auch das ist nicht weiter relevant, denn die Frage ist: Warum sind die Sessions nicht identisch?
Ich bin also in beiden Fällen root, parse die Login Scripte (.profile, .bashrc, usw.). Was könnte hier noch in irgendeiner Form mein Environment beeinflussen? Ich habe die Ausgaben von env verglichen, ssh untersucht (auch dort werden keine Environment Vars übergeben). Ich bin ratlos. Für mein Verständnis müssten die beiden root Shells identisch sein...
Was außer env und set könnte ich denn noch vergleichen?
Ein Gruß aus der Ratlosigkeit,
w.
ich versuche mal eben das Problem zu umreissen:
Ich logge mich per ssh als "root" ein, starte ein script -> success
Ich logge mich per ssh als "user" ein, wechsle mit "su -" nach root und starte ein Skript -> fail
So leid es mir tut - was den Ablauf des Scripts (steht hier Synonym für unglaublich komplexer Prozess) angeht kann ich nicht weiter ins Detail gehen. Ich denke auch das ist nicht weiter relevant, denn die Frage ist: Warum sind die Sessions nicht identisch?
Ich bin also in beiden Fällen root, parse die Login Scripte (.profile, .bashrc, usw.). Was könnte hier noch in irgendeiner Form mein Environment beeinflussen? Ich habe die Ausgaben von env verglichen, ssh untersucht (auch dort werden keine Environment Vars übergeben). Ich bin ratlos. Für mein Verständnis müssten die beiden root Shells identisch sein...
Was außer env und set könnte ich denn noch vergleichen?
Ein Gruß aus der Ratlosigkeit,
w.
--
kallisti!
kallisti!
Re: Probleme mit Bash Environment
Es wäre wahrscheinlich zu einfach: Liegt es daran, dass du dich nach dem Login in verschiedenen Ordnern befindest (/root bzw. /home/user), das Skript aber von /root oder ähnlichem ausgeht?
Manchmal bekannt als Just (another) Terminal Hacker.
Re: Probleme mit Bash Environment
nene - das script wird ja ausgeführt, aber mit unterschiedlichem Ergebnis. Aber hey - manchmal isses so einfach und man sieht es einfach nicht mehr nach stundenlanger Sucherei...
--
kallisti!
kallisti!
Re: Probleme mit Bash Environment
Das wuerde ich so auch annehmen, insofern weiss ich nicht was das Problem ist, aber ich weiss etwas, das du noch versuchen koenntest: Logge dich als root ein und wechsele dann ebenfalls mit `su -'.zorn hat geschrieben: Ich bin also in beiden Fällen root, parse die Login Scripte (.profile, .bashrc, usw.). Was könnte hier noch in irgendeiner Form mein Environment beeinflussen? Ich habe die Ausgaben von env verglichen, ssh untersucht (auch dort werden keine Environment Vars übergeben). Ich bin ratlos. Für mein Verständnis müssten die beiden root Shells identisch sein...
Use ed once in a while!
Re: Probleme mit Bash Environment
Gibt es nicht bei SSH verschiedene Optionen bezüglich des root?
Irgendwas wird doch da bei der Installation schon abgefragt, wenn ich mich dunkel erinnere?
Irgendwas mit "PermitRootLogin yes" oder sowas?
Ich will andeuten: Vielleicht liegt es an der SSH-Konfiguration?
Irgendwas wird doch da bei der Installation schon abgefragt, wenn ich mich dunkel erinnere?
Irgendwas mit "PermitRootLogin yes" oder sowas?
Ich will andeuten: Vielleicht liegt es an der SSH-Konfiguration?
Re: Probleme mit Bash Environment
Ich würde mal jeweils
ausführen und abgleichen. Aber leider weiß ich auch nicht ob das wirklich hilft. Aber du nutzt dieselbe Shell (wobei müsste ja geändert werden mit su - ) bzw. für das Script einen Shebang? Wenn welchen?
Code: Alles auswählen
env
Re: Probleme mit Bash Environment
Er hat geschrieben, dass er das schon getan hat -- scheinbar ohne Auffaelligkeiten.uname hat geschrieben:Ich würde mal jeweilsausführen und abgleichen.Code: Alles auswählen
env
`su -' sollte genauso eine Loginshell starten wie der ssh-Login, oder?Aber du nutzt dieselbe Shell (wobei müsste ja geändert werden mit su - )
Use ed once in a while!
Re: Probleme mit Bash Environment
@Meillo: Danke daß du mir da zur Seite gesprungen bist. Und du hast recht: env hatte ich abgeglichen, ssh hatte ich schon im Verdacht und verworfen, deine Idee als ssh root ein su - zu versuchen wird Montag ausprobiert. Ich vermute daß es danach nicht funktioniert, aber wir werden sehen. Denn: Ich habe heute statt su - mal ein sudo su - versucht, klappte auch nicht.
Interessantes Problem, bin gespannt ob ich eine Lösung finde...
Interessantes Problem, bin gespannt ob ich eine Lösung finde...
--
kallisti!
kallisti!
Re: Probleme mit Bash Environment
Ein Unterschied besteht darin, dass das TTY dem einloggenden Benutzer gehoert. Es wird durch ein xterm, getty, den SSH-Daemon o.ae gestartet. Die Besitzer-Rechte veraendern sich bei einem Benutzerwechsel nicht.
Evtl. ist da ein Check drin mit "gehoert das TTY mir, damit ich darauf schreiben kann?" anstatt "kann ich auf das TTY schreiben?". Muss aber schon recht merkwuerdige Software sein, die so etwas tut. In begrenztem Umfang duerfte sich das mit strace bzw. ltrace aufdecken lassen.
Gruss Cae
Evtl. ist da ein Check drin mit "gehoert das TTY mir, damit ich darauf schreiben kann?" anstatt "kann ich auf das TTY schreiben?". Muss aber schon recht merkwuerdige Software sein, die so etwas tut. In begrenztem Umfang duerfte sich das mit strace bzw. ltrace aufdecken lassen.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 134
- Registriert: 03.02.2011 11:11:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Frankfurt
Re: Probleme mit Bash Environment
Grafische Anwendung? X11-Forwarding im Spiel?
Re: Probleme mit Bash Environment
D.h. im Fall von direktem root-Login gehoert das TTY root. Im Fall des User-Logins mit anschliessendem `su -' gehoert das TTY dem User. Habe ich das richtig verstanden? (Beim root-Login mit anschliessendem `su -' wuerde es unveraendert root gehoeren.)Cae hat geschrieben:Ein Unterschied besteht darin, dass das TTY dem einloggenden Benutzer gehoert. Es wird durch ein xterm, getty, den SSH-Daemon o.ae gestartet. Die Besitzer-Rechte veraendern sich bei einem Benutzerwechsel nicht.
Das waere zumindest eine Erklaerung.Evtl. ist da ein Check drin mit "gehoert das TTY mir, damit ich darauf schreiben kann?" anstatt "kann ich auf das TTY schreiben?". Muss aber schon recht merkwuerdige Software sein, die so etwas tut.
Use ed once in a while!
Re: Probleme mit Bash Environment
So ganz kann ich das nicht glauben.Meillo hat geschrieben:D.h. im Fall von direktem root-Login gehoert das TTY root. Im Fall des User-Logins mit anschliessendem `su -' gehoert das TTY dem User. Habe ich das richtig verstanden? (Beim root-Login mit anschliessendem `su -' wuerde es unveraendert root gehoeren.)Cae hat geschrieben:Ein Unterschied besteht darin, dass das TTY dem einloggenden Benutzer gehoert. Es wird durch ein xterm, getty, den SSH-Daemon o.ae gestartet. Die Besitzer-Rechte veraendern sich bei einem Benutzerwechsel nicht.
Wenn ich mich auf der Konsole mit Namen einlogge läuft die bash unter dem Namen
Wenn ich mich auf der Konsole mit root einlogge läuft die bash unter dem root
Das ist trivial
Wenn ich mich auf der Konsole mit Namen einlogge läuft die bash unter dem Namen und wenn ich dann su mache, dann läuft die bash unter root.
Es könnte natürlich sein, daß das unter SSH anders ist. Das wäre aber für mich nicht wirklich nachvollziehbar.
Unter SSH kann ich das nicht testen. Ich will nicht extra in der Config rumfingern. Die ist so eingestellt, daß per SSH kein root-login möglich ist.
Re: Probleme mit Bash Environment
Ja, so ist meine Beobachtung. Das su - als root (was der TE am Montag testen will) wuerde in der Tat Aufschluss darueber geben, ob meine Idee stimmt oder nicht.Meillo hat geschrieben:D.h. im Fall von direktem root-Login gehoert das TTY root. Im Fall des User-Logins mit anschliessendem `su -' gehoert das TTY dem User. Habe ich das richtig verstanden? (Beim root-Login mit anschliessendem `su -' wuerde es unveraendert root gehoeren.)Cae hat geschrieben:Ein Unterschied besteht darin, dass das TTY dem einloggenden Benutzer gehoert. Es wird durch ein xterm, getty, den SSH-Daemon o.ae gestartet. Die Besitzer-Rechte veraendern sich bei einem Benutzerwechsel nicht.
Es geht hierbei um das TTY, welches stdin/out/err fuer die darin laufende Shell bereitstellt. Das ist eine Datei (genauer: ein character special), welche zum Beispiel /dev/tty1 heissen kann (ein VT) oder auch /dev/pts/42 ("pseudoterminal master and slave", siehe pts(4). Typischerweise im xterm oder per SSH).JuergenPB hat geschrieben:So ganz kann ich das nicht glauben.Meillo hat geschrieben:D.h. im Fall von direktem root-Login gehoert das TTY root. Im Fall des User-Logins mit anschliessendem `su -' gehoert das TTY dem User. Habe ich das richtig verstanden? (Beim root-Login mit anschliessendem `su -' wuerde es unveraendert root gehoeren.)Cae hat geschrieben:Ein Unterschied besteht darin, dass das TTY dem einloggenden Benutzer gehoert. Es wird durch ein xterm, getty, den SSH-Daemon o.ae gestartet. Die Besitzer-Rechte veraendern sich bei einem Benutzerwechsel nicht.
Wenn ich mich auf der Konsole mit Namen einlogge [...]
Diese Datei wird nicht ge-chown-t, wenn irgendwelche Kindprozesse ihre UID wechseln. Das koennte das Problem sein.
Das will man aber nicht, da beispielsweise remote-Backups ohne benutzbaren root-Account reichlich unspassig sind. Dafuer hat man SSH-Keys mit COMMAND= auf dem Zielsystem und einJuergenPB hat geschrieben:Die ist so eingestellt, daß per SSH kein root-login möglich ist.
Code: Alles auswählen
PermitRootLogin without-password
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Probleme mit Bash Environment
@Cae: Danke fuer die Erklaerungen. Ich bin gespannt was zorn berichten wird.
OT:
OT:
Das kann man auch herzlich missverstehen.Cae hat geschrieben:Code: Alles auswählen
PermitRootLogin without-password
Use ed once in a while!