To add a SFTP-only user, you'll need to make sure your SSH config settings are correct, add a new user/group and set permissions for your new user. For step-by-step directions, see below. Omit sudo
if you're logged in as root.
-
Edit
/etc/ssh/sshd_config
and make sure to add the following at the end of the file:Match group filetransfer ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
-
Restart OpenSSH:
sudo /etc/init.d/ssh restart
-
Add new group for SFTP-only users:
sudo addgroup filetransfer
-
Add new user (make sure to switch out username in the following steps to your specified username):
sudo adduser username
-
Add user to new group and set permissions:
sudo usermod -G filetransfer username sudo chown root:root /home/username sudo chmod 755 /home/username
-
Create directories for user and set final permissions:
cd /home/username sudo mkdir folder_1 folder_2 sudo chown username:username *
-
Use Cyberduck or another SFTP client to connect. Go have a beer.
To let users of this group edit the same files that are owned by www-data:
add www-data to filetransfer group
usermod -G filetransfer www-data
cd ./magento
chown www-data:filetransfer ./ -R
(set group read/write permissions)
chmod -R g+rw- ./