활성 루트 계정이 있지만 비밀번호를 모릅니다.
내 비밀번호를 변경하거나 도구를 사용하여 다른 사용자를 생성하려면 passwd
내 비밀번호를 알아야 합니다. 이로 인해 문제가 발생합니다. 하지만 저는 루트이기 때문에 /bin/
디렉토리에 있는 임의의 바이너리를 대체할 수 있습니까? passwd
소스 코드를 수정하고 컴파일한 후 원본을 새 코드로 바꾸면 됩니다. 정말 그렇게 간단합니까? 예방 조치가 있나요?
내 테스트 시스템은 다음과 같습니다. FreeBSD 11.0
+Ubuntu 18.04
답변1
내가 본 대부분의 Linux는 레거시 비밀번호를 passwd
요구하지 않도록 구성되었습니다 .root
root@xxx ~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
물어보거나 수동으로 편집 하더라도 passwd
시도할 수 있으며 ( 비밀번호 해시는 두 번째 필드, 두 콜론 사이의 긴 문자 소개) 먼저 해시를 계산해야 합니다. 이 작업을 수행하는 도구는 다음과 같습니다.chpasswd
/etc/passwd
/etc/shadow
openssl
$ echo foobar | openssl passwd -1 -stdin
$1$G/nr44th$wn16q7ITSvfrNq4amDfzn1
(실제로는 MD5
기반 $1$
해시를 사용해서는 안 되지만 적어도 알려진 값으로 재설정한 후 해시를 변경하는 데 사용할 수 있기 때문에 문제가 되지 않습니다 passwd
.)