Fórum Root.cz
		Hlavní témata => Software => Téma založeno: Gwyn  30. 05. 2010, 23:59:05
		
			
			- 
				Dobrý den,
 snažím se nakonfigurovat sftp server podle článku od Petra Krčmáře na zdrojáku:
 http://www.root.cz/clanky/jak-nahradit-ftp-pomoci-sftp-a-zamknout-uzivatele/
 
 Distro: Debian Lenny
 Problém: Po přihlášení nemá uživatel žádná práva na čtení/zápis a je klientem odpojen
 
 Výpis z filezilly:
 Příkaz:   Pass: *********
 Stav:   Connected to zaklinac.cz
 Stav:   Přijímám výpis složky...
 Příkaz:   pwd
 Odpověď:   Current directory is: "/"
 Příkaz:   ls
 Stav:   Listing directory /
 Chyba:   Unable to open .: permission denied
 
 přihlášení na server funguje a uživatel je ověřen, nicméně se mi zdá, že je uzamčen v adresáři na která nemá žádná práva.
 
 práva na domovském adresáři uživatele jsou 701, vlastníkem je root
 poslední záznam v auth.log je pouze úspěch na přihlášení.
 
 Snažil jsem se hledat na goolu a několkrát si postup prošel i podle jiných článků, ale vždy se stejným výsledkem.
 
 Děkuji za každou radu a pomoc.
 
- 
				Ten domovsky adresar by v pripade SFTP mel byt vlastnen uzivatelem, ktery se prihlasuje, pokud se nepletu. Tedy pokud se prihlasuje uzivatel franta, mel by byt adresar vlastnen frantou, popripade pokud je vlastnik adresare a franta ve stejne skupine, pak nastavit adresari spravna prava pro skupinu a podobne.
			
- 
				Dobrý den, tak to bohužel není, vlastníkem musí být uživatel root a pouze root musí mít práva zápisu do tohoto adresáře. V opačném případě se nepodaří připojit a v auth.log je zánam o chybě práv na domovský adresář.
			
- 
				Pokud se to přihlásí a jen vlastně není kam co zapisovat, pak zbývá poslední krok: v tom "domovském adresáři" vlastněném rootem stačí založit podadresář(e) pro uživatele. Ty už samozřejmě může vlastnit a může do nich normálně zapisovat.
			
- 
				Děkuji, děkuji, děkuji!  :)
 
 adresář jsem měl již vytvořený, ale klientovy se musí vnutit přechod do tohoto adresáře, tedy ve filezille dát jako vstupní adresář např. /public
 
 problém je tedy vyřešen!
- 
				Výborně, jsem rád, že to bylo takhle lehké :-). Samozřejmě tam těch adresářů je možné dát neomezený počet a ať si tam uživatel řádí. Jen nemůže sám vytvářet žádné další.
			
- 
				Pokud chcete uzavrit vsechny uzivatele do stejneho adresare, mela by stacit direktiva
 ChrootDirectory     /public
 
v konfiguraci sftp serveru a ve filezille byste pak uz teoreticky nemusel nic nastavovat.
 (adresar /public pak samozrejme musi mit prislusna prava)
- 
				To je k ničemu. Pokud se chroot posune na public, zase to bude pro uživatele nezapisovatelný adresář. Prostě se to musí udělat tak, jak bylo uvedeno výše: Uživatel se dostane do adresáře /, do kterého ale nebude schopen nic zapsat. Až do jeho podadresářů. A tam jej může přepnout klient rovnou sám.
			
- 
				To je k ničemu. Pokud se chroot posune na public, zase to bude pro uživatele nezapisovatelný adresář. Prostě se to musí udělat tak, jak bylo uvedeno výše: Uživatel se dostane do adresáře /, do kterého ale nebude schopen nic zapsat. Až do jeho podadresářů. A tam jej může přepnout klient rovnou sám.
 
 
 Zase sem o neco chytrejsi, dekuji  :)
- 
				To je k ničemu. Pokud se chroot posune na public, zase to bude pro uživatele nezapisovatelný adresář. Prostě se to musí udělat tak, jak bylo uvedeno výše: Uživatel se dostane do adresáře /, do kterého ale nebude schopen nic zapsat. Až do jeho podadresářů. A tam jej může přepnout klient rovnou sám.
 
 
 Ještě jeden, poslední dotaz :)
 
 ""A tam jej může přepnout klient rovnou sám""
 
 Může, nebo musí? Tedy existuje nějaká možnost, aby server rovnou poslal do adresáře, do kterého bude mít práva zápisu?
 
 V praxi se totiž musí uživateli poslat kromě přístupových údajů navíc informace o tom, že si musí nastavit klienta tak, aby ho přesunul do nějaké složky, což je v každém klientu jinak a 99% BFU to prostě nenastaví.
 
 Děkuji
 
- 
				Do kterého adresáře se klient přepne po pořihlášení, to je přece stanoveno domovským adresářem uživatele (podle /etc/passwd například). Jaký domovský adresář máte nastaven u těch uživatelů?
 
 Já to řeším tak, že v /etc/passwd je normálně uvedeno "/home/neco/login_uzivatele" a sftp chroot mám nastaven na "/sftp-chroot", kde je adresář "/sftp-chroot/home". Přes bind mount je do něj nalinkován obsah skutečného /home:
 
 mount -o bind /home /sftp-chroot/home
- 
				aha, tak už je mi to jasné. Já mám home uživatele i chroot do stejného adresáře.
 Děkuji za tento tip.
 
 J.K