ルートパスワードを設定できないため、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 ラベルがリセットされます。 (コンテナホストが期待する値、つまりタグ付けされていません)これで、ルートパスワードを正常に設定できます。

おすすめ記事