Chroot

使用 useradd -R 進行 chrooting

  • January 2, 2020

如果我做對了,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/ 下的系統文件

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