Mam tu takovy problem, se kterym si uz par dnu lamu hlavu.

Na celkem normalnim FreeBSD serveru, kde bezi sshd je vytvoreno nekolik ssh uctu. Nektere ucty maji povolene pouze pouzivani sftp. Ty ucty slouzi pro deployment webaplikaci a obcas je tam potreba udelat nejaky symlink. Kdyz jsem to testoval z jineho FreeBSD stroje, tak to vsechno fungovalo jak ma. Zkousel jsem ty sftp accounty i z Windows, napriklad skrz WinSCP. Vsechno funguje, symlinky jsou relativni jak maji byt.

Pak se ale jeden klient pripojil z Mac OS X skrz OpenSSH 6.1 klienta a k udivu vsech se z neho symlinky vytvareji s absolutni cestou, coz je problem, protoze ty sftp ucty jsou v chrootu a tak je vysledny symlink neplatny. Stejne chovani mam potvrzene i na uctech, ktere nejsou v chrootu a stejne se chova i OpenSSH 6.2 z cygwinu.

Zkusil jsem na serveru v sshd_config zapnout DEBUG logovani a vysledek je nasledujici:

Spravne chovani s OpenSSH 5.4

subsystem request for sftp
session opened for local user devel from [y.y.y.y]
received client version 3
realpath "."
symlink old "temp" new "/usr/home/devel/temp_symlink"
sent status Success
session closed for local user devel from [y.y.y.y]


Spatne chovani s OpenSSH 6.1 nebo 6.2

subsystem request for sftp
session opened for local user devel from [x.x.x.x]
received client version 3
realpath "."
opendir "/usr/home/devel"
sent status End of file
closedir "/usr/home/devel"
sent status Success
symlink old "/usr/home/devel/temp" new "/usr/home/devel/temp_symlink"
sent status Success

V obou pripadech se spousti jednoduchy shellscript:

echo "symlink temp temp_symlink
quit
" | sftp [email protected]


(je to minimalizovana verze vetsiho scriptu, ktery se stara o cely deployment)

Chovani je stejne s pouzitim sftp-server i internal-sftp (v sshd_config) a je jedno, jestli je ucet chrootnuty, nebo ne - vzdy se vytvori absolutni symlink, pokud je sftp klient novejsi, nez mnou pouzita 5.4 (nevim, od ktere verze presne)


Nesetkal jste se s tim nekdo? Nenapada vas, jak prinutit sftp z OpenSSH 6.2 k tomu, aby delal normalne relativni symlinky, tak jak je mu zadano?

Mirek
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem