Kategoria: Technologie | Tagi: , ,

Apache2: Tworzenie użytkownika, który nie ma dostępu do innego katalogu niż domowego z możliwością logowania SFTP przez klucze.


Data publikacji: 31 października 2014     Autor:

Apache2Posiadasz 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