iml*_*pid 5 permissions chroot sftp
我正在尝试配置 SFTP 服务器以进行一些自动备份。我配置了 Ubuntu 14.04 服务器并取得了部分成功。我想要做的想法是这样的:
我使用以下代码片段在 sshd_config 中创建 Chroot,如下所示:
Match Group sftpbackup
ChrootDirectory /srv/sftpbackup/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
然后我根据要求设置 /srv/sftpbackup 的权限。
# ls -l
total 4
drwxr-x--- 3 root sftpbackup 4096 Jan 5 15:29 user1
#
Run Code Online (Sandbox Code Playgroud)
现在,用户可以登录但无法上传文件(权限被拒绝)。如果我将目录所有权更改为如下所示:
# ls -l
total 4
drwxrwx--- 3 user1 sftpbackup 4096 Jan 5 15:29 user1
#
Run Code Online (Sandbox Code Playgroud)
然后用户无法登录,从auth.log:
sshd[14835]: fatal: bad ownership or modes for chroot directory "/srv/sftpbackup/user1"
Run Code Online (Sandbox Code Playgroud)
看起来,如果用户的主目录是 SFTP chroot,则 root 必须拥有该目录,因此必须创建一个子目录,以便用户可以对其进行写入。
有没有办法让根可写?看了各种网站,似乎都没有办法实现我想要的。我不太明白用户可写 chroot 目录和子目录可写之间有什么区别。如有见解,将不胜感激。
注意:我的目标是创建一个可以通过各种设备存储备份的服务器。这些设备将由第三方供应商配置,因此我试图让事情变得简单(每个设备一个用户名,登录后所有文件都转到“根”)和安全(创建的用户将拥有最小的权限)服务器的权限)尽可能。如果我的愿望有点僵化,我很抱歉。
内部 sftp 要求 chroot 用户 home 驻留在 root 拥有的目录中:
/some/path/root-owned/user-dir1
/user-dir2
Run Code Online (Sandbox Code Playgroud)
root 拥有的目录应具有 555 权限,用户目录应由 root 创建并由特定用户拥有。在子目录中,用户可以执行任何操作,但不能删除或重命名 user-dir[12]。
这是内部 sftp 限制。
归档时间: |
|
查看次数: |
13909 次 |
最近记录: |