ssh -Vgroupadd sftpuseradd -g sftp -s /sbin/nologin silentmkdir -p /data/sftp/silent
# 指定用户 silent 的 home 为 /data/sftp/silent
usermod -d /data/sftp/silent silentvi /etc/ssh/sshd_config找到如下这行,用#符号注释掉,大致在文件末尾处。
Subsystem sftp /usr/libexec/openssh/sftp-server在文件最后面添加如下几行内容,然后保存。
Subsystem sftp internal-sftp
Match Group sftp
# 用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding nochown root:sftp /data/sftp/silent
chmod 755 /data/sftp/silent照上面设置后,在重启 sshd 服务后,用户 sftp1 已经可以登录(只能使用 sftp 登录,使用 ssh 登录不了)。但使用 chroot 指定根目录后,根应该是无法写入的,所以要新建一个目录供 sftp1 上传文件。这个目录所有者为 sftp1 ,所有组为sftp,所有者有写入权限,而所有组无写入权限。命令如下:
mkdir /data/sftp/silent/upload
chown silent:sftp /data/sftp/silent/upload
chmod 755 /data/sftp/silent/uploadvi /etc/selinux/config将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。 在输入命令
setenforce 0service sshd restart sftp silent@127.0.0.1