
Oracle Linux 7.2 の VirtualBox インスタンスを持っていますが、 のせいで起動しませんFailed to start Login Service
。 起動シーケンスでプロセスがこのメッセージでハングして続行されないため、ログインして を実行することすらできませんsystemctl status systemd-logind.service
。
おそらく原因は、すべてのユーザー (root を含む) が zsh をデフォルトのシェルとして設定しているのに、zsh を削除したことです (当然です!)。その後、マシンが起動し、ログイン プロンプトが表示されましたが、シェルが見つからなかったためログインできませんでした。その後、Live CD を挿入し、/etc/passwd
ユーザーのデフォルトのシェルを に変更しました/bin/bash
。その後、ログイン サービスがまったく起動しなくなりました。これを修正する方法はありますか?
答え1
/etc/passwd
変更後、SELinux 設定が正しくないことがわかりました。私のマシンでは SELinux は必要ないので、SELinux を完全に無効にすることで問題を解決しました。これは、ファイルを変更し/etc/selinux/config
てオプションを設定することで簡単に実行できますSELINUX=permissive
(SELinux ファイルのラベル付けを維持して後で有効にする場合)、またはSELINUX=disabled
(完全にオフにする場合)。
答え2
今日、VirtualBox上のCentOS 7.2でこれに遭遇しました。ssh
通常のユーザーとしてログインして、
touch /.autorelabel
その後、すべてのコンテキストをリセットするために再起動しました。起動にはしばらく時間がかかりますが、動作しました。
答え3
パスワードの有効期限が切れたためにシングル ユーザー モードで使用した後、適切なラベルを復元するには、設定chage
をオンにして起動する必要があります。SELINUX=permissive
/etc/selinux/config
正常なシステムから変更されたファイルごとに適切な SELinux コンテキストを取得しls -Z /etc/passwd /etc/shadow
、壊れたシステムにコンテキストを適用します。
として例CentOS 7以降で使用されるコマンドのセットは次のとおりですchage
。応募しないでください健全なシステム (テストまたは試作) との比較なし!
chcon system_u:object_r:passwd_file_t:s0 /etc/passwd
chcon system_u:object_r:passwd_file_t:s0 /etc/group
chcon system_u:object_r:shadow_t:s0 /etc/shadow
chcon system_u:object_r:shadow_t:s0 /etc/gshadow
SELINUX=enforcing
再起動して通常の操作に戻る前に、シングル モードで変更したファイルの SELinux コンテキストを確認してください。
SELinuxコンテキストをコピーする他の方法は、あるディレクトリから SELinux コンテキストをコピーして別のディレクトリに適用するにはどうすればよいですか?