原文链接地址:http://www.msits.com/archives/4477.html
#创建sftp组
groupadd sftp
#创建一个用户zjhp
useradd -g sftp -s /bin/false zjhp
#设置zjhp用户的密码
passwd zjhp
#创建一个sftp的上传目录
mkdir /usr/local/sftp
#修改用户zjhp所在的家目录
usermod -d /usr/local/sftp zjhp
#配置sshd_config
vi /etc/ssh/sshd_config
#找到如下这行,并注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加如下几行
Subsystem sftp internal-sftp #这行指定使用sftp服务使用系统自带的internal-sftp
Match User zjhp #这行用来匹配用户
ChrootDirectory /usr/local/sftp #用chroot将用户的根目录指定到/usr/local/sftp,这样用户就只能在/usr/local/sftp下活动
AllowTcpForwarding no
ForceCommand internal-sftp #指定sftp命令
#保存退出
#设定Chroot目录权限
chown -R root:root /usr/local/sftp
chmod 755 /usr/local/sftp/
#建立SFTP用户登入后可写入的目录
mkdir /usr/local/sftp/zjhp
chown -R zjhp:sftp /usr/local/sftp/zjhp/
chmod 755 /usr/local/sftp/zjhp/
#重启sshd服务
service sshd restart
#关闭SElinux
vi /etc/sysconfig/selinux
#找到如下这行
SELINUX=enforcing
#修改为
SELINUX=disabled
#保存退出
设置完成后发现 无法读写家目录下文件,没有办法上传。发现是SElinux禁止,如果关闭SElinux作为服务器来说有点风险。经过验证设置 SElinux如下:
# getsebool -a|gressh_ 发现 ssh_chroot_full_access --> off 开启这项即可 setsebool -P ssh_chroot_full_access 1