注意两点:
一是禁止该用户通过ssh登录,二是不需要创建家目录。家目录简单来说,就是在/home下的用户命令,默认每个用户在/home中都是有与用户名一样的文件夹。
创建组:groupadd sftp
创建用户:useradd -g sftp -s /sbin/nologin sftpuser
设置密码:passwd sftpuser
创建成功:passwd :all authentication tokens updated successfully。
创建目录:mkdir /home/sftp。确保该目录及该目录以上的系统根目录的拥有者都只能是root用户,
目录用户:chown root:sftp /home/sftp;
写入权限:chmod 755 /home/sftp. 注:该目录权限最大为755,设置成777会报错
创建用户sftpuser根目录,目录名为用户名
mkdir /home/sftp/sftpuser
设置sftpuser目录权限: chown -R sftpuser:sftp /home/sftp/sftpuser
(注:设置用户sftpuser,如果设置拥有者为root,表示该目录sftpuser没有权限读写,在该目录下建立其它目录,赋权给sftpuser用户读写权限;
chmod -R 755 /home/sftp/sftpuser 注:这里的目录sftpuser 权限也只能是755,否则无法限制目录。
配置sshd_config: vi /etc/ssh/sshd_config
修改如下内容,并保存退出
#注释掉这行 #Subsystem sftp /usr/libexec/openssh/sftp-server #添加 Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp Match User sftpuser #匹配用户,如果要匹配多个组,多个组之间用逗号分割 ChrootDirectory /home/sftp #指定sftpuser用户只能ftp到本目录 Match User test2#设置两个账号 ChrootDirectory /home/aa X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉 AllowTcpForwarding no ForceCommand internal-sftp #指定sftp命令