Chroot使用
使用 useradd -R
進行 chrooting
如果我做對了,chroot 會限制使用者僅訪問給定目錄。看起來
useradd
有這個選項(Debian 10)。# useradd --help | grep "chroot" -R, --root CHROOT_DIR directory to chroot into
看起來很簡單,但似乎沒有人推薦它:
為什麼?它是否不夠便攜或不夠安全/可靠?
-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/ 下的系統文件