/etc/shadow에서 사용자의 비밀번호를 변경하세요.

/etc/shadow에서 사용자의 비밀번호를 변경하세요.

사용자의 비밀번호를 변경하고 싶습니다 /etc/shadow. 나할 수 없다비밀번호 변경 프로그램(예: passwd.)은 편집을 통해 수행되어야 합니다 /etc/shadow. 파일은 /etc/shadow마운트된 하드 드라이브에 있으며 chroot는 작동하지 않습니다.

예를 들어:

root:$asdf.1AH.MJ3sivd4$YFoFnasdf4cZW9H6G6cbT4.1VBmasdfmv.a0wCU/i3zEFasdfasdf4W.:15843:0:99999:7:::
otheruser:$asdf.1AH.MJ3sivd4$YFoFnasdf4cZW9H6G6cbT4.1VBmasdfmv.a0wCU/i3zEFasdfasdf4W.:15843:0:99999:7:::

누군가 루트의 비밀번호를 변경하는 쉘 스크립트를 제공 할 수 있습니까 sed?awk

답변1

빈 비밀번호가 문제가 되지 않는다면 가장 쉬운 해결책은 /etc/passwd대신 파일을 변경하는 것입니다 /etc/shadow.

이 파일의 예시 라인은 /etc/passwd다음과 같습니다:

root:x:0:0:root:/root:/bin/bash

이 줄의 "x"는 비밀번호가 실제로 섀도우 파일에 해시된 형식으로 저장된다는 의미입니다. 당신이 할 수 있는 한 가지는 다음과 같이 제거하는 것입니다:

root::0:0:root:/root:/bin/bash

root그런 다음 실제로 사용자 이름 과 빈 비밀번호를 사용하여 로그인할 수 있습니다 .

루트 사용자의 비밀번호를 공백으로 두지 않으려면 루트 비밀번호를 제거한 후 루트 사용자로 변경하십시오.

user@machine$ su root
password: [blank]

그런 다음 다음 명령을 실행하여 루트 비밀번호를 변경합니다.

root@machine# passwd
New password: [desired password]
Retype new password: [desired password]

이제 루트 비밀번호를 알았습니다.

답변2

mkpasswd 도구를 사용하여 이를 수행할 수 있습니다. Cyberciti.biz에는 다음과 같은 제목으로 사용 방법에 대한 좋은 소개 가이드가 있습니다.Linux/UNIX: mkpasswd를 사용하여 임의의 비밀번호 생성.

mkpasswd --char=10 --crypt-md5

패키지는 일반적으로 호출되지만 makepasswd도구는 일반적으로 호출됩니다 mkpasswd.

보다매뉴얼 페이지자세한 내용은.

/etc/shadow직접 콘텐츠 생성

다음 python 명령은 파일에 들어가는 부분을 생성합니다 /etc/shadow.

파이썬

$ python -c "import crypt, getpass, pwd; \
         print crypt.crypt('password', '\$6\$SALTsalt\$')"

진주

$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'

다음 출력을 생성합니다.

$6$SALTsalt$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/

/etc/shadow 변경

다음은 위 명령에서 새로 생성된 비밀번호 필드를 사용하여 기존 항목을 변경하는 명령입니다.

perl -pe 's|(root):(\$.*?:)|\1:\$6\$SALTsalt\$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/:|' /etc/shadow > /etc/shadow.new

노트:이것은 조잡한 예이지만 작동합니다. 해시된 비밀번호를 생성한 명령에서 결과를 가져와야 하며 달러 기호($)를 슬래시(\$)로 이스케이프해야 합니다.

결과는 새 파일 /etc/shadow.new에 저장됩니다. 결과를 확인한 후 /etc/shadow새 파일로 교체 하시면 됩니다 /etc/shadow.new.

답변3

/etc/shadow에서 모든 사용자 비밀번호를 삭제하고 시스템을 시작한 후 비밀번호 없이 로그인한 후 passwd 명령을 사용하십시오. 가능하다면 완료될 때까지 시스템을 네트워크에 연결하지 마십시오.

관련 정보