最近,在公司托管的服务器经销商那边看到过通过账号可以限定账户只允许访问指定的目录,于是乎,自己也做了测试在这里和大家总结一下:
首先创建一个目录用于作为你被访问的目录,
mkdir /data/myweb
然后创建用户,
useradd -d /data/myweb test00 #其中-d是指定用户的主目录 -m是创建用户主目录
接下来就是编辑/etc/ssh/sshd_config文件了,需要添加的内容如下:(如果用重名的文件记得注释掉,其中Subsystem sftp /usr/lib/openssh/sftp-server 也需要注释)
Subsystem sftp internal-sftp
Match User test001 # Match指令主要用于条件匹配。这里匹配用户,也可以指定Group
ChrootDirectory /data/ # 如果填写%h,则限制sftp的活动目录在其Home 目录,这里填写主目录的上一级目录
X11Forwarding no # 禁止X11转发
AllowTcpForwarding no # 禁止tcp转发
ForceCommand internal-sftp # 限制用户除了能执行sftp中允许的命令外,其他命令啥也执行不了
然后重启sshd ,/etc/init,d/ssh restart 发现报错, Failed to start OpenBSD Secure Shell server,怎么都重启不了,后来查看报错信息发现PAM不可用,于是 把usePAM yes禁用掉就可了.
现在打开你的远程连接工具进行测试一下吧!
备注:如果不允许账户ssh登录服务器只需要在/etc/passwd文件下将账户的shell 设置为/usr/sbin/nologin即可;
进入目录中就有权限了!