我想创建一个新用户并限制该用户只能进行 sftp 访问,同时该用户也被限制在目录内并且不能访问根目录。
我执行了以下步骤:
1) 创建一个名为 的新组sftp-users
。
2)创建一个名为的新用户myUser
并设置其密码。
3)已添加myUser
到sftp-users
群组。
4)/var/www/example.com
是我想要直接限制此用户 SFTP 访问的项目。我使用usermod
命令将此目录设置为 的主目录myUser
。
5)用于usermod -s /sbin/nologin myUser
限制shell访问
6)在/etc/ssh/sshd_config
文件中我注释了以下行
#Subsystem sftp /usr/lib/openssh/sftp-server
并添加了以下行
Subsystem sftp internal-sftp
最后在文件底部我添加了以下规则
Match Group sftp-users
ChrootDirectory %h
ForceCommand internal-sftp
现在,当我尝试使用以下方式登录时:
ssh myUser@localhost
输入密码后出现以下错误
packet_write_wait: Connection to 127.0.0.1 port 22: Broken pipe
Couldn't read packet: Connection reset by peer
目录的所有权详细信息/var
:
drwxr-xr-x 14 root root 4096 Jan 15 2018 ./
drwxrwxr-x 23 root root 4096 Jul 4 06:08 ../
drwxr-xr-x 2 root root 4096 Jul 20 06:25 backups/
drwxr-xr-x 12 root root 4096 Jun 23 17:00 cache/
drwxrwxrwt 2 root root 4096 Jan 12 2018 crash/
drwxr-xr-x 53 root root 4096 Jun 23 17:00 lib/
drwxrwsr-x 2 root staff 4096 Apr 12 2016 local/
lrwxrwxrwx 1 root root 9 Jan 12 2018 lock -> /run/lock/
drwxr-xr-x 11 root syslog 4096 Jul 20 06:25 log/
drwxrwsr-x 2 root mail 4096 Jan 12 2018 mail/
drwxr-xr-x 3 root root 4096 Jun 23 16:14 opt/
lrwxrwxrwx 1 root root 4 Jan 12 2018 run -> /run/
drwxr-xr-x 2 root root 4096 Nov 30 2017 snap/
drwxr-xr-x 5 root root 4096 Jan 15 2018 spool/
drwxrwxrwt 4 root root 4096 Jul 20 01:45 tmp/
drwxr-xr-x 4 root root 4096 Jul 9 08:05 www/
目录的所有权详细信息/var/www
:
drwxr-xr-x 4 root root 4096 Jul 9 08:05 ./
drwxr-xr-x 14 root root 4096 Jan 15 2018 ../
drwxr-sr-x 6 myUser user2 4096 Jul 18 15:36 example.com/