Linux 限制SFTP用户只能访问某个目录

需求:其他机器需要向我方服务器传数据,要求只能看我方指定目录
目录最好放在/var/opt/sftp/,如果存储不够可以软链接过去

  1. 新建用户并设置密码

groupadd boss_user

useradd -d /data/boss_user -g boss_user boss_user

passwd boss_user

  1. 设置sshd配置文件

cd /etc/ssh/

cp sshd_config sshd_config.back // 备份

vi sshd_config

#下面这行需要注释、否则会报错
# Subsystem     sftp    /usr/libexec/openssh/sftp-server 

#新增以下字段
Subsystem sftp internal-sftp 
Match User boss_user
ChrootDirectory /data/ftp/
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

boss_user是我们要配置的用户
/data/ftp/是我们要制定的目录

  1. 重启sshd服务

service sshd restart

其实我到这一步,已经成功实现了Linux 限制SFTP用户只能访问某个目录​,我的需求是只允许boss_user用户访问/data/ftp/这个目录

  1. 创建目录并设置权限

mkdir /data/ftp

chown -R root:boss_user /data/ftp/

chmod -R 750 /data/ftp/

至关重要的是:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。

注意:由于权限是755,导致非root用户都无法在目录中写入文件,所以需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。

如:

[root@hadoop100 ssh]# cd /data/ftp/
[root@hadoop100 ftp]# ll
total 0
[root@hadoop100 ftp]# mkdir testdir
[root@hadoop100 ftp]# chmod -R 755 testdir/
[root@hadoop100 ftp]# chown boss_user:boss_user /data/ftp/testdir/
  1. 测试一下
    sftp测试只有一个“/”目录,根目录下只有“testdir“
[dop@hadoop101 ~]$ sftp boss_user@192.168.10.100
boss_user@192.168.10.100's password:
Connected to 192.168.10.100.
sftp> ls
testdir
sftp> pwd
Remote working directory: /

ssh是拒绝的

[dop@hadoop101 ~]$ ssh boss_user@192.168.10.100
boss_user@192.168.10.100's password:
This service allows sftp connections only.
Connection to 192.168.10.100 closed.

常见报错:

  1. 登陆时报错:Write failed: Broken pipe, Couldn’t read packet: Connection reset by peer

原因:权限的问题,必须设置目录为属root用户,属sftp用户组。权限为750

  1. 重启sshd时报错:Starting sshd: /etc/ssh/sshd_config line 141: Subsystem ‘sftp’ already defined.

原因:忘记把Subsystem注释,导致/etc/ssh/sshd_config同时存在有两个Subsystem节点

  1. /etc/ssh/sshd_config line 148: Directive ‘UseDNS’ is not allowed within a Match block

把添加的写在文件最后就好了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值