machinectl
Ubuntu 20.04 호스트에서 다음을 사용하여 추가 출력을 검색합니다.
machinectl pull-tar https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64-root.tar.xz focal
machinectl start focal
systemd-run --machine focal --pty /bin/bash
"초점" 클라우드 이미지를 사용할 수 있는 한 이를 재현할 수 있어야 합니다.
출력은 다음과 같습니다.
root@ubuntu:/# getent passwd|grep -P '^(nobody|root):'
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
root:x:0:0:root:/root:/bin/sh
nobody:x:65534:65534:nobody:/:/usr/sbin/nologin
root@ubuntu:/# cat /etc/passwd|grep -P '^(nobody|root):'
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
이상하게도 getent shadow
같은 차이가 표시되지 않습니다.
root@ubuntu:/# getent shadow|grep -P '^(nobody|root):'
root:*:18697:0:99999:7:::
nobody:*:18697:0:99999:7:::
root@ubuntu:/# cat /etc/shadow|grep -P '^(nobody|root):'
root:*:18697:0:99999:7:::
nobody:*:18697:0:99999:7:::
누군가 여기서 무슨 일이 일어나고 있는지 설명해 줄 수 있습니까? getent passwd
및 에 대해 두 개의 별도 항목이 생성되는 이유는 무엇입니까 ? ! 또한 이러한 항목의 쉘이 다른 이유는 무엇입니까?root
nobody
root
답변1
이 두 항목이 존재하는 이유는 및 소스를 NSS
모두 갖기 위해서 입니다.passwd
systemd
/etc/nsswitch.conf
파일에서 이를 확인할 수 있습니다 . 마지막 두 줄에는 root
및 가 포함되어 있으며 nobody
두 사용자의 첫 번째 인스턴스는 에서 나옵니다.getent passwd
systemd
/etc/passwd