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/ 아래의 시스템 파일은 수정하지 않았습니다.

관련 정보