Linux下设置SFTP用户访问目录权限
一、创建新用户,并且设置目录,禁止shell登录
useradd -m -d /home/wwwroot/licnlt -s /usr/sbin/nologin licnlt
nologin要事先确认位置,通常在/usr/sbin或/sbin下(可在/etc/passwd中查看sshd的nologin配置)
二、设置用户密码
passwd licnlt
三、将该用户目录所有者设置成root
chown root:root /home/wwwroot/licnlt/ #目录只能由root所有
chmod 755 /home/wwwroot/licnlt #目录不可以有群组写入权限
四、修改/etc/ssh/sshd_config文件
#注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加在配置文件末尾
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match User licnlt #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /home/wwwroot/licnlt/ #用chroot将指定用户的根目录,chroot的含义
五、重启ssh服务
service sshd restart
六、用户登录后进入的是/home/wwwroot/licnlt 为用户根目录,根目录是无法写入的,所以先用root在/home/wwwroot/licnlt/下新建www目录,并设置权限777
mkdir /home/wwwroot/licnlt/www
修改目录所有者和权限
chown licnlt:licnlt /home/wwwroot/licnlt/www
chmod 777 /home/wwwroot/licnlt/www