linux设置sftp

Jan 4, 2023

首先链接服务器,进入终端设置:

1、创建用户组

groupadd sftp(组名)           //假定你设置为:sftp

2、创建用户,且划进sftp用户组里:

useradd -g sftp(组名) -d /目录A/目录B -M -s /sbin/nologin dog(用户名)

3、为dog设置密码:

passwd dog

——终端会显示让你输入密码,及再次输入密码,两次一样(8位数)

4、设置权限(重要注意点):
a、上面2里指定的“/目录A/目录B”,是指主目录,不是所创建用户能操作的目录。
b、以下开始创建的“目录C”才是用户能操作的目录

mkdir /目录A/目录B/目录C
chown dog:sftp /目录A/目录B/目录C
chmod 755 /目录A/目录B/目录C

5、修改配置文件(重点注意)

vim /etc/ssh/sshd_config

——打开文件后,在末尾作如下修改

#Subsystem  sftp /usr/libexec/openssh/sftp-server
此行注释掉(前面打#号)

——以下新增代码(重点在ChrootDirectory处),需要写主目录,即:/目录A/目录B/

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /目录A/目录B/
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

esc 退出编辑模式,再按 :wq + 回车,退出到命令行来重启ssh服务:

service sshd restart

BDY

userdel -r -f 用户名         //删除用户
id 用户名                    //可查看用户的uid
// 结果如:uid=1001(dog) gid=1001(sftp) 组=1001(sftp)
usermod -d /目录A/目录B/目录D -u 1001 dog  //修改用户的操作目录
ll                         //可查看所在目录的权限情况