chrootディレクトリコンポーネントの不正な所有権またはモード


57

ユーザーMY_USERを作成しました。彼のホームディレクトリを/ var / www / RESTRICTED_DIRに設定します。これは、制限する必要があるパスです。それからsshd_configを編集して設定しました:

Match user MY_USER
  ChrootDirectory /var/www/RESTRICTED_DIR

その後、sshを再起動しました。RESTRICTED_DIRのMY_USER所有者(およびグループ所有者)を作成し、755に変更しました。

Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER

sshd_configから2行を削除すると、ユーザーは正常にログインできます。もちろん、すべてのサーバーにアクセスできます。どうしたの?私はRESTRICTED_DIRをrootにチャネリングしようとしました(誰かがこの同じ問題を解決したことをどこかで読んだので)。運がありません。

回答:


73

以下からのページman

ChrootDirectory
認証後にchroot(2)するディレクトリのパス名を指定します。 パス名のすべてのコンポーネントは、他のユーザーまたはグループが書き込みできないルート所有のディレクトリでなければなりません。chrootの後、sshd(8)は作業ディレクトリをユーザーのホームディレクトリに変更します。

私の推測では、パス上の1つ以上のディレクトリがこれらの要件を満たしていません(私の疑いはwww、rootではなくWebユーザーが所有または書き込み可能です)。
前に戻って指示に従い、太字の斜体で示された上記の要件が満たされていることを確認します。


これは私を怒らせています。「chown root:root -R / var / www」を実行しました。「chmod 775 -R / var / www /」; 「usermod -a -G root www-data」。しかし、私はまだMY_USERでログインすることはできません
MultiformeIngegno

1
要件は、(パス・コンポーネント上にある//var/var/www、および/var/www/RESTRICTED_DIR上記のすべてのセキュリティ要件を満たす必要があります)。本当のchroot(manページを確認) -ユーザーのホームディレクトリが存在する必要がchroot環境内必見として、/bin&あなたのユーザーが...必要になります他のすべてのもの
voretaq7

2
OK!解決しました。chrooted dirを1レベル上に設定しました。次に、元のchrooted_dirに777個のパーマを付与しました。それは働いています:)
MultiformeIngegno 14年

1
マンページに書かれていることにも関わらず、グループを「root」に設定しても、機能する前にgwパーミッションを設定する必要がありました(Ubuntu 14.04)。マンページには、パス名のすべてのコンポーネントは、他のユーザーまたはグループがまったく書き込みできないルート所有ディレクトリでなければならないことを示す必要があります sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
-mmell

3
これはかなり古いことを知っていますが、/var/wwwApacheを壊す可能性のあるパスのアクセス許可を直接変更する代わりに、sftpディレクトリを別のパスに入れてから、ApacheのURLマッピングを使用して他のディレクトリを指す方がはるかに良いでしょう。以下のドキュメントを確認してくださいhttpd.apache.org/docs/2.4/urlmapping.htmlFiles Outside DocumentRoot
Daniel

32

ChrootDirectoryディレクトリはルートによって所有され、755モードが必要です。

sudo chown root:root /var/www/RESTRICTED_DIR
sudo chmod 755 /var/www/RESTRICTED_DIR

[OK]を、今には、すべてのファイル/var/www/RESTRICTED_DIRが所有しなければならないMY_USERに属している必要があり、www-dataこのように、グループのアクセス権を許可するグループ、および775のモードがあります。

sudo usermod -a -G www-data MY_USER
sudo chown MY_USER:www-data /var/www/RESTRICTED_DIR/*
sudo chmod 775 -R /var/www/RESTRICTED_DIR/*

注:Apacheを設定する場合は、htdocsフォルダーへのアクセスのみを許可することをお勧めします。


3
それがあるべきかなり確信sudo usermod -a -G www-data MY_USERグループは後に来る必要がありますよう-G
sMyles

これは機能しますが、ディレクトリに新しいファイルをアップロードできません。ルートアカウントとユーザー所有権で以前に作成したファイルのみを変更できます。
dlopezgonzalez

3

今日いくつかのトラブルシューティングを行った後、ルートもディレクトリに書き込みできる必要があることに気付きました。

以下は機能しませんでした:

$ ls -ld /mnt/synology03/files/
dr-xr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
$ ls -ld /mnt/synology03
drwxr-xr-x 7 root root 4096 Oct  1 21:26 /mnt/synology03
$ ls -ld /mnt
drwxr-xr-x 6 root root 4096 Feb  8 10:01 /mnt
$ ls -ld /
drwxr-xr-x 24 root root 4096 Jan 14 09:22 /

これを修正するとすぐに、chrootが機能し始めました。

$ sudo chmod 755 /mnt/synology03/files/
$ ls -ld /mnt/synology03/files/
drwxr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.