Introduksjon
Enkelte scenarier krever at du oppretter brukere med lese- og skrivetilgang til én enkelt katalog kun via FTP. Denne artikkelen vil vise deg hvordan du oppretter slike brukere. De vil ikke kunne navigere utenfor hjemmekatalogen, logge på serveren via SSH eller utføre skallkommandoer.
Konfigurer SFTP-gruppe og -tjeneste
Opprett sftpusers-gruppe.
sudo groupadd sftpusers
Kommenter ut-innstilling som deaktiverer SFTP-tilgang fra sshd-konfigurasjonsfilen.
sudo sed -i "s/Subsystem sftp \/usr\/lib\/openssh\/sftp-server/#Subsystem sftp \/usr\/lib\/openssh\/sftp-server/" /etc/ssh/sshd_config
Åpne sshd-konfigurasjonsfilen sudo nano /etc/ssh/sshd_config, legg til tekstbiten under og avslutt (Ctrl+X -> Y -> Trykk 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
Start ssh på nytt.
sudo service ssh restart
Opprette brukere
Gjenta prosessen nedenfor for hver eneste SFTP- bruker du vil legge til serveren.
# 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
Du kan gjøre det raskere å opprette brukere ved å pakke over til en funksjon og legge den til bashprofilen din ved å (1) kjøre sudo nano ~/.bash_profile; (2) legge til kodebiten nedenfor til den; (3) løping source ~/.bash_profile.
Etter det blir det like enkelt å opprette en ny SFTP-bruker som å kjøre kommandoen create_sftp_usersammen med et brukernavn som parameter.
# 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
}
Test for å sikre at brukeren du opprettet kan koble til serveren via SFTP ( Merk : Koble til med SFTP og ikke FTP) .
Skrevet av Lami Adabonyan