sudo : /usr/lib/sudo/sudoers.so는 uid 0이 소유해야합니다. 실행할 수 없습니다. 나는 로그인 할

암호가 필요한 작업을 수행하려고 할 때마다 다음이 반환됩니다.

u7ur7l3@ubuntu:~$ sudo
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
u7ur7l3@ubuntu:~$

따라서 소프트웨어 센터 / 패키지 관리자에서 아무것도 설치하거나 터미널에서 암호를 요구하는 명령을 실행할 수 없습니다. 나는 로그인 할 수 있지만 그 정도입니다.

실수로 일부 파일의 권한을 변경 한 다음 더 수정하려고 시도했습니다. : /. 이제 어떻게해야할지 완전히 잃어 버렸습니다.

이것은 pkexec를 사용하여 sudo를 다시 작동 시키려고 할 때 일어난 일입니다.

u7ur7l3@ubuntu:~$ pkexec chown root /usr/lib/sudo/sudoers.so
Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success

u7ur7l3@ubuntu:~$ sudo ls
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 sudo: fatal error, unable to load plugins

그리고 권한을 변경하기 위해 루트 서비스를 돌고래 서비스 / 플러그인으로 사용했기 때문에 기록에 권한 변경이 표시되지 않습니다.

나는 소리가 더 이상 작동하지 않는다는 것을 깨달았습니다. Phonon에 들어가면 기본 설정 및 재생 장치가 없습니다. 또한 종료 할 수있는 옵션이 없으므로 로그 아웃하거나 떠날 수만 있습니다.



답변

중요한 시스템 파일 중 적어도 하나의 소유권 이 잘못되었습니다. 나쁜 일입니다. 이 문제가 많은 시스템 파일에 발생한 경우 (어쩌면 어느 시점에서 플래그를 sudo chown사용하여 큰 명령 을 실행 -R했습니까?) 다른 여러 시스템 오류 및 불안정을 초래할 수 있습니다. 따라서 최근 Ubuntu 를 설치 한 경우 Adam Heathcote가 제안한 대로 다시 설치해야 할 수 있습니다 .

그러나이 문제를 해결하기 위해 다시 설치할 필요는 없습니다 . 대신 해당 파일의 소유권을 수정하십시오. 그 후에 다른 파일에 대한 오류가 발생하면 해당 파일도 수정할 수 있습니다 (오류 메시지가 무엇인지 알려 주어야하므로 수정 방법도 알려줄 수 있음).

sudo작동하지 않지만, 사용하는sudo 것입니다 중 하나 가지 방법 에 대한 관리자 등의 작업을 수행하는 루트를 우분투. 다른 하나는 Polkit (이전에는 PolicyKit이라고 함)입니다.

Polkit (via pkexec)을 사용하여 소유권을 /usr/lib/sudo/sudoers.so다시 root(예 : uid 0) 변경하는 이 명령을 실행하십시오 .

pkexec chown root /usr/lib/sudo/sudoers.so

그런 다음 다시 사용 sudo하십시오. 과 같은 사소한 것을 실행 하고 오류 메시지가 표시되는지 확인할 수 있습니다.sudo ls

마지막으로, 실행 한 history모든 명령을 표시하기 위해 실행 하는 것이 좋습니다 . 바라건대 권한이 변경된 모든 명령이 나열되기를 바랍니다. sudo이제 작동 한다고 가정 합니다.의 모든 파일 소유권 및 권한 변경을 history취소 하는 데 도움이되도록 의 출력을 포함하여 새로운 질문을 게시하는 것이 좋습니다 .

경우 pkexec중 하나가 작동하지 않습니다 …

시도했지만 pkexec작동하지 않았습니다. 도 있기 때문에 sudo폴킷도이 루트 등의 작업을 수행 할 수 있도록하기 위해 노력하고 있습니다, 당신은 복구 모드로 부팅해야하고 루트 쉘을 얻을 수 있습니다. 이렇게하려면 Shift컴퓨터를 부팅 할 때 GRUB 부팅 메뉴가 표시되도록 길게 누르십시오 . 단어 복구 모드 가 포함 된 항목을 선택하십시오 (일반적으로 맨 위에 가장 가까운 단어를 선택해야 함). 그런 다음 다양한 옵션이있는 메뉴가 나타납니다. 루트 셸에 드롭 할 옵션을 선택하십시오.

복구 모드에서 루트 셸에 액세스하는 자세한 지침은 다음과 같습니다.

루트 쉘이 있으면 다음을 실행하십시오.

chown root /usr/lib/sudo/sudoers.so

파일 또는 파일 시스템을 수정할 수 없다는 오류가 표시되면 readwrite를 다시 마운트하십시오.

mount -rw -o remount /

(다시 마운트의 아이디어와 그것을 수행하는 방법에 대한 출처 : 이것은 주로 관련이없는 답변 입니다.)

그런 다음 해당 mount명령을 실행 한 후 위 chown명령을 다시 실행하여 작동하는지 확인하십시오.

복구 모드가 완료되면 다음을 실행하여 재부팅 할 수 있습니다.

reboot

sudo그런 다음 작동하거나 적어도 다른 오류가 발생해야합니다.

마지막으로, 표시된 오류로 인해 많은 파일에 잘못된 소유권 또는 권한이있을 수 있습니다. 이런 방식으로 수정 한 파일을 파악할 수 있다면 이상적입니다. 예를 들어, 파일이 몇 개의 특정 폴더에있는 모든 파일임을 알 수 있다면 최근에 발생한 문제의 전체 범위를 수정할 수 있습니다.

재설치는 확실히 선택 사항이지만 특히 변경 한 모든 것이 소유권 인 경우 (권한이 다르고 더 다양하므로 재구성하기가 다소 어려운 경우) 권한을 원래 소유자 (일반적으로 root ) 피해를 완전히 되돌립니다.

점점 sudo다시 작동하는 것은 첫 번째 단계입니다. 위의 기술로 그렇게 할 수 있기를 바랍니다.