루트 비밀번호를 설정할 수 없기 때문에 systemd-nspawn OS 컨테이너가 작동하지 않습니다.

루트 비밀번호를 설정할 수 없기 때문에 systemd-nspawn OS 컨테이너가 작동하지 않습니다.

원래의 자세한 지침을 결합했습니다블로그 게시물, 그리고 에서매뉴얼 페이지(yum 대신 dnf를 사용하세요)

# sudo dnf -y --releasever=24 --installroot=$HOME/fedora-24 --disablerepo='*' --enablerepo=fedora --enablerepo=updates install systemd passwd dnf fedora-release vim-minimal

# sudo systemd-nspawn -D fedora-24
Spawning container fedora-24 on /home/alan-sysop/fedora-24
Press ^] three times within 1s to kill container.
-bash-4.3# passwd
Changing password for user root.
New password:
Retype new password:

결과:

passwd: Authentication token manipulation error

AVC 팝업, SELinux 오류. passwd연결해제(교체)가 허용되지 않는다고 나옵니다 /etc/passwd. "문제 해결" 버튼 passwd_file_t에 대한 제안 중 하나는 /etc/passwd.

무엇이 잘못되었으며 어떻게 해결합니까?

답변1

어떤 이유로 dnf는 /etc/passwd에 "올바른" SELinux 레이블을 설정하지 않습니다. 그러나 /bin/passwd에 레이블이 설정됩니다. 이러한 불일치가 문제의 원인입니다. 추가 설명을 환영합니다 :).

$ ls -Z fedora-24/etc/passwd
unconfined_u:object_r:etc_t:s0 fedora-24/etc/passwd
$ ls -Z /etc/passwd
system_u:object_r:passwd_file_t:s0 /etc/passwd

$ ls -Z fedora-24/bin/passwd
system_u:object_r:passwd_exec_t:s0 fedora-24/bin/passwd
$ ls -Z /usr/bin/passwd
system_u:object_r:passwd_exec_t:s0 /usr/bin/passwd

restorecon -Rv /컨테이너 내부에서 실행하려고 해도 아무런 효과가 없습니다. IIRC libselinux는 컨테이너에서 실행 중일 때 이를 감지하고 아무 작업도 수행하지 않습니다.

해결책

컨테이너 외부에서 실행해야 합니다.

restorecon -Rv fedora-24/

그것은 보장한다모두SELinux 레이블이 재설정됩니다. (컨테이너 호스트가 예상하는 값, 즉 태그가 지정되지 않음) 그러면 루트 비밀번호를 성공적으로 설정할 수 있습니다.

답변2

부팅된 Cent OS 8 사용자 공간에도 동일한 문제가 있습니다.

발견된 문제

[root@- bootstrapped_base_systems]# ls -Z centos8/bin/passwd
system_u:object_r:passwd_exec_t:s0 centos8/bin/passwd
[root@- bootstrapped_base_systems]# ls -Z centos8/etc/passwd
unconfined_u:object_r:etc_t:s0 centos8/etc/passwd

( etc/passwd이 경우에는 괜찮습니다)

에 고정

[root@- bootstrapped_base_systems]# chcon -v unconfined_u:object_r:etc_t:s0 centos8/bin/passwd
changing security context of 'centos8/bin/passwd'

변경사항이 확인되었습니다.

[root@- bootstrapped_base_systems]# ls -Z centos8/bin/passwd
unconfined_u:object_r:etc_t:s0 centos8/bin/passwd

관련 정보