%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%9C%20%ED%9B%84%20%EB%B3%B5%EA%B5%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이것은 이론적인 질문입니다.올바른 권한으로 이러한 명령을 실행하면 어떻게 되나요? su와 sudo를 어떻게 복원할 수 있나요?
답변1
scp
"알려지고 양호한 /bin/su
" /usr/bin/sudo
이웃 서버에서 루트로 콘솔에 로그인합니다.
답변2
이 바이너리 중 어느 것도 필요하지 않습니다다시 설치패키지 - 따라서 루트 액세스 권한을 얻고 시스템에서 사용하는 패키지 관리자를 사용하여 이러한 바이너리가 포함된 패키지를 다시 설치할 수 있습니다. apt
이보다 yum
더 극적인 것은 없습니다.
비결은 루트 액세스 권한을 얻는 것입니다. 루트 계정이 잠금 해제되어 있고 비밀번호를 알고 있다면( 사용 중인 경우 su
비밀번호를 알고 있는 경우) 이는 간단합니다. 이 시점에서는 루트로 시스템에 로그인하고 패키지를 다시 설치하기만 하면 됩니다.
루트 액세스 권한이 없으면 복구 모드로 재부팅해 볼 수 있습니다(배포판에 활성화된 경우). 그렇다면 루트 프롬프트가 표시되고 필요한 패키지를 다시 설치할 수 있습니다.
복구 모드를 작동할 수 없거나 활성화하지 않은 경우 Live CD를 부팅해야 합니다. 라이브 CD로 부팅한 후 시스템의 루트 파일 시스템을 어딘가에 마운트하고 루트로 이동한 다음 패키지를 다시 설치할 수 있습니다. 예를 들어:
cd /location/of/new/root
mount -t proc proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/
cp /etc/resolv.conf etc/resolv.conf
chroot /location/of/new/root /bin/bash
# <install packages here>
답변3
SSH를 통한 루트 액세스 권한이 있는 경우 다른 서버에서 바이너리를 복원하거나 최신 백업에서 두 파일을 모두 업로드하세요.시스템을 백업했지, 그렇지?- 적합한 서버에서 다운로드하고 거기에서 다운로드하세요):
ssh root@woundedserver "cd /usr/bin; wget http://myamazonserver/files/su; chmod 4755 su"
or
scp /usr/bin/su root@woundedserver:/usr/bin
# I never remember whether scp preserves permissions, so just to be sure:
ssh root@woundedserver "chmod 4755 /usr/bin/su"
or even (I just tried, the md5sums match after the copy)
cat /a/good/su/binary | ssh root@woundedserver "cat >/usr/bin/su; chmod 4755 /usr/bin/su"
루트가 SSH를 통한 로그인을 허용하지 않거나 이 가능성을 비활성화했거나 SSH 포트도 닫은 경우 유일한 방법은 init "hack"으로 부팅하거나 복구 CD에서 부팅하는 것입니다.저것작동해야합니다.
만약 너라면반품악용 가능한 취약점이 발견될 때까지 기다리거나 최신 백업에서 모든 것을 다시 설치하여 GRUB를 보호하고 파일 시스템을 암호화할 수도 있습니다.시스템을 백업했지, 그렇지?:-)