
Posiadasz swój własny serwer www działający na Apache2 i chcesz udostępnić miejsce na nim, lecz nie chcesz aby miał dostęp do twoich plików, a nie chcesz korzystać z FTP? Dobrze trafiłeś! W tym poradniku dowiesz się jak tego dokonać. Dodatkowo na wstępie powiem, że jest to jeden z nielicznych poradników, po którego zastosowaniu użytkownik będzie miał nadal możliwość logowania przez klucze open-ssh.
Po pierwsze musimy zdecydować gdzie chcemy umieszczać użytkowników, którzy będą mieli dostęp tylko do swojego katalogu.
Przykładowo będzie to /uzytkownicy/sftp.
Logujemy się na konto roota i wykonujemy poniższe czynności:
1. Stworzenie folderu dla użytkowników.
mkdir /uzytkownicy/sftp
2. Nadanie uprawnień (foldery muszą należeć do roota)
chown -R root:root /uzytkownicy
3. Tworzymy użytkownika (w miejsce user oczywiście wpisujemy nazwę naszego użytkownika)
adduser --home /uzytkownicy/sftp/user user
4. Tworzymy grupę, która będzie miała ograniczenie do poruszania się tylko w zakresie własnego katalogu domowego
groupadd sftponly
5. Dodajemy naszego nowego użytkownika do tej grupy, oraz zmieniamy właściciela
usermod -a -G sftponly user chown root:root /uzytkownicy/sftp/user
6. Otwieramy plik sshd_config
nano /etc/ssh/sshd_config
Oraz dopisujemy na samym końcu (cały czas pamiętając jaki wybraliśmy katalogi!):
Match Group sftponly
ChrootDirectory /uzytkownicy/sftp/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
7. Restartujemy serwer ssh:
service ssh reload
Od teraz dany użytkownik powinien mieć dostęp tylko do swojego folderu, oraz móc logować się przez klucze open-ssh.
Nie zapominajmy, że dany użytkownik nie będzie mógł niczego zapisywać ani usuwać. Należy stworzyć w jego katalogu jakiś folder i zmienić właściciela na danego użytkownika, np:
mkdir public_html chown user:user public_html