Ubuntu에서 sudo를 복원하는 방법은 무엇입니까?

Ubuntu에서 sudo를 복원하는 방법은 무엇입니까?

나는 이것을 했다:

sudo chown -R myname /usr/

sudo이제 다음 오류로 인해 명령을 사용할 수 없습니다.

sudo: setuid 루트여야 합니다.

내가 읽은 대로 이것은 파일의 소유자가 /usr/bin/sudo루트가 아니라는 것을 의미합니다. 폴더의 chown으로 인해 이제 내 사용자입니다 /usr.

많은 포럼과 블로그에서 사람들은 루트로 이 작업을 수행할 것을 제안합니다.

# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo

su...하지만 문제는 루트로 로그인해야 하는데 터미널에 비밀번호를 쓰면 틀리기 때문에 로그인할 수 없다는 것입니다 (실제로는 사용자에게 추가한 비밀번호를 사용하고 있습니다).

$ su
Password:
su: Authentication failure

sudo그러면 주문을 다시 받을 수 있나요 ?

편집: 내 Ubuntu는 Mac OS X의 Parallels에 있습니다.

답변1

루트 수준 액세스를 제공하는 유일한 것을 획득했으므로 이 문제를 해결하려면 현재 소프트웨어 환경 외부의 도움이 필요합니다.

가장 쉬운 방법은 배포용 LiveCD를 부팅하고 드라이브를 마운트한 다음 chmod나열된 파일 권한으로 파일 권한을 변경하는 것입니다.

단일 사용자 모드로 부팅하여 루트 셸을 얻을 수도 있습니다.

일반적으로 /usr/디렉터리의 모든 항목은 소유되어야 하므로 문제가 있는 항목을 수정하기 위해 root반복할 수 있어야 합니다 . chown(편집하다:@Gilles의 의견에 따르면 분명히 실행하면 chownsetuid 및 setgid 비트가 파괴되므로~ 할 것이다소유권이 다시 확정된 후 이 모든 것을 복원하려면 기존 시스템과의 수동 비교가 필요합니다. )

그러나 매우희귀한해야 한다 4111. 이 추가 권한은 특별한 권한인데, 이를 통해 사용자로 실행하더라도 루트로 실행이 가능해집니다! sudo몇 가지 명령 만 이 권한 비트를 설정해야 합니다.처음에 를 실행하지 않는다면 chmod아마도 이 문제를 전혀 고칠 필요가 없을 것입니다., 모든 권한이 정확해야 합니다. chmod모든 권한이 무엇인지 알지 못한 채 대규모 작업을 실행하지 마십시오.

답변2

모든 파일의 올바른 소유권을 확인하기 위한 가이드로 사용할 수 있는 유사한 시스템이 있는 경우 복구 모드로 부팅하고 루트 셸을 입력한 다음 모든 파일의 올바른 소유권을 수동으로 복원할 수 있습니다. 파일은 /usr.

가장 빠른 방법은 운영 체제를 다시 설치하거나 백업에서 복원하는 것입니다.

Ubuntu 또는 유사한 시스템에는 기본적으로 루트 비밀번호가 없으므로(계정이 비활성화되어 있음) 이를 수행할 수 없습니다 su.

답변3

Ubuntu 복구 모드에서 다음 명령을 입력합니다. 이것은 내 문제를 해결했습니다.

mount -o remount,rw /
mount --all
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
restart

이것이 귀하의 문제를 해결하기를 바랍니다. (또는 다른 사람의)

여기서 이걸 찾았어요블로그 게시물.

답변4

사람이 하는 것보다 더 간단해요. 다음을 시도해 보십시오:

  1. 손상된 명령을 사용하여 루트로 로그인을 시도하지 마십시오 su. 대신 현재 사용자로 로그아웃한 후 일반 디스플레이 관리자(예: 로그인 화면)를 통해 루트로 다시 로그인하십시오.
  2. 터미널에서 다음 명령을 실행합니다.chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

이렇게 하면 sudo명령이 수정되어 즉시 백업 및 실행이 가능해집니다.

관련 정보