Linux

chroot:無法執行命令“/bin/bash”:權限被拒絕

  • August 21, 2019

我正在嘗試以某個使用者的身份進行 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 --loginchroot: failed to run command ‘/bin/bash’: Permission denied
  • /bin/bashin chroot:的詳細資訊,我在系統中的使用者名在-rwxr-xr-x 1 user user 455188 Sep 19 08:58哪裡user

任何想法為什麼使用者test1不工作?如果您需要更多資訊,請詢問,我會將它們放入。提前非常感謝。

使用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 libchmod 755 .允許bash開始。

引用自:https://unix.stackexchange.com/questions/395183