天天记事 467 / 2021-09-03 18:37:14
操作步骤:
1. 创建用户组
groupadd sftpusers
2. 新增受限sftp用户ftpuser,不运行执行shell脚本,同时指定用户组和工作目录
useradd -s /bin/false -G sftpusers ftpuser -d /opt/workspace
3. 设置用户密码
passwd ftpuser
4. 修改用户目录拥有者
chown root /opt/workspace
5. 修改用户目录权限掩码
chmod 755 /opt/workspace
6. 修改sshd配置文件
vim /etc/ssh/sshd_config
找到
Subsystem sftp /usr/libexec/openssh/sftp-server
注释掉,并新增一行配置为如下内容
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
跳转到文件末尾(注意:一定是文件末尾末尾末尾...),新增如下配置
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
保存并退出
7. 重启sshd服务
service sshd restart
8. 登录验证
1)、ssh验证登录(失败,不允许执行脚本)
ssh ftpuser@<IP>[:<port>]
2)、sftp验证登录(成功,目录根路径/指定到操作系统的/opt/workspace)
sftp ftpuser@<IP>[:<port>]
9. 额外说明,创建用户时,会在用户目录下创建几个隐藏文件(点开头的文件,如.bashrc等),为保证目录的清洁,可清理掉。
注意:使用新建SFTP账号登录服务器后,目录直接指向/opt/workspace,在此目录当前用户是无法执行创建文件夹和新增文件等操作的,此时的做法是:先使用root在该目录创建子目录,创建子目录后,使用chown命令将目录权限授权给当前用户,如:
mkdir /opt/workspace/www
chown ftpuser /opt/workspace/www/
差不多了,够用了!