![意外将 root 帐户上的 SELinux 上下文修改为 Staff_u](https://linux22.com/image/54989/%E6%84%8F%E5%A4%96%E5%B0%86%20root%20%E5%B8%90%E6%88%B7%E4%B8%8A%E7%9A%84%20SELinux%20%E4%B8%8A%E4%B8%8B%E6%96%87%E4%BF%AE%E6%94%B9%E4%B8%BA%20Staff_u.png)
我在我的 CentOS 6.5 VM 上以普通帐户(测试)登录并sudo su - root
运行usermod -Z staff_u test
但看起来它也将我的根帐户更改为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#
直接 root 登录被禁用,但我认为这不会有任何帮助,你知道吗?它只是一个虚拟机,并不重要,但想知道如何解决这个问题。
答案1
尝试遵循并修复了它,实际上比我想象的要容易
- 重新启动进入单用户模式
- 更改了 /etc/selinux/config 文件中的 selinux=permissive
- 重置 root 密码,因为我不记得了
- 重启
- 以 test(staff_u) 身份登录并运行
sudo semanage login -a -s unconfined_u root
- 在 /etc/selinux/config 文件中将 selinux 更改回强制执行
- 重启
问题已解决。