Uvod
Određeni scenariji zahtijevaju da kreirate korisnike s pristupom za čitanje i pisanje u jedan direktorij samo putem FTP-a. Ovaj zapis će vam pokazati kako stvoriti takve korisnike. Neće se moći kretati izvan svog matičnog direktorija, prijaviti se na poslužitelj putem SSH-a ili izvršavati naredbe ljuske.
Postavite SFTP grupu i uslugu
Stvorite sftpusers grupu.
sudo groupadd sftpusers
Komentirajte postavku koja onemogućuje SFTP pristup iz sshd konfiguracijske datoteke.
sudo sed -i "s/Subsystem sftp \/usr\/lib\/openssh\/sftp-server/#Subsystem sftp \/usr\/lib\/openssh\/sftp-server/" /etc/ssh/sshd_config
Otvorite konfiguracijsku datoteku sshd sudo nano /etc/ssh/sshd_config, dodajte je ispod isječka i izađite (Ctrl+X -> Y -> Pritisnite Enter) .
#enable sftp
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h #set the home directory
ForceCommand internal-sftp
X11Forwarding no
AllowTCPForwarding no
PasswordAuthentication yes
Ponovno pokrenite ssh.
sudo service ssh restart
Stvaranje korisnika
Ponovite postupak u nastavku za svakog korisnika samo SFTP kojeg želite dodati poslužitelju.
# create user
sudo adduser sftpuser1
# prevent ssh login & assign SFTP group
sudo usermod -g sftpusers sftpuser1
sudo usermod -s /bin/nologin sftpuser1
# chroot user (so they only see their directory after login)
sudo chown root:sftpuser1 /home/sftpuser1
sudo chmod 755 /home/sftpuser1
sudo mkdir /home/sftpuser1/uploads
sudo chown sftpuser1:sftpuser1 /home/sftpuser1/uploads
sudo chmod 755 /home/sftpuser1/uploads
Možete ubrzati stvaranje korisnika tako da umotate gore u funkciju i dodate je u svoj bashprofil tako da (1) pokrenete sudo nano ~/.bash_profile; (2) dodavanje isječka u nastavku; (3) trčanje source ~/.bash_profile.
Nakon toga, stvaranje novog SFTP korisnika postaje jednostavno kao i pokretanje naredbe create_sftp_userzajedno s korisničkim imenom kao njegovim parametrom.
# usage: create_sftp_user <username>
function create_sftp_user() {
# create user
sudo adduser $1
# prevent ssh login & assign SFTP group
sudo usermod -g sftpusers $1
sudo usermod -s /bin/nologin $1
# chroot user (so they only see their directory after login)
sudo chown root:$1 /home/$1
sudo chmod 755 /home/$1
sudo mkdir /home/$1/uploads
sudo chown $1:$1 /home/$1/uploads
sudo chmod 755 /home/$1/uploads
}
Testirajte kako biste bili sigurni da se korisnik kojeg ste kreirali može povezati s poslužiteljem putem SFTP-a ( Napomena : Povežite se pomoću SFTP- a, a ne FTP-a) .
Napisala Lami Adabonyan