제거 후 sudo를 다시 설치할 수 있습니까?


61

이것은 닭 계란 문제인 것 같습니다. 가장 일반적인 작업 sudo은 소프트웨어 설치 및 제거입니다.

sudo apt-get purge <appname>

그러나 sudo그 자체는 제거 될 수 있습니다.

sudo apt-get purge sudo # Do not run this command on production computers!

재미가 온 곳

ubuntu@ubuntu:~$ sudo
bash: /usr/bin/sudo: No such file or directory

자신의 올바른 마음을 가진 사람은 sudo(나 외에) 제거하지 않을 것이 분명하지만 , 누군가는 이 명령을 직접 실행하거나 (16 진수 모드 나 그 어떤 것이라도 호출되지 않음) 기술 전문가 위장한 SSH를 사용할 수 있습니다. 그리고 엉망 .

sudo를 다시 설치하는 방법이 있습니까?


3
나도 sudo도 제거 할 수 있다는 것을 결코 알지 못했다! 리눅스는 정말 커스터마이징이 가능합니다!
user247696

이것이 발생하면 너무 늦을 것이기 때문에 실제로 답할 가치는 없지만 사용자 의 비밀번호 설정을 방해하는 것은 없습니다 root. 그런 다음 su시스템에 물리적으로 액세스 할 수있는 경우을 사용 하거나 루트로 직접 로그인 할 수 있습니다 (ssh는 일반적으로 루트로 로그인하려는 시도를 거부하도록 구성됨).
IMSoP

모든 답변은 권한이있는 파일 시스템에 액세스하는 방법에 따라 다릅니다. (카운터) 예 : 내 Android Asus Memopad sudo에는 "안전 부팅"또는 이와 동등한 기능이 없습니다. 내가 아는 유일한 방법은 xda-dev사전 빌드 전체 설치 패키지로 이동하는 것입니다. 말하자면, 당신은 운이 좋으 니이 제한이 없습니다.
Carl Witthoft

@CarlWitthoft Android는 실제로 Linux 배포판보다 Linux 파생물입니다. 또한 구글은 많은 리눅스 팬들에게 많은 변화를주었습니다. 안드로이드 스마트 폰에서 잘 알려진 루팅 은 안드로이드에서 실제 리눅스 의 힘을 얻으려는 시도 일뿐 입니다.
등록 된 사용자

4
루트로 로그인 할 수 없습니까?
Konrad Höffner

답변:


56

다음을 사용하여 응용 프로그램을 설치할 수 있습니다.

pkexec apt-get install <appname>

보낸 사람 man pkexec:

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

그래서 나는 그것이 pkexec apt-get install sudo잘 작동 한다고 생각합니다 .


편집 : 이제 확인할 수 있습니다 : , 다음을 sudo사용하여 설치할 수 있습니다 pkexec apt-get install sudo:

sudo를 다시 설치하십시오

( 클릭하면 확대됩니다 )


@RaduRadeanu 이것은 내가이 감사 u를 시도하려고 재미있다 ......
Premkumar

@Premkumar 예방 조치로 테스트하십시오! 스크린 샷의 마지막 명령은 아마도 귀하의 경우에만해야합니다 : sudo apt-get install gksu ubuntu-minimal. 그러나 더 나은 방법으로와 어떤 패키지가 동시에 제거되었는지 확인하십시오 sudo.
Radu Rădeanu

5
@Thebluefish 패키지가 호출됩니다 policykit-1(12.04 기준). 그것은 제거 할 수 있지만 일반적으로 같은 데스크톱 시스템에 싶어 패키지를 제거하는 비용 gnome-coreubuntu-desktop(서버에를, 그것은 필요한 패키지가 필요하지 더 가능성이 높습니다). 그러나 Radu, 계정에서 사용할 수있는 것은 pkexec apt-get …무엇입니까? 이것이 사용자가 구성한 것이거나 자동으로 발생합니까? 그렇다면 계정이이를 수행 할 수있는 것은 무엇입니까?
Gilles

