나는 정말로 당신의 도움이 필요합니다. 루트와 사용자(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/sudo
sudo
bookworm
에 저장소를 성공적으로 추가한 것 같습니다 /etc/apt/sources.list
. 패키지도 설치되어 있으면 unattended-upgrades
시스템이 Debian 10 "buster"에서 "bookworm"(향후 Debian 12, 아직 베타 버전)으로 직접 업그레이드하려고 시도했을 수 있습니다. Debian 11을 건너뛰십시오. ...이건 작동하지 않습니다.
를 설치하려고 시도하면 저장소를 추가한 후 많은(전부는 아님) 시스템 라이브러리의 업그레이드를 트리거하는 python3-dev
종속성 연쇄가 발생할 수도 있습니다 .python3.10-dev
libpython3.10
libpython3.10-dev
python3.10
bookworm
사실, 당신은프랑켄데비안을 만들었습니다: 서로 다른 버전의 패키지를 이상하게 조합했지만 함께 작동할 것이라고 약속한 적은 없습니다.
/var/log/dpkg.log
수동이든 자동이든 모든 최근 패키지 관리 작업을 기록해야 하는 하위 수준 패키지 관리 로그입니다. 일반 사용자가 읽을 수 있어야 합니다. 문제가 시작되었을 때 기록된 내용을 보셨나요?
각 줄은 타임스탬프로 시작해야 하며 그 뒤에는 특정 작업을 설명하는 단어가 와야 합니다. 흥미로운 줄에는 install
and/or 와 같은 동작 단어가 있어야 합니다 .upgrade
remove
purge
<none>
작업 단어 뒤에는 패키지 이름, 이전 버전(또는 해당되지 않는 경우) 및 새 버전(또는 ) 이 와야 합니다 <none>
.
타임스탬프가 있는 행을 가져오는 경우뒤쪽에책벌레 저장소를 추가하면(수정 시간 확인 ) 이 줄은 어떤 패키지가 교체되었는지 정확히 알려줄 것입니다 . /etc/apt/sources.list
아마도 .bookworm
안타깝게도 시스템에 대한 RDP 액세스 권한만 있기 때문에 buster
시스템 부트로더에 액세스할 수 있는 사람의 도움 없이는 루트 액세스 권한을 얻고 패키지를 적절한 버전으로 다시 다운그레이드하지 못할 수도 있습니다.
복구하려면 외부 미디어에서 시스템을 복구 모드로 부팅한 다음 네트워크 인터페이스를 활성화하고 chroot
손상된 시스템에 루트로 들어가야 할 수도 있습니다. 그러면 /var/log/dpkg.log
저장소를 추가할 때나 그 이후에 파일에 나열된 설치/업데이트/제거 작업을 되돌려 잘못 업그레이드된 패키지를 다운그레이드 할 수 있습니다 bookworm
.