Εισαγωγή
Ορισμένα σενάρια απαιτούν από εσάς να δημιουργήσετε χρήστες με πρόσβαση ανάγνωσης και εγγραφής σε έναν μόνο κατάλογο μόνο μέσω FTP. Αυτή η εγγραφή θα σας δείξει πώς να δημιουργήσετε τέτοιους χρήστες. Δεν θα μπορούν να πλοηγηθούν εκτός του οικιακού τους καταλόγου, να συνδεθούν στον διακομιστή μέσω SSH ή να εκτελέσουν εντολές φλοιού.
Ρύθμιση ομάδας και υπηρεσίας SFTP
Δημιουργία ομάδας sftpusers.
sudo groupadd sftpusers
Σχολιάστε τη ρύθμιση απενεργοποίησης της πρόσβασης SFTP από το αρχείο διαμόρφωσης sshd.
sudo sed -i "s/Subsystem sftp \/usr\/lib\/openssh\/sftp-server/#Subsystem sftp \/usr\/lib\/openssh\/sftp-server/" /etc/ssh/sshd_config
Ανοίξτε το αρχείο διαμόρφωσης sshd sudo nano /etc/ssh/sshd_config, προσθέστε το παρακάτω απόσπασμα και πραγματοποιήστε έξοδο (Ctrl+X -> Y -> Πατήστε 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
Επανεκκινήστε το ssh.
sudo service ssh restart
Δημιουργία χρηστών
Επαναλάβετε την παρακάτω διαδικασία για κάθε χρήστη μόνο SFTP που θέλετε να προσθέσετε στον διακομιστή.
# 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
Μπορείτε να κάνετε τη δημιουργία χρηστών πιο γρήγορη τυλίγοντας το παραπάνω σε μια συνάρτηση και προσθέτοντάς το στο bashprofile σας εκτελώντας το (1) sudo nano ~/.bash_profile; (2) προσθέτοντας το απόσπασμα παρακάτω σε αυτό. (3) τρέξιμο source ~/.bash_profile.
Μετά από αυτό, η δημιουργία ενός νέου χρήστη SFTP γίνεται τόσο εύκολη όσο η εκτέλεση της εντολής create_sftp_userμαζί με ένα όνομα χρήστη ως παράμετρό της.
# 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
}
Δοκιμάστε να βεβαιωθείτε ότι ο χρήστης που δημιουργήσατε μπορεί να συνδεθεί στον διακομιστή μέσω SFTP ( Σημείωση : Συνδεθείτε χρησιμοποιώντας SFTP και όχι FTP) .
Σε σενάριο Lami Adabonyan