web-dev-qa-db-ja.com

chroot:コマンド「/ bin / bash」の実行に失敗しました:権限が拒否されました

特定のユーザーとしてchrootを実行しようとしています。あるユーザーでは機能し、他のユーザーでは機能しません。何が起こっているのか私にはわかりません。

ぼくの /etc/passwd chrootディレクトリ内は次のようになります(関連部分):

test0:x:1000:1000:test0:/home/test:/bin/bash
test1:x:1001:1001:test1:/home/test:/bin/bash
  • Sudo chroot --userspec=test0 chroot_dir/ /bin/bash --loginはうまく機能します
  • Sudo chroot --userspec=test1 chroot_dir/ /bin/bash --loginは言うchroot: failed to run command ‘/bin/bash’: Permission denied
  • の詳細 /bin/bash chroot内:-rwxr-xr-x 1 user user 455188 Sep 19 08:58、ここでuserはシステム内のユーザー名です。

ユーザーtest1 動作しません?詳しい情報が必要な場合は、お問い合わせください。お入れいたします。よろしくお願いします。

2
karlosss

chroot(ここではユーザーネームスペースはありません)では、chrootに指定したコマンドを実行するために必要なディレクトリとファイルに、指定したユーザーがアクセスできる必要があります。これも:

  • chrootのルート。
  • binおよびbin/bash chroot内;
  • libおよびbashが使用するライブラリー(存在する場合)(ldd bin/bashそれらが何であるかを教えてくれます);
  • bashが始まると、home/testおよび起動スクリプト(.bashrcなど必要に応じて)。

ランニング chmod -R 777明らかにこれをすべて修正します。ユーザーID 1001が適切なファイルを読み取って実行できる限り、より制限の厳しい権限を使用できます。 chmod -R 755 bin libおよびchmod 755 .bashの起動を許可します。

5
Stephen Kitt