小编iml*_*pid的帖子

为SFTP用户配置Chroot

我正在尝试配置 SFTP 服务器以进行一些自动备份。我配置了 Ubuntu 14.04 服务器并取得了部分成功。我想要做的想法是这样的:

  1. 将为每个要备份的特定系统创建一个用户。仅限 SFTP。
  2. 用户将被 Chrooted,并且无法在其主目录之外读取或写入。
  3. 登录后,用户的主页将成为“root”。
  4. 用户将能够将文件上传到根目录。(这就是我被困住的地方。)

我使用以下代码片段在 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 目录和子目录可写之间有什么区别。如有见解,将不胜感激。 …

permissions chroot sftp

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

chroot ×1

permissions ×1

sftp ×1