How to restrict users to SFTP only instead of SSH

Sometimes you want to have users, that have access to files on your server, but don’t want them to be able to log in and execute commands on your server.

This is done quite easily.

Add user as usually and assign him a password. Then run the following command (replace the ‘username’ with real user name):

root@host # usermod -s /usr/lib/sftp-server username

This changes user’s shell to sftp-server.

The last step for this to work is to add ‘/usr/lib/sftp-server‘ to /etc/shells to make it a valid shell, eg. like this:

root@host # echo '/usr/lib/stfp-server' >> /etc/shells

There. Now you’ve setup a user who can only access your server with SFTP.


  1. john 4. January 2014
    • Hans-Henry JakobsenAuthor 4. January 2014
  2. john 4. January 2014