web-dev-qa-db-ja.com

SFTPChRootの結果パイプが壊れます

サブフォルダへの制限付きアクセスを追加したいWebサイトがあります。このために、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

ご覧のとおり、私はroot:rootをjailしたいフォルダーmagentoをchownしました-ユーザーと...ちなみに他のすべて。また、magentoフォルダーで、sio2104:magentoにすべてをchownして、必要なものにアクセスできるようにします。最後に、これを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でログインしようとすると、すべてが正常に動作します。

7
Patrick Pruneau

私も同じ問題を抱えていました。

Chroot-dirは、所有者ルートとグループルートに設定する必要があります。 (chown root:root chroot-dir)

5
AbstractError

デフォルトのディレクトリを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
4
GabrielC

100%確実ではありませんが、chrootプロセスを理解している限り、SSHdはまずユーザーとしてforkし、次にchrootを試みます。システム上のsio2104でディレクトリにアクセスできないため、これは明らかに失敗します。

magentoフォルダー(chmod o+rx)のファイルシステム権限を緩和してみてください。

1
gertvdijk