[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Homeverzeichnis in /etc/passwd als relativer Pfad


Hallo allerseits,

On Fri, Oct 26, 2012 at 01:25:01AM +0200, Raphael Eiselstein wrote:
> On Fri, Oct 26, 2012 at 01:16:26AM +0200, Raphael Eiselstein wrote:
> > Kann man ssh(1) auf eine schonendere Weise beibringen, dass es per 
> > default nach $PWD/conf/.ssh/config suchen soll statt nach ~/.ssh/config 
> > 
> > Environment? Globale Konfiguration (sollte jedoch nur fuer den Tooluser
> > zutreffen!) Neu kompilieren? 
> > 
> > Andere Moeglichkeiten, damit ssh (nur fuer den Benutzer, nicht fuer die 
> > ganze Maschine!) per default nicht in ~/.ssh/ sondern in einem variablen
> > default-Verzeichnis sucht?
Hm, *mein* erster Gedanke waere ja ein Wrapper der Art

if [ ! -z "$SSHCONF ]; then
  ssh $@
else
  ssh -F "$SSHCONF" $@
fi

(oder analog) -- aber daran hast du bestimmt schon gedacht, nein?
[Disclosure: Ich hatte waehrend der Schilderung der eigentlichen
Problematik ein kurzes Aufmerksamkeitsproblem]
 
> Eine Option waere, den Zugriff auf die Datei /etc/passwd zu maskieren,
> d.h. ein fopen("/etc/passwd") transparent fuer den jeweiligen Prozess
> tatsaechlich umzuleiten auf $DIR/conf/etc/passwd, also eine Art
> Mapping-Datei / Alias-Datei, die von zB glibc oder aber im Kernel
> Anwendung findet. 
Uh.  Du bist sicher, dass du nicht lieber einen winzigen Patch in die
ssh-Quellen reinfummeln willst?  Ich gebe zu, an ssh rumfummeln ist
immer etwas aufregend, aber eigentlich sieht der Kram recht harmlos
aus (ssh.c, einfach nach _PATH_SSH_USER_CONFFILE suchen; in 5.5p1 ist
das in der Gegend von Zeile 650).  Aber ein Check auf ein Configfile
macht dann eigentlich nicht viel was anderes als der Wrapper oben,
der auch noch gleich den Vorteil hat, dass man ihn statt ssh dann
lieber ssh-spezial nennen kann, so dass die Leute sehen, dass da
Magie passiert.

> Das muesste halt pro Aufruf passieren, aehnlich wie zB man Prozesse 
> mittels "nice -n 20 command ..." oder "chroot /opt/foo/ command" 
> starten kann. Denkbar waere, dass hierfuer Root-Rechte benoetigt werden.
> 
> Ich bin mir sicher, dass es solche Methoden geben *koennte* bin mir 
> aber vollkommen im Unklaren darueber, wo ich anfangen sollte soetwas 
> zu recherchieren (Stichworte).

LD_PRELOAD; zumindest auf glibc-Systemen muesstest du in ld.so(8) was
finden.  Das Zeug ist fuer alles moegliche gut (ich erinnere mich
noch begeistert an die Bibliothek, die auf diese Weise vernuenftiges
Audio aus dem Realplayer georgelt hat, in den duesteren Zeiten, in
denen der noch noetig war fuer Radiohoeren im Netz).  Rootrechte
brauchst du dafuer nur bei suid-binaries, was die ssh nicht ist.
*Aber* das ist wirklich die ganz dicke Kanone.  Fuer Dinge, fuer die
ich halbwegs verlaesslich von Quelle bauen kann, wuerde ich das nicht
anfassen.

Gruesse,

          Demi

-- 
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/