1、添加新用户并设置配置文件
# 创建sftp系统用户并禁用ssh登录
useradd -s /sbin/nologin sftp1
#设置或修改sftp1登录
echo "123456@sftp1" |passwd --stdin sftp1
# 配置sshd_config
vi /etc/ssh/sshd_config
找到如下这行,用#符号注释掉。
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 在文件最后面添加如下几行内容
Subsystem sftp internal-sftp
#匹配用户
Match User sftp1
ChrootDirectory /data/sftp/sftp1
ForceCommand internal-sftp
AllowTcpForwarding no # 非必须
X11Forwarding no # 非必须
#设定Chroot目录权限(必须),用户目录以及组目录以及数据根目录都要设置为755 权限,不要太高,否则可能报Permission denied的异常
mkdir -p /data/sftp/sftp1
chown root:root /data/sftp/sftp1
chmod 755 /data -R
#建立SFTP用户登入后可写入的目录upload
mkdir /data/sftp/sftp1/upload
chown sftp1 /data/sftp/sftp1/upload
#给upload以及下级文件授权777,否则可能报Permission denied的异常
chmod 777 /data/sftp/sftp1/upload -R
#重新启动 sshd 服务:
systemctl restart sshd.service
最后使用flashfxp输入账号sftp1 ,密码: 123456@sftp1 登录即可。
2、添加用户组以及用户并设置配置文件
#创建用户组sftp以及新用户sftp1
groupadd sftp
adduser sftp1
#将用户添加到用户组
useradd -G sftp -s /sbin/nologin sftp1
#设置该用户密码
passwd 123456@sftp1
#禁止该用户shell登录
usermod -s /bin/false sftp1
#设置sshd_config
vi /etc/ssh/sshd_config
找到如下这行,用#符号注释掉。
# Subsystem sftp /usr/libexec/openssh/sftp-server
#找到 Subsystem sftp 这一行,修改成:
Subsystem sftp internal-sftp
Match Group sftp
UsePAM yes
#用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
#设定Chroot目录权限(必须),用户目录sftp1以及组目录sftp以及数据根目录data都要设置为755 权限,不要太高,否则可能报Permission denied的异常
mkdir -p /data/sftp/sftp1
chown root:root /data/sftp/sftp1
chmod 755 /data -R
#建立SFTP用户登入后可写入的目录upload
mkdir /data/sftp/sftp1/upload
chown sftp1 /data/sftp/sftp1/upload
#给upload以及下级文件授权777,否则可能报Permission denied的异常
chmod 777 /data/sftp/sftp1/upload -R
#重新启动 sshd 服务:
systemctl restart sshd.service
最后使用flashfxp输入账号sftp1 ,密码: 123456@sftp1 登录即可。
3、删除用户并重新创建用户
#如果已有用户,清除掉
userdel sftp1
rm -rf /home/sftp1
rm -rf /var/spool/mail/sftp1
#新建sftp组、具体用户sftp1
groupadd sftp
adduser sftp1
useradd -G sftp -s /sbin/nologin sftp1
passwd 123456@sftp1
#修改ssh配置文件
vi /etc/ssh/sshd_config
找到如下这行,用#符号注释掉。
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
UsePAM yes
#用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
#设定Chroot目录权限(必须),用户目录以及组目录以及数据根目录都要设置为755 权限,不要太高,否则可能报Permission denied的异常
mkdir -p /data/sftp/sftp1
chown root:root /data/sftp/sftp1
chmod 755 /data -R
#建立SFTP用户登入后可写入的目录upload
mkdir /data/sftp/sftp1/upload
chown sftp1 /data/sftp/sftp1/upload
#给upload以及下级文件授权777,否则可能报Permission denied的异常
chmod 777 /data/sftp/sftp1/upload -R
#重启ssh
service sshd restart
最后使用flashfxp输入账号sftp1 ,密码: 123456@sftp1 登录即可。