SFTP
Přístup k filesystému lze zajistit přes SSH. Je třeba editovat soubor /etc/ssh/sshd_config a přidat řádky pro jednotlivé uživatele. Každý uživatel bude mít rootovskou složku dle cesty - nedostane se k ostatním souborům mimo jejich adresář.
Uživatel user1 se autentizuje pomoci certifikátů, takže není povolena autentizace heslem.
Oba uživatelé musí mít vytvořený účet.
# override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server Match User user1 ChrootDirectory /home/user1 ForceCommand internal-sftp AllowTcpForwarding no PasswordAuthentication no Match User user2 212.4.2.2 ChrootDirectory /home/user2 ForceCommand internal-sftp AllowTcpForwarding no
Oba uživatelé musí mít vytvořený účet v Linuxu. Aby se nemohli přihlásit do systému, tak jim lze místo přihlašovacího bashe nastavit v souboru /etc/passwd nologin cestu:
user1:x:1003:1003::/home/user1:/usr/sbin/nologin user2:x:1004:1004::/home/user2:/usr/sbin/nologin
Při konfiguraci jsem narazil na problém s právy. Nedařilo se mi připojit přes SFTP a v logu */var/log/auth* jsem se dočetl, že nejsou správně nastavena práva. Protože jsem použil chroot, tak adresář /home/user1 a adresář /home/user2 musí mít práva roota. A v tom adresáři musí být zase složky, do které může zapisovat konkrétní uživatel.
Pro prvního uživatele jsem to vyřešil tedy takto:
chown root:root /home/user1 mkdir /home/user1/upload chown user1:user1 /home/user1/upload
Problém s SFTP a certifikátem
Protože jsem konfiguroval službu v lokální síti, narazil jsem na problém SSL certifikátem. Na SFTP server jsem chtěl posílat data z IP kamery, ale bohužel kamera kontroluje certifikát a nemůže znát tento lokální certifikát od SSH serveru. A to byla příčina, proč mi u kamery SFTP server nefungoval, ale přes Filezillu nebo Krusader mi to fungovalo.