使用root账号在centos下新建一个普通用户,并限制它的访问目录,只能访问特定目录.
例如使用nginx发布静态的网站时需要上传静态文件,可以创建一个普通用户用来传文件:
1、 新建用户组
groupadd webgroup
mkdir /usr/local/nginx/html //让特定用户访问/usr/local/nginx/html 有就不用创建了
2、新建用户并将用户添加到分组当中
//-d宿主目录 -g 用户(webdeployer)分到哪个组(webgroup)
useradd -d /usr/local/nginx/html -g webgroup webdeployer
3、给刚新建的用户(webdeployer)设置密码
passwd webdeployer
接下来输入需要设置的密码
4、看下用户是否设置成功了
groups webdeployer
5、使用root账号 修改 sshd_config, 限制 ssh 用户访问指定目录
vim /etc/ssh/sshd_config
在打开的文件最后加入以下内容:
Match group visitors
ChrootDirectory /usr/local/nginx/html
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
这就是给 webgroup 分组用户设置访问权限,只给他们通过 sftp 访问 /usr/local/nginx/html 的权限,不能直接通过 ssh 登录服务器
5、记得把
Subsystem sftp /usr/libexec/openssh/sftp-server
改成
Subsystem sftp internal-sftp
最后把 AddressFamil/inet 注释掉,没有就不管了
6、 重启 sshd 服务
systemctl restart sshd
7. 给目录配置权限
chmod -R 777 /usr/local/nginx/html
不然用户webdeployer 无权限访问!
8. 测试登录
用刚创建的用户webdeployer 通过 sftp 登录,登录后用户目录就是:/usr/local/nginx/html