Linux设置SFTP目录权限
限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。
1..创建新用户,禁止ssh登录
useradd -s /sbin/nologin -M ywj
2.设置用户密码
passwd ywj123
3.创建用户的根目录,用户就只能在此目录下活动
mkdir /home/ywj
4.设置目录权限,目录的权限设定有两个要点:
目录开始一直往上到系统根目录为止的目录拥有者都只能是root
目录开始一直往上到系统根目录为止都不可以具有群组写入权限
chown root:root /home/ywj
chmod 755 /home/ywj
5.配置sshd_config
vim /etc/ssh/sshd_config
6.修改为下面内容,保存退出
#注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加在配置文件末尾
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match User ywj #匹配用户
ChrootDirectory /home/ywj #用chroot将指定用户的根目录
ForceCommand internal-sftp #指定sftp命令
X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
AllowTcpForwarding no
匹配多个用户可以将
Match User ywj
ChrootDirectory /home/ywj
ForceCommand internal-sftp
在添加一遍,更改对应的用户名和根目录
7.重启sshd服务
service sshd restart
8.测试:
用户登录后进入的是/home/ywj即用户根目录,根目录是无法写入的,所以先用root用户在/home/ywj新建一个目录
mkdir /home/ywj/upload
修改目录所有者和权限
chown upload:upload /home/ywj/upload
chmod 777 /home/ywj/upload
sftp登录ywj账户,进入upload目录下,可对文件进行操作

浙公网安备 33010602011771号