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를 다시 적용하도록 변경합니다.
- 재시작
문제 해결됨.