Linux sftp限制用户访问指定目录(亲测可用)

网上找了好多,测试了半天,总结一下
1:创建用户

useradd test

2:设置密码

passwd test

输入之后会跳出下面的参数,输入自己的密码

New password:123456
BAD PASSWORD: The password is a palindrome
Retype new password: 123456

3:修改sshd配置文件
vim /etc/ssh/sshd_config (没有vim用vi也一样)
从第137行开始覆盖(如果之前没有修改过,大多数文件内容都是一样的,如果不一样,就找到#override default of no subsystems这句话,开始覆盖:弃用,往下看

#override default of no subsystems
#这行注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
#Example of overriding settings on a per-user basis
#Match User anoncvs
#X11Forwarding no
#AllowTcpForwarding no
#PermitTTY no
#ForceCommand cvs server
Subsystem sftp internal-sftp
#输入你的用户名 我的是test
Match User test
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
#输入可以访问的目录
ChrootDirectory /test
#这行注释掉
#UseDNS no
#这行注释掉
#AddressFamily inet
#这行注释掉
#SyslogFacility AUTHPRIV
PermitRootLogin yes
PasswordAuthentication yes

2020-12-29 更新:经过测试发现,这个时候root用户竟然也无法登录了…百度了好久,虽然可以解决登录的问题,但是新建子账号依然无法用root登录,经过反思在上面的参数基础上,在加入root账户访问权限就可以了
如下:

Match User root
ChrootDirectory /

所以此时的完整参数是:

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs

#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server
Subsystem sftp internal-sftp
Match User test
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /test

Match User root
ChrootDirectory /

#UseDNS no
#AddressFamily inet
#SyslogFacility AUTHPRIV
PermitRootLogin yes
PasswordAuthentication yes

4:重启ssh服务

systemctl restart sshd

重启成功是什么都不返回的,如果返回来就是配置文件报错了

5:创建目录

mkdir /test
chown -R root:test /test
chmod -R 750 /test

切记这块的主目录必须是root:test

6、此时就可以登录了,但是---------这个时候只是能访问该文件夹,还不能做任何操作,所以需要在test文件夹下在创建一个文件夹,且给对应权限;

mkdir /test/test
chown -R test:test /test/test
chmod -R 755 /test/test

切记权限只能给到755,否则连接不上

这个时候就可以在test/test的文件夹下进行操作了
测试:

sftp test@xxx.xxx.xxx.xxx

输入密码

test@8.131.240.89's password: 123456
sftp> cd test/
sftp> mkdir 123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋秋秋秋秋雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值