sftp指定访问目录

默认连接都是访问根目录,不符合某些需求,所以进行目录限制。

现在需求是,登录后限制在/app,可是由于权限原因,不能ChrootDirectory直接配置/app,不然不能连接,所有进行连接后跳转到/app目录。

主要对sshd的配置
编辑配置文件

vim /etc/ssh/sshd_config

将下面的内容加到最后,保存

#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp 
Match Group sftp  #限制sftp组
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp -d /app  #跳转到app目录
    ChrootDirectory /  #指定根目录

Match User ldd  #限制用户
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp -d /app 
    ChrootDirectory /

重启sshd

systemctl restart sshd

注意点。目录必须是ChrootDirectory指定的目录必须是root所有,而且必须是755权限,否则sftp连不上

SFTPSSH File Transfer Protocol)是一种通过 SSH 协议传输文件的安全协议。为了提高系统的安全性并限制用户的访问范围,通常需要对 SFTP 用户进行特定目录访问权限设置。 ### 设置步骤 1. **创建独立的用户组** 首先可以为所有 SFTP 访问者建立一个单独的用户组,例如 `sftpusers` 组: ```bash sudo groupadd sftpusers ``` 2. **配置主目录及权限** - 创建专门用于存放 SFTP 文件交换区域的基础目录,并赋予适当的权限。 假设我们想要让用户只能访问 `/srv/sftp/userdata` 目录下的内容而不允许浏览其他地方,则可按如下操作: ```bash # 创建目标存储路径 sudo mkdir -p /srv/sftp/userdata # 修改属主给 root 确保安全 sudo chown root:root /srv/sftp/userdata # 设定合适的读写权限位 sudo chmod 750 /srv/sftp/userdata ``` 3. **调整 vsftpd 或 OpenSSH 的配置文件** 如果你是基于 VSFTPD 提供服务的话,那么就编辑其配置文件;如果是利用系统自带的 openssh 实现 SFTP 功能则直接修改对应的 sshd_config: 对于openssh来说就是编辑/etc/ssh/sshd_config添加或者更改如下几行: ```plaintext Match Group sftpusers ChrootDirectory %h # 将会把根目录固定到用户的家目录下 ForceCommand internal-sftp # 强制仅限运行内部命令而非shell交互模式 AllowTcpForwarding no # 关闭端口转发功能以防万一 X11Forwarding no # 同上 ``` 4. **重启 SSH 服务应用新规则** 完成上述设定之后记得重启相应的守护进程使得新的策略生效: ```bash sudo systemctl restart sshd ``` 5. **分配用户至指定群组** 最后再将期望受到此政策影响的新旧账户加入事先准备好的`sftpusers`之中即可完成整个流程: ```bash usermod -aG sftpusers username ``` 6. **验证设置结果是否正常工作** 最后别忘了测试一下以确认一切按照预期运转良好! 以上便是Linux环境中针对单个或一批量普通非特权身份成员实施受限资源控制的一种常见做法了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值