誤ってrootアカウントのSELinuxコンテキストをStaff_uに修正しました。

誤ってrootアカウントのSELinuxコンテキストをStaff_uに修正しました。

CentOS 6.5 VMに通常のアカウント(テスト)としてログインしてsudo su - root実行しました。usermod -Z staff_u test

しかし、私のrootアカウントもStaff_uに変更されているようです。

bash-4.1# id
uid=0(root) gid=0(root) groups=0(root) context=staff_u:staff_r:staff_t:s0-s0:c0.c1023
bash-4.1# id -Z
staff_u:staff_r:staff_t:s0-s0:c0.c1023
bash-4.1# bash
bash: /root/.bashrc: Permission denied
bash-4.1# setenforce 0
setenforce:  setenforce() failed
bash-4.1# sudo setenforce 0
setenforce:  setenforce() failed
bash-4.1# cd .ssh
bash: cd: .ssh: Permission denied
bash-4.1# cd 
bash: cd: /root: Permission denied
bash-4.1# usermod -Z unconfined_u root
usermod: cannot lock /etc/passwd; try again later.
bash-4.1# cat /etc/shadow
cat: /etc/shadow: Permission denied
bash-4.1# 

直接ルートログインは無効になっていますが、役に立たないようです。それはただの仮想マシンであり、実際には重要ではありませんが、この問題を解決する方法を知りたいです。

ベストアンサー1

フォローしてみて修正しましたが、思ったより簡単でした。

  • シングルユーザーモードで再起動
  • /etc/selinux/config ファイルで selinux=permissive を変更しました。
  • ルートパスワードを覚えておらず、リセットしてください。
  • 再起動
  • test(staff_u)でログインして実行してください。sudo semanage login -a -s unconfined_u root
  • /etc/selinux/config ファイルで selinux を再適用するように変更します。
  • 再起動

トラブルシューティング済み。

おすすめ記事