服务需求
- 用户可以使用 FTP 服务
- 用户不能使用 Shell 服务
- 用户只能访问指定的目录
版本需求
需要 OpenSSH 20080518 或之后版本
配置方法
sudo vim /etc/ssh/sshd_config
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo groupadd sftp
sudo /etc/init.d/ssh restart
增加用户
sudo useradd -d /home/sftp -m -g sftp -s /bin/false sftp
sudo chown root:root /home/sftp
sudo chmod 755 /home/sftp
sudo mkdir /home/sftp/vroot
sudo chown sftp:sftp /home/sftp/vroot
sudo passwd sftp
由于只能 chroot 到属于 root 的,权限是 755 的目录,所以用户需要在主目录中新建一个目录并设置正确的属性用于上传。
Over!
好哦,下次咱自己的服务器就用这个
我疯了
好容易把RHEL5的OpenSSH从4折腾到5让他原生支持chroot
但是发现一个非常崩溃的问题
我把sftp的user的home定位到web服务的attachement目录后,发现sftp会显示验证失败。默认的home目录就没问题,查了一下,chroot的目录必须是root 755权限,,可是我的apache为了安全,都是运行在nobody用户下面的,这个问题非常纠结的,o(╯□╰)o