[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Homeverzeichnis in /etc/passwd als relativer Pfad
[Thread Prev] | [Thread Next]
- Subject: Re: Homeverzeichnis in /etc/passwd als relativer Pfad
- From: Alexander Holler <holler@xxxxxxxxxxxxx>
- Date: Fri, 26 Oct 2012 09:59:26 +0200
- To: uugrn@xxxxxxxxxxxxxxx
Hallo, Am 26.10.2012 01:16, schrieb Raphael Eiselstein: ... > Wenn man statt ~/.ssh/ lieber ein /opt/foo/kram/tools/job42/conf/.ssh/ > verwenden will, kann man zB mit > > ssh -F /opt/foo/kram/tools/job42/conf/.ssh/config > > die dort liegende Konfiguration verwenden und dort wiederum alle > Default-Dateinamen von ~/.ssh/* nach > /opt/foo/kram/tools/job42/conf/.ssh/* konfigurieren, soweit moeglich. > > Leider laesst sich das scheinbar nicht per Umebungsvariable steuern > (anders als zB bei wget, bei dem $HOME verwendet wird), sodass es zB > bei einem rsync+ssh nicht ohne Weiteres moeglich ist, den Parameter > "-F /opt/foo/kram/tools/job42/conf/.ssh/config" mitzugeben. Es ging > in diesem Fall schon, ist aber haesslich und fehleranfaellig. Geht einfach per rsync -e oder der Environmentvariablen RSYNC_RSH. Ist auch schoen in der manpage zu rsync beschrieben. > Auf der Suche nach einer *einfachen* Loesung bin ich zu einem fuer mich > selbst eher ueberraschenden Workaround gekommen: in /etc/passwd habe ich > als Homeverzeichnis fuer den Tooluser einfach "./conf" hinterlegt. Abhaengig > vom aktuellen Verzeichnis wuerde nun zB ssh oder was auch immer gerade > aktiv ist ausgehend vom aktuellen verzeichnis in ./conf zugreifen. > Ausserdem wird fuer alle anderen Tools auch $HOME entsprechend auf ./conf > gesetzt. > > Tatsaechlich funktioniert das auch praechtig, zu mindest ssh(1) liess sich > da relativ schmerzfrei "ueberlisten" und hat also brav per Default nach > /opt/foo/kram/tools/job42/conf/.ssh/config gesucht statt in > /home/tooluser/.ssh/ > > Die Frage ist nun: welche konkrete Gefahr besteht (unabhaengig davon, > dass sich dieses Verhalten aendern koennte) grundsaetzlich bei einem > "relativen Homeverzeichnis" > BTW: es ist per default fuer den Tooluser nicht schreibbar, damit kein > Tool durch Fehlkonfiguration sich selbst oder seine Config loeschen oder > ueberscheiben kann. Ich habe das schon im IRC erklaert: "es" kannst du nicht kontrollieren. "es" ist relativ, d.h. die Aussage '"es" ist nicht beschreibbar' ist falsch. Du handelst dir mit einem relativen Pfad als home massenweise Fallstricke ein, es ist eine ueberaus schlechte Idee. Da meine Erklaerungen im IRC anscheinend schwierig zu verstehen waren, hier nochmal eine Schritt fuer Schritt Anleitung um sich in den Fuss zu schie�en: ---------- root@host ~ # useradd -M -b ./conf -c "dumb" owned useradd: Ungueltiges Basis-Verzeichnis »./conf« root@host ~ # #(hier muesste man schon nachdenklich werden) root@host ~ # useradd -c "dumb" owned root@host ~ # vim /etc/passwd # (home in ./conf aendern) root@host ~ # su owned bash: ./conf/.bashrc: Keine Berechtigung owned@host /root $ #(hmm, noch ein Hinweis, dass man evtl. etwas falsch macht) owned@host /root $ echo $HOME ./conf owned@host /root $ cd /tmp owned@host /tmp $ mkdir -p /tmp/remote/conf owned@host /tmp $ echo "echo OWNED" >/tmp/remote/conf/.bashrc owned@host /tmp $ mkdir /tmp/backup owned@host /tmp $ cd /tmp/backup owned@host /tmp/backup $ rsync -av /tmp/remote/* ./ sending incremental file list conf/ conf/.bashrc sent 127 bytes received 35 bytes 324.00 bytes/sec total size is 11 speedup is 0.07 owned@host /tmp/backup $ bash OWNED owned@host /tmp/backup $ ---------- Mir fallen da auf Anhieb noch etliche andere interessante Dateien ein, die man anstatt dem .bashrc anpassen koennte, um unerwartete Dinge erscheinen zu lassen. Gruss, Alexander -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/