ログインできません: ログイン サービスを開始できませんでした

ログインできません: ログイン サービスを開始できませんでした

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 コンテキストをコピーして別のディレクトリに適用するにはどうすればよいですか?

関連情報