SSH chroot (Drupal)

Üdv!

Egy CentOS6.5-ön próbálok egy usernek beállítani egy chroot mappát amibe fel tudna tölteni:

# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

# Example of overriding settings on a per-user basis
#Match group sftpgroup
Match user tesztuser
X11Forwarding no
AllowTcpForwarding no
# ForceCommand internal-sftp
ChrootDirectory /var/www/vhosts/vhost1/sites/default/files/Akarmi

Milyen jogosultság kellene? Mit felejtek el? :(

sshd[22543]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/vhost1/sites/"

Vagy hogyan tudnám megengedni neki a Drupal mappába a feltöltést (scp)?

--
G.

Hozzászólások

Elég az sftp vagy szeretnél scp-t?

A ChrootDirectory-nak olyan könyvtárat kell megadni, amelyen a root:root van, tehát ide nem tud írni a tesztuser. Majd ez alatt a könyvtár alatt már lehetnek olyan könyvtárak, amelyeknek a tulajdonosa a tesztuser.

Ha van SELinux, akkor meg 'user_home_dir_t' fájl kontextus is kell a könyvtárra.

Csak feltölteni szeretne tehát elég az sftp is.
Az az érdekes, hogy hiába állítom be bármelyik könyvtárat HOMEDir-nek a Drupal alatt mindig a " bad ownership or modes for chroot directory component "/var/www/vhosts/vhost1/sites/" " problémázik.

A sites: rwxrwxrwx root root

(SELinux nincs)

Ezzel működik, be tud lépni (a tesztuser az sftpgroup tagja):

Match group sftpgroup
# ForceCommand cvs server
X11Forwarding no
AllowTcpForwarding no
# ForceCommand internal-sftp
ChrootDirectory /var/www/vhosts/vhost1

Csak nem akarjuk, hogy minden mappához hozzáférjen. No meg csak azt lássa, ahova fel akar tölteni.

--
G.

Ha jól emlékszem, a home-hoz csak a tulajdonosnak lehet hozzáférése, a groupnak és az othernek max. x joga lehet rajta.
Persze a tévedés joga fenntartva.

update: kipróbáltam. Ha a ChrootDirectory-ban megadott könyvtárra 0777 jogot teszek, akkor a tiéddel azonos hibaüzenetet kapok. Ha kicserélem 0711-re, akkor továbblép. (akkor sem működik, de már nem a jogokon problémázik - gondolom, kellene neki egy normális chrooted environment, nálam meg csak egy üres könyvtár volt ott a userem számára)

Asszem az a baja, hogy az egyik user CHROOTHOME-ja a másik CHROOTHOME-ja alatt van. :(
Ezt nem eszi meg. Végülis logikus.

--
G.

Valami rémlik a régmúltból, hogy a chroot környezetbe kell néhány file. Pl. library-k, konfig file-ok. De mondom, csak tipp, semmi konkrét info nincs mögötte.

update: most gép mellett vagyok, meg tudtam nézni.
A konfigban ez áll:
----------------------------------------------
Match Group sftp
ChrootDirectory /chroot

ForceCommand internal-sftp
AllowTcpForwarding no
----------------------------------------------

A /chroot ownere root:root, permission 0711.
A /chroot/home-ra ugyanez igaz.
A /chroot/home/enuserem tulajdonosa enuserem:enuserem, permission 0711

A lényeg, hogy a home könyvtár megegyezik a valódi home-mal, csak a gyökérkönyvtára nem a /, hanem a chrootolt könyvtár.

Azt kell tudni, hogy a user a chrootba nem tud írni, mert root:root és 755 jog kell legyen rajta. Viszont ha van benne egy könyvtár, amelybe van joga írni, akkor oda tud. Tehát ChrootDirectory /var/www/vhosts/vhost1/sites/default/files, akkor ide fog belépni és látni fogja az akarmi könyvtárat. De kérdés, hogy erre files könyvtárra lehet-e alkalmazni a fennti jogot.
A ForceCommand parancs is kell, ha azt szeretnéd, hogy csak a sftp-t tudja használni.

Mostanában szaladtam rá erre én is, ha jól emlékszem a teljes útvonalon egy könyvtáron se lehet 755-nél több jog. Ha ezt macerás megoldani, akkor csinálj egy másik chroot könyvtárat és bind mount-old rá az Akármire.