SFTP ChRoot 导致管道损坏

SFTP ChRoot 导致管道损坏

我有一个网站,我想添加一些对子文件夹的受限访问权限。为此,我决定使用带有 SFTP 的 CHROOT(我主要遵循此链接:http://shapeshed.com/chroot_sftp_users_on_ubuntu_intrepid/

目前,我已经创建了一个用户(sio2104)和一个组(magento)。按照指南操作后,我的文件夹列表如下所示:

-rw-r--r--  1 root root       27 2012-02-01 14:23 index.html
-rw-r--r--  1 root root       21 2012-02-01 14:24 info.php
drwx------ 15 root root     4096 2012-02-25 00:31 magento

如您所见,我已将我想限制用户的文件夹 magento 更改为 root:root,并……顺便说一下,还更改了其他所有内容。此外,在 magento 文件夹中,我还将所有内容更改为 sio2104:magento,以便他们可以访问所需的内容。最后,我将其添加到 sshd_config 文件中:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Match Group magento
        ChrootDirectory /usr/share/nginx/www/magento
        ForceCommand internal-sftp
        AllowTCPForwarding no
        X11Forwarding no
        PasswordAuthentication yes

#UsePAM yes

结果是……好吧,我可以输入我的登录名、密码,但一切都以“管道破裂”错误结束。

$ sftp [email protected]
[....some debug....]
[email protected]'s password: 
debug1: Authentication succeeded (password).
Authenticated to 10.20.0.50 ([10.20.0.50]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
Write failed: Broken pipe
Connection closed

详细模式没有任何帮助。有人知道我做错了什么吗?如果我尝试使用我的个人用户通过 ssh 或 sftp 登录,一切正常。

答案1

我有同样的问题。

chroot-dir 必须设置为所有者 root 和组 root。(chown root:root chroot-dir)

答案2

尝试将默认目录与 chroot 目录不同。

我已将 /home/ftpman 设置为我的默认目录。

vi /etc/passwd

..
ftpman:x:1001:1002::/home/ftpman:/bin/bash

ls -la /home

...
drwxr-xr-x  5 ftpman sftponly 4096 Jun 25 11:56 ftpman

然后我将 chroot 目录设置为 /。对我来说,它有效。

vi /etc/ssh/sshd_config

...
Match Group sftponly
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /
  ForceCommand internal-sftp

答案3

我对此不是 100% 确定,但据我了解,chroot 过程,SSHd 将首先以您的用户身份分叉,然后尝试 chroot。这显然会失败,因为无法sio2104在系统上访问目录。

尝试放宽magento文件夹的文件系统权限(chmod o+rx)。

相关内容