Probleme mit Bash Environment

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Probleme mit Bash Environment

Beitrag von zorn » 12.11.2014 22:13:11

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.
--
kallisti!

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Probleme mit Bash Environment

Beitrag von JTH » 12.11.2014 22:30:45

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.

Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Re: Probleme mit Bash Environment

Beitrag von zorn » 12.11.2014 22:53:17

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!

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Probleme mit Bash Environment

Beitrag von Meillo » 14.11.2014 11:19:18

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...
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 -'.
Use ed once in a while!

JuergenPB

Re: Probleme mit Bash Environment

Beitrag von JuergenPB » 14.11.2014 12:27:40

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?

uname
Beiträge: 12403
Registriert: 03.06.2008 09:33:02

Re: Probleme mit Bash Environment

Beitrag von uname » 14.11.2014 12:36:11

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?

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Probleme mit Bash Environment

Beitrag von Meillo » 14.11.2014 12:39:08

uname hat geschrieben:Ich würde mal jeweils ausführen und abgleichen.
Er hat geschrieben, dass er das schon getan hat -- scheinbar ohne Auffaelligkeiten.
Aber du nutzt dieselbe Shell (wobei müsste ja geändert werden mit su - )
`su -' sollte genauso eine Loginshell starten wie der ssh-Login, oder?
Use ed once in a while!

Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Re: Probleme mit Bash Environment

Beitrag von zorn » 14.11.2014 23:01:08

@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...
--
kallisti!

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Probleme mit Bash Environment

Beitrag von Cae » 15.11.2014 07:12:58

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 Debianstrace bzw. Debianltrace 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

newdeb
Beiträge: 134
Registriert: 03.02.2011 11:11:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Frankfurt

Re: Probleme mit Bash Environment

Beitrag von newdeb » 15.11.2014 08:04:12

Grafische Anwendung? X11-Forwarding im Spiel?

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Probleme mit Bash Environment

Beitrag von Meillo » 15.11.2014 13:45:51

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.
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.)

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.
Das waere zumindest eine Erklaerung.
Use ed once in a while!

JuergenPB

Re: Probleme mit Bash Environment

Beitrag von JuergenPB » 15.11.2014 13:59:57

Meillo hat geschrieben:
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.
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.)
So ganz kann ich das nicht glauben.

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.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Probleme mit Bash Environment

Beitrag von Cae » 15.11.2014 18:55:01

Meillo hat geschrieben:
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.
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.)
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.
JuergenPB hat geschrieben:
Meillo hat geschrieben:
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.
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.)
So ganz kann ich das nicht glauben.

Wenn ich mich auf der Konsole mit Namen einlogge [...]
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).

Diese Datei wird nicht ge-chown-t, wenn irgendwelche Kindprozesse ihre UID wechseln. Das koennte das Problem sein.
JuergenPB hat geschrieben:Die ist so eingestellt, daß per SSH kein root-login möglich ist.
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 ein

Code: Alles auswählen

PermitRootLogin without-password
in der sshd_config(5). Und SSH-Keys hat man in so einem Szenario ohnehin.

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

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Probleme mit Bash Environment

Beitrag von Meillo » 18.11.2014 21:25:33

@Cae: Danke fuer die Erklaerungen. Ich bin gespannt was zorn berichten wird.


OT:
Cae hat geschrieben:

Code: Alles auswählen

PermitRootLogin without-password
Das kann man auch herzlich missverstehen. :-D
Use ed once in a while!

Antworten