"sudo" 명령이 깨졌습니다. [3번의 잘못된 시도, 프롬프트 없이 전달됨] Debian 10

"sudo" 명령이 깨졌습니다. [3번의 잘못된 시도, 프롬프트 없이 전달됨] Debian 10

나는 정말로 당신의 도움이 필요합니다. 루트와 사용자(sudo 그룹에 추가됨)라는 2명의 사용자가 있는 debian 10 서버가 있습니다. 저는 RDP의 사용자 계정을 사용하고 있으며 "sudo" 명령은 항상 잘 작동합니다.

문제는 사용자 계정에서 다음을 수행하려고 할 때 시작됩니다.

$ echo 'deb http://ftp.de.debian.org/debian bookworm main' >> /etc/apt/sources.list

libcrypt와 관련하여 몇 가지 오류가 있었습니다. 다음과 같은 것을 시도했습니다(기억이 잘 나지 않음).

$ sudo echo 'deb http://ftp.de.debian.org/debian bookworm main' >> sudo /etc/apt/sources.list

제가 "sudo"에 응답한 것이 문제인 것 같은데요? 저는 리눅스에 대해 잘 알지 못해 며칠간 구글링을 해봤지만 문제를 해결할 수 없었습니다. sudo를 사용하는 대부분의 명령은 비밀번호를 묻는 메시지를 표시하지 않고 즉시 다음 출력을 받습니다.

$ sudo whoami
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts

내가 시도하면 :

$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

sudo 액세스 권한이 있는 모든 명령이 거부됩니다. Google에서 검색한 프로필을 변경할 수 없습니다. 따라서 RDP를 통해서만 사용자 계정에 액세스할 수 있으며 sudo 없이 시도하면 다음과 같은 결과를 얻습니다.

$ apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

문제를 이해하고 해결하도록 도와주세요.

답변1

bookworm업그레이드할 때 버전을 건너뛸 수 없기 때문에 데비안 10에 저장소를 추가하는 것(= 출시되면 데비안 12가 됩니다) 은 나쁜 생각입니다. 먼저 데비안 11 "bullseye"로 업그레이드한 다음 "bookworm"으로 업그레이드해야 합니다.

다행스럽게도 쓰기 위해서는 루트 액세스가 필요하므로 첫 번째 시도( 없이 sudo)는 실패합니다 ./etc/apt/sources.list

/usr/bin당신이 기억하는 두 번째 명령의 버전은 당신이 그것을 실행할 때 루트가 아니라고 가정할 때 큰 문제를 일으키지 않아야 합니다.

sudo echo 'deb http://ftp.de.debian.org/debian bookworm main' >> sudo /etc/apt/sources.list

이 명령은 실제로 "루트 권한으로 표준 출력에 작은따옴표로 묶인 텍스트를 쓴 다음 (일반 사용자로서) 현재 디렉터리의 "sudo"라는 파일에 추가합니다(파일이 없으면 생성)는 의미입니다. 당신의 기억이 틀리지 않는 한 이것은 큰 해를 끼치지 않을 것입니다.

(성공적으로) sudo루트 액세스 권한을 사용하거나 가지지 않으면 다른 패키지 관리 명령을 사용할 수 없습니다 apt. 이러한 명령이 작동하려면 루트 액세스가 필요하기 때문입니다.

몇 가지 사항을 확인하는 것이 좋습니다.

실제 상황은 어떻습니까 /etc/apt/sources.list?

뛰어 less /etc/apt/sources.list가서 확인해 보세요. 특별한 권한 없이 일반 사용자로 이 작업을 수행할 수 있어야 합니다.

당신은 무엇을 했나요?실제로하다?

history기억에 의존하는 대신 명령을 사용하여 명령 기록을 확인하세요.

지금 무슨 일이 일어나고 있나요?

명령을 사용하면 실행하여 type sudo실제로 실행되는 내용을 확인할 수 있습니다 sudo. 일반적으로 다음과 같이 응답해야 합니다.

sudo is /usr/bin/sudo

아마도

sudo is hashed (/usr/bin/sudo)

sudo뭔가 다른 것을 알려준다면, $PATH 디렉토리 앞에 비표준적인 이름이 있거나 /usr/bin해당 이름으로 쉘 별칭이나 함수를 정의했는데 sudo실제 이름 대신 실행되고 있는 것입니다 sudo command.

이것이 문제라면 그냥 가 아닌 sudo전체 경로를 지정하여 실제 명령을 사용할 수 있어야 합니다 ./usr/bin/sudosudo


bookworm에 저장소를 성공적으로 추가한 것 같습니다 /etc/apt/sources.list. 패키지도 설치되어 있으면 unattended-upgrades시스템이 Debian 10 "buster"에서 "bookworm"(향후 Debian 12, 아직 베타 버전)으로 직접 업그레이드하려고 시도했을 수 있습니다. Debian 11을 건너뛰십시오. ...이건 작동하지 않습니다.

를 설치하려고 시도하면 저장소를 추가한 후 많은(전부는 아님) 시스템 라이브러리의 업그레이드를 트리거하는 python3-dev종속성 연쇄가 발생할 수도 있습니다 .python3.10-devlibpython3.10libpython3.10-devpython3.10bookworm

사실, 당신은프랑켄데비안을 만들었습니다: 서로 다른 버전의 패키지를 이상하게 조합했지만 함께 작동할 것이라고 약속한 적은 없습니다.

/var/log/dpkg.log수동이든 자동이든 모든 최근 패키지 관리 작업을 기록해야 하는 하위 수준 패키지 관리 로그입니다. 일반 사용자가 읽을 수 있어야 합니다. 문제가 시작되었을 때 기록된 내용을 보셨나요?

각 줄은 타임스탬프로 시작해야 하며 그 뒤에는 특정 작업을 설명하는 단어가 와야 합니다. 흥미로운 줄에는 installand/or 와 같은 동작 단어가 있어야 합니다 .upgraderemovepurge

<none>작업 단어 뒤에는 패키지 이름, 이전 버전(또는 해당되지 않는 경우) 및 새 버전(또는 ) 이 와야 합니다 <none>.

타임스탬프가 있는 행을 가져오는 경우뒤쪽에책벌레 저장소를 추가하면(수정 시간 확인 ) 이 줄은 어떤 패키지가 교체되었는지 정확히 알려줄 것입니다 . /etc/apt/sources.list아마도 .bookworm

안타깝게도 시스템에 대한 RDP 액세스 권한만 있기 때문에 buster시스템 부트로더에 액세스할 수 있는 사람의 도움 없이는 루트 액세스 권한을 얻고 패키지를 적절한 버전으로 다시 다운그레이드하지 못할 수도 있습니다.

복구하려면 외부 미디어에서 시스템을 복구 모드로 부팅한 다음 네트워크 인터페이스를 활성화하고 chroot손상된 시스템에 루트로 들어가야 할 수도 있습니다. 그러면 /var/log/dpkg.log저장소를 추가할 때나 그 이후에 파일에 나열된 설치/업데이트/제거 작업을 되돌려 잘못 업그레이드된 패키지를 다운그레이드 할 수 있습니다 bookworm.

관련 정보