chrootには `useradd -R`を使用してください。

chrootには `useradd -R`を使用してください。

私の推測が正しい場合chroot は特定のディレクトリにのみユーザーアクセスを制限します。useraddこのオプションがあるようです(Debian 10)。

# useradd --help | grep "chroot"
  -R, --root CHROOT_DIR         directory to chroot into

簡単に見えますが、誰もおすすめしないようです。

なぜ?そうではありません持ち運べるそれとも十分に安全で信頼できますか?

ベストアンサー1

-Ruseraddオプションの目的と動作を誤解しました。

私の理解では、chrootユーザーとは何の関係もありません。このスイッチを使用すると、/(/etc/passwd + /etc/shadow)以外の別のディレクトリにある認証ファイルを変更できます。たとえば、これはLXCコンテナを管理するユーザーに便利です。

デモ:

/tmp$ mkdir fakeroot
/tmp$ mkdir fakeroot/etc
/tmp$ touch fakeroot/etc/{shadow,passwd}
/tmp$ find fakeroot/
fakeroot/
fakeroot/etc
fakeroot/etc/shadow
fakeroot/etc/passwd
/tmp$ sudo useradd -R /tmp/fakeroot toto
/tmp$ cat /tmp/fakeroot/etc/* 
toto:!:1000:
toto:x:1000:1000::/home/toto:
cat: /tmp/fakeroot/etc/passwd-: Permission denied
toto:!:18263:0:99999:7:::
cat: /tmp/fakeroot/etc/shadow-: Permission denied
/tmp$ grep toto /etc/passwd
/tmp$

ご覧のとおり、useraddコマンドは/tmp/fakerootの下のファイルのみを変更し、/etc/の下のシステムファイルは変更しませんでした。

おすすめ記事