Skip to content

Instantly share code, notes, and snippets.

@ohartl
Last active March 8, 2016 17:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ohartl/f6aab7ae3bb0909b0ef3 to your computer and use it in GitHub Desktop.
Save ohartl/f6aab7ae3bb0909b0ef3 to your computer and use it in GitHub Desktop.
create user that is restricted to sftp only, is jailed (chroot) and can still access certain directories outside his jail.
#!/bin/sh
# add group
groupadd sftp-fileshare
# add user
mkdir /home/sftp-fileshare-user1
chown root:root /home/sftp-fileshare-user1
chmod 0755 /home/sftp-fileshare-user1
useradd --home /home/sftp-fileshare-user1 --shell /bin/false sftp-fileshare-user1
usermod sftp-fileshare-user1 -g sftp-fileshare
passwd sftp-fileshare-user1
# mount a directory outside jail
sudo mount --bind /var/www/somedir /home/sftp-fileshare-user1/somedir/
# mount needs to be added to fstab, so its created again after restart
chown -R sftp-fileshare-user1:sftp-fileshare /home/sftp-fileshare-user1/somedir/
# clear profiles etc, no need for them
cd /home/sftp-fileshare-user1
rm .*
...
/var/www/somedir /home/sftp-fileshare-user1/somedir/ none bind 0 0
...
...
AllowUsers ... sftp-fileshare-user1
Subsystem sftp internal-sftp
Match Group sftp-fileshare
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment