실수로 루트 계정의 SELinux 컨텍스트를 Staff_u로 수정했습니다.

실수로 루트 계정의 SELinux 컨텍스트를 Staff_u로 수정했습니다.

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# 

직접 루트 로그인이 비활성화되어 있지만 아무 도움이 되지 않을 것 같습니다. 그것은 단지 가상 머신일 뿐이며 실제로는 중요하지 않지만 이 문제를 해결하는 방법을 알고 싶습니다.

답변1

따라해보고 고쳐봤는데 생각보다 쉬웠어요

  • 단일 사용자 모드로 재부팅
  • /etc/selinux/config 파일에서 selinux=permissive를 변경했습니다.
  • 루트 비밀번호가 기억나지 않아서 재설정하세요.
  • 재시작
  • test(staff_u)로 로그인하고 실행하세요.sudo semanage login -a -s unconfined_u root
  • /etc/selinux/config 파일에서 selinux를 다시 적용하도록 변경합니다.
  • 재시작

문제 해결됨.

관련 정보