web-dev-qa-db-ja.com

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

Failed to start Login Serviceのために起動しないOracle Linux 7.2のVirtualBoxインスタンスを持っています。ブートシーケンスでプロセスがこのメッセージでハングし、続行しないため、ログインしてsystemctl status systemd-logind.serviceを実行することさえできません。

これの考えられる原因は、すべてのユーザー(rootを含む)がデフォルトのシェル(duh!)としてzshを設定している間にzshを削除したことです。その後、マシンが起動してログインプロンプトが表示されましたが、シェルが見つからなかったためログインできませんでした。次に、Live CDを挿入して/etc/passwdに移動し、ユーザーのデフォルトのシェルを/bin/bashに変更しました。この後、ログインサービスはまったく開始されません。これを修正する方法はありますか?

8
lmazgon

/etc/passwdを変更した後、適切なSELinux設定がもうないことがわかりました。私のマシンにはSELinuxは本当に必要ないので、SELinuxを完全に無効にすることで問題を解決しました。これは、ファイル/etc/selinux/configを変更し、オプションSELINUX=permissive(SELinuxファイルのラベル付けを保持して後で有効にする場合)またはSELINUX=disabled(完全にオフにする)を設定することで簡単に実行できます。

9
lmazgon

パスワードが期限切れのためにchageをシングルユーザーモードで使用した後、適切なラベルを復元するには、SELINUX=permissive/etc/selinux/configに設定して起動する必要があります。

ls -Z /etc/passwd /etc/shadowを使用して、正常なシステムから変更されたファイルごとに適切なSELinuxコンテキストを取得し、コンテキストを壊れたシステムに戻します。

として、CentOS 7でchage-DOの後に使用されるコマンドのセットを次に示します適切なシステム(テストまたはプリプロダクション)からの比較なしでは適用されません

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コンテキストを確認してから、SELINUX=enforcingで再起動して通常の操作に戻ります。

SELinuxコンテキストをコピーする他の方法は 1つのディレクトリからSELinuxコンテキストをコピーして別のディレクトリに適用する方法? で利用できます。

1
Yves Martin

今日、VirtualBoxのCentOS 7.2でこれに遭遇しました。通常のユーザーとしてsshを使用して発行することができました

touch /.autorelabel

その後、すべてのコンテキストをリセットするために再起動しました。起動には少し時間がかかりますが、うまくいきました。