私の推測が正しい場合chroot は特定のディレクトリにのみユーザーアクセスを制限します。。useradd
このオプションがあるようです(Debian 10)。
# useradd --help | grep "chroot"
-R, --root CHROOT_DIR directory to chroot into
簡単に見えますが、誰もおすすめしないようです。
- Linuxで特定のフォルダにのみアクセスできるユーザーを作成する
- https://www.tecmint.com/restrict-ssh-user-to-directory-using-chrooted-jail/
なぜ?そうではありません持ち運べるそれとも十分に安全で信頼できますか?
答え1
-R
useraddオプションの目的と動作を誤解しました。
私の理解では、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/の下のシステムファイルは変更しませんでした。