다음 단계를 사용하여 네임스페이스 마운트를 테스트하고 있습니다.
# unshare --mount
# mount --bind rootfs/ ns_dir/
# cd ns_dir/
# pivot_root . .
# cd /
내 rootfs에는 /lib
, /bin
, 하위 폴더가 있습니다 /etc
. bash
및 를 포함한 다양한 바이너리에 종속성을 배치했습니다 su
.
su
내 질문은 네임스페이스 내부의 사용과 관련이 있습니다. 나는 다음을 시도했다:
root:/# su alice
alice:/$ su bob
su: must be run from a terminal
오류가 무엇을 의미하는지 묻고 싶습니다 su: must be run from a terminal
. 온라인에서 검색해서 다음과 같은 해킹 답변을 찾았습니다.협회다음이 필요합니다.
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py
python /tmp/asdf.py
나는 이 방법을 시도했다이것대답했지만 성공하지 못했습니다. 이 오류를 해결하는 올바른 방법이 무엇인지 묻고 싶습니다. 사용자 전환시 비밀번호가 필요하기 때문에 오류가 발생하는 것 같습니다.
답변1
당신이 할 수 있는 일은 루트가 아닌 내부 공유를 해제한 다음 Enterns 없이 사용하는 것입니다. 그러면 --preserve-credentials
마운트하는 데 사용할 수 있는 컨테이너 내부의 루트 권한이 제공됩니다.
답변 보기https://unix.stackexchange.com/a/767296/139357이건 개선될 거야