1
@Gilles 과거에 이런 의미에서 일부 구성을 한 것을 기억하지 못합니다. 따라서 자동으로 발생한다고 가정합니다. 계정에서이를 수행 할 수있는 사항을 알고 있다면 공유하십시오. 이것은 내 전문 분야를 벗어납니다.
Radu Rădeanu

2
@Gilles 나는 그룹의 구성원이 사용할 수 있다고 생각sudo 합니다 pkexec. (내 경험이 그룹에 사용자를 추가하는 부여한다는 것입니다 pkexec능력을하고 제거에서 제거 pkexec능력을,이 방법으로, pkexec능력이 동일로했다 수여하는 것 sudo기본의 능력 sudoers에있게되고 있기 때문에 의미가 있습니다 설정, sudopkexec되는 루트로 주로 우분투에서 사용자를 관리자로 만드는 것입니다.) sudo제거가 sudo그룹 을 제거 한다고 생각하지 않습니다 . 그러나 나는 모든 합리적인 상황에서 나의 가정이 사실인지 완전히 확신 하지 못한다 .
Eliah Kagan

29

언제든지 복구 모드 로 부팅 하고 루트 셸로 드롭하여 sudo없이 설치할 수 있습니다.


16
여기 링크에서 필수 및 관련 부분을 추가 할 수 있습니까?
등록 된 사용자

grub 부팅 메뉴에서 복구 할 수없는 경우 <kbd> e </ kbd>를 누르고 부트 라인에`single`을 추가하십시오. 그런 다음 부팅시을 사용하여 루트 비밀번호를 설정하십시오 passwd. 정상적으로 재부팅하고, 명령 행 su에서 새 비밀번호를 입력 한 다음 apt-get install sudo, sudo-prefix 없이 실행 하십시오.
ExploWare

1
루트 쉘에서 인터넷 연결을 어떻게 얻었습니까?
Avinash Raj

22

예, chroot 방법으로 sudo패키지를 다시 설치할 수 있습니다 .

  • 우분투 라이브 디스크에서 먼저 부팅하십시오.

  • 이전에 설치된 Ubuntu 파티션을 원하는 디렉토리에 마운트하십시오 /media/ubuntu. 제 경우에는에 마운트했습니다 .

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • 기본적으로 파티션에 chroot 된 후 인터넷 연결을 할 수 없었으므로 아래 명령을 실행하여 작동하십시오.

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

훌륭한 코드에 대해 @Oli에게 감사드립니다 .

  • 이제 마운트 된 디렉토리로 chroot하십시오.

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • 다음 sudo을 실행하여 패키지를 설치하십시오 .

    # apt-get install sudo
    
  • 이제 chroot 환경에서 빠져 나옵니다.

    exit
    
  • 마지막으로 Ubuntu OS를 부팅하십시오. 이제 sudo명령을 테스트 하면 제대로 작동합니다.


4

init=/bin/sh커널 명령 행 에서 추가 매개 변수로 부팅하십시오 . 그러면 루트 쉘에 직접 들어가서 간단하게 실행 apt-get install sudo한 다음 재부팅 할 수 있습니다 . /etc/init.d/networking start네트워크 연결이 작동하려면 먼저 실행해야 할 수도 있습니다 . 복구 CD 나 라이브 디스크를 사용하는 것보다 훨씬 간단합니다.


1

root이 명령으로 이미 사용자 계정 비밀번호를 설정 또는 업데이트 한 경우 sudo passwd root제거에 대해 걱정할 필요가 없습니다. 계정에 sudo로그인 root한 다음 sudo,

su
apt-get install sudo

여기에 이미지 설명을 입력하십시오

확대하려면 여기를 클릭하십시오


루트 계정이 활성화되어 있고 우분투에서는 일반적으로 비활성화되어 있습니다. su올바른 암호를 입력했지만 PC에 "su : 인증 실패"가 표시됩니다.
BЈовић

