Jozef Drahovsky wrote on 2019/05/14 23:53:
Dňa 14.05.2019 o 21:33 Ivo Hazmuk napísal(a):

Ahoj,

Dne 14.5.2019 v 19:38 Jozef Drahovsky napsal(a):
ale nedari sa mi rozbehat uzivatela ktory, by mal len SFTP s chroot

toto jsem řešil nedávno. Je to trochu opruz, ale jde to.



1) Nainstaluj si scponly shell a do /etc/shells přidej cestu k scponly. Nejspíš "/usr/local/bin/scponly".

Nainstaloval  som scponly a funguje u vsetkych userov ktorym som v passwd zmenil shell na /usr/local/bin/scponly
Pokus o SSH ihned ukonci
SFTP ide a aj proces ma ID z passwd daneho usera

Ale chroot sa mi zatial rozbehnut nepodarilo
aj som prekompiloval scponly aj zaskrtol ze chcem chroot
aj sa vytovrilo okrem /usr/local/bin/scponly
aj /usr/local/sbin/scponlyc a uviedol som ho v passwd

Ked ho uvediem v passwd u daneho uzivatela tak sa neprihlasim a v logu je chybova hlaska
"chroot dir not owned by root: /web/userxy"

Zda sa mi, ze som nepochpil tvoju poznamku o nastaveni domovskeho adresara.
Tam je viazane na uzivatela root a skupinu ftp?
odkial berie adresu pre chroot z passwd alebo od inakadial?

Koukam, ze jsem ten svuj predchozi e-mail mel moc dlouho rozepsany a uz jsi narazil...

Takze pro poradek jeste jednou - vsechny komponenty cesty k tomu homediru musi byt vlastnene rootem a nesmi byt zapisovatelne jinym uzivatelem / jinou skupinou. Tzn. nemuzes tam udelat treba chown root:skupina1 a pak chmod g+w ... to ti hodi prave tu chybu, cos poslal.

Pokud mas v sshd_config napriklad tohle:

Match Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    (a tady ty dalsi restikce)

Tak ChrootDirectory %h znamena, ze se za to %h doplni homedir toho uzivatele, tak jak ho ma uvedeny v passwd. Cilova cesta musi existovat a jak jsem psal, musi cela vcetne toho homediru patrit rootovi! Tam teprve udelas podslozku, kam bude uzivatel zapisovat a nahravat svoje weby. Takze to muze byt treba takhle

Vytvoris si uzivatele "example.com", kteremu nastavis home "/web/example.com"

mkdir -p /web/example.com/public/
chown root:wheel /web/
chown root:wheel /web/example.com/
chown example.com /web/example.com/public/
chmod 0755 /web/
chmod 0755 /web/example.com/

Do toho home "/web/example.com/" se provede SFTP chroot.
Po prihlaseni uzivatel uvidi slozku "public", kam nahraje obsah sveho webu.
V konfiguraci Apache VirtualHostu pak pouzijes DocumentRoot /web/example.com/public

Pokud ma ten SFTP account slouzit k necemu jinemu, nez k publikaci webu, tak tuhle cast o Apache muzes ignorovat. :)

Mirek
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem