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