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

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

Failed to start Login ServiceOracle Linux 7.2がインストールされたVirtualBoxインスタンスがありますsystemctl status systemd-logind.service

これの考えられる理由は、私がzshを削除し、すべてのユーザー(ルートを含む)がzshをデフォルトのシェルに設定したからです(duh!)。これにより、マシンが起動し、ログインプロンプトが表示されますが、シェルが見つからないためログインできません。その後、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コンテキストをコピーして別のディレクトリに適用する方法は?

関連情報