예, 당신은 내가 말한대로 맞습니다. 이미 루트 사용자 계정 암호를 업데이트 한 경우 제거에 대해 걱정할 필요가 없습니다 sudo. 이제 시도해보십시오. sudo passwd root루트 사용자 계정 암호를 업데이트 할 수 있습니다. 이제 루트 계정에 다시 로그인하십시오. 실행하여 su다음 로그인 할 당신이 수 command.Once을 당신은에 의해 sudo.Now 퍼지는 sudo를 제거 할 수있는 자유를 갖게 될 것이다 sudo apt-get purge sudo실행하여 sudo는 패키지를 다시 설치 루트 계정에 내용 .login suapt-get install sudo
Avinash 주권을

-1

sudo (및 기타 루트 권한)는 실행중인 OS에만 적용됩니다. 바보 같은 sudo (또는 그 문제에 대해 / usr /)를 제거하고 pkexec와 같은 대체 프로그램이 없으면 다른 것으로 부팅하고 누락 된 소프트웨어를 복사 한 다음 다시 시작할 수 있습니다.

물리적 액세스는 시스템의 모든 소프트웨어 보안을 무효화합니다.


"기존 소프트웨어 복사"의 의미를 설명하기 위해 이것을 확장하는 것이 좋습니다.
Eliah Kagan

그래도 해결하기 쉬운 방법은 아닙니다.
Seth

반대 개입없이 @Seth 나는 다른 답변을 쓰지 않고 고칠 수 있다고 심각하게 의심합니다.
Braiam

그렇게하는 올바른 방법은 chroot이지만, 너무 야만적 인 방법은 많지 않습니다. 예를 들어, 루트 (Normal 방식)로 로그인하거나 루트 암호가없는 경우 init = / bin / bash를 커널 매개 변수로 설정하면 로그인 인증을 포함한 전체 init 시스템을 통과합니다.
오리온

-2

이 문제는 우분투에 매우 특정한 것으로 보입니다. 우분투 사용자는 처음에는 왜 sudo가 특별한 경우인지 이해하지 못했습니다 (많은 배포판이 기본적으로 설치하지 않습니다).

sudo가 전혀 필요하지 않습니다. 실제로 루트로 로그인하지 않고 루트 명령을 실행할 수있는 게으른 바로 가기입니다. 그러나 하나 이상의 명령 이상을 수행 해야하는 경우 sudo로 모든 것을 접두사로 사용하는 것이 끔찍합니다. 말할 것도없이 sudo권한과 루트 계정의 작동 방식에 대해 사용자는 무지하게 만듭니다. 루트로 로그인하고 시스템을 관리하고 로그 아웃하는 것이 훨씬 더 합리적입니다. su이미 일반 사용자로 로그인 한 경우 사용합니다. 또는 루트로 직접 로그인 할 수 있습니다.

물론 root암호를 설정 해야 합니다. 합리적인 구성입니다. 그렇지 않으면 아무도 수행 할 수없는 작업이있는 Windows와 같은 시스템이 있으며 어떻게 든 sudo사용할 수없는 경우 실제로 잠겨 있습니다 (작업 /etc/, 설정 $PATH및 기타가 필요합니다) 마운트 된 것-부팅 초기에 문제가 발생했을 경우에는 없을 수도 있습니다).


이것은 유용한 정보 일 수 있지만 질문에 대한 답은 아닙니다.
Luís de Sousa

과연. 루트 암호 비활성화되어 있고 sudo 기본적으로 설치되어 있는 시스템과는 관련이 없습니다 . 그리고 다른 답변을 보면 마지막 단락도 사실이 아님을 알 수 있습니다.
Oli

sudo우분투에서 제거를 고려하는 사용자 는 루트 암호 설정을 고려해야합니다 (다른 질문은 그 방법을 지적했습니다). 이 일에 신경 쓰지 않는 사용자는 sudo를 계속 사용할 수 있습니다.
오리온
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.