最近有这样一种需求。

  1. 用户账户只能sftp,不能ssh。
  2. 用户只能在指定目录内操作。
  3. 指定目录内包含多个其他位置的目录。

不能用ssh,那就使用sftp来实现,提供sftp的服务有vsftpd和系统自带的internal-sftp。

具体操作如下:

1. 创建新用户,指定目录,禁止ssh登录。

2. 设置密码

3. 配置sshd

修改并新增以下内容:

4. 配置权限

经过前三步,使用winscp或者FileZilla等软件登录时,可能会登录失败。

登录失败的原因一般是目录权限问题,查阅文档之后发现ChrootDirectory是有权限要求的。

  • ChrootDirectory设置的目录权限及每一级父目录权限,属主和属组必须是root
  • ChrootDirectory设置的目录权限及每一级父目录权限,权限最大只能设置755

/home/derek目录设置成root:root

/home/derek目录权限设置成755

5. 挂载目录

由于实际上需要管理的目录并非 /home/derek,而是位于多个位置的多个目录,sftp并不支持软连接(ln -s),所以用挂载的方式加目录进来。

配置开机挂载。

添加以下内容

6. 配置挂载目录权限

如果不配置挂载目录的权限,可能会上传下载失败,并提示权限不足。

在不能直接修改原目录及文件权限的情况下,可以使用acl来附加扩展权限。

可按照以下例子灵活配置。

 

版权声明
转载保留版权: 大D技研室 | 《SFTP限制用户活动目录并挂载指定目录》
本文链接地址:https://www.dadclab.com/archives/7620.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , 标签