Linux에서 sudo 명령을 실행할 수 없습니다

Linux에서 sudo 명령을 실행할 수 없습니다

Linux CentOS를 사용하고 있는데 갑자기 sudo 명령을 실행할 수 없습니다. 다음 오류가 발생합니다. 루트 사용자라도 동일한 오류가 발생합니다.

$ sudo ls
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

파일의 권한은 다음과 같습니다.

 ls -l /etc/sudoers
-rwxr-xr-x 1 root root 4241 Jun  9 20:36 /etc/sudoers
# which sudo
/usr/bin/sudo
# ls -l /usr/bin/sudo
--ws-wx-wx. 1 root root 130712 Jun 10  2014 /usr/bin/sudo

시스템에 어떤 문제가 있나요? 어떻게 해결할 수 있나요?

편집 1

아래 명령 출력을 참조하세요.

# ls -Z /etc/sudoers
-r--r----- root root ?                                /etc/sudoers

이 파일에 대해 chmod 440을 실행했지만 권한이 손상된 것 같습니다.

편집 2

/etc/sudoers 권한을 설정하기 위해 다음 명령을 실행했지만 여전히 올바르지 않습니다.

root@Cool-Too ~]# chmod 440 /etc/sudoers
[root@Cool-Too ~]# ll /etc/sudoers
-r--r----- 1 root root 4241 Aug 14 22:16 /etc/sudoers
[root@Cool-Too ~]# ll -Z /etc/sudoers
-r--r----- root root ?                                /etc/sudoers

답변1

실제로 귀하의 권한은 매우 낮습니다.

다음과 같아야 합니다:

-r--r----- 1 root root   4188 Mar 31 11:30 /etc/sudoers
---s--x--x 1 root root 130720 Mar 31 13:09 /usr/bin/sudo

이 문제를 해결하려면 루트로

chmod 4111 /usr/bin/sudo
chmod 440 /etc/sudoers

+출력에 플래그가 표시 되면 ls -lACL도 삭제되어야 함을 의미합니다.

setfacl -b /usr/bin/sudo /etc/sudoers

(이 문제는 없는 것 같습니다. 완전성을 위해 포함시켰습니다.)

귀하의 권한이 손상되었으므로 SELinux 태그도 손상될 수 있습니다. 다음 명령을 사용하여 SELinux 레이블이 올바른지 확인해야 합니다 ls -Z.

-r--r-----. root root system_u:object_r:etc_t:s0       /etc/sudoers
---s--x--x. root root system_u:object_r:sudo_exec_t:s0 /usr/bin/sudo

이러한 문제는 고칠 수 있어야 합니다.restorecon

restorecon -v /usr/bin/sudo /etc/sudoers

마지막으로 설치에 완전히 문제가 있을 수 있습니다(예: PAM 구성 /etc/sudo.conf). 어떤 파일이 수정되었는지 확인할 수 있습니다.

rpm --verify sudo

이로 인해 올바르지 않은 파일이 나타나면 해당 파일을 삭제하고 sudo를 다시 설치해야 할 수 있습니다.

예를 들어

rm /etc/sudo.conf /etc/pam.d/sudo*
yum reinstall sudo

(이것은 작업 yum설정이 필요하므로 저장소가 작동하지 않으면 이 작업을 수행하지 마십시오!)

답변2

그래도 작동하지 않으면 sudo다음 명령을 사용하여 루트가 될 수 있습니다.su -

나중에 루팅 후 다시 설치하시면 됩니다스도다음 명령을 사용하십시오.

냠 sudo 삭제해

냠 sudo를 설치해

/etc/sudoers 파일에 자신을 추가하고 다음을 입력해야 합니다.

비쥬도

sudo를 통해 사용자 vivek에게 전체 권한을 부여합니다.

비벡 모두 = (모두) 모두

파일을 저장하고 닫습니다. 나중에 이 작업을 수행하면스도 다음 명령을 사용하여 루트 사용자가 될 수 있습니다.

sudo-i

그래도 작동하지 않으면 다음을 사용하십시오.

sudo-s

관련 정보