Fedora, CentOS 또는 RHEL과 같은 Red Hat 배포판에서 명령 mkpasswd
에는 일반적으로 Debian / Ubuntu에 포함 된 버전과 동일한 스위치 세트가 포함되어 있지 않습니다.
참고 : 이 명령 mkpasswd
은 실제로 expect
패키지의 일부이므로 피해야합니다. 다음 명령 중 하나를 사용하여 패키지가 속하는 패키지를 찾을 수 있습니다.
$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd
예
$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386
이 두 가지 방법 모두 rpm
패키지를 찾을 필요가 없기 때문에 사용하는 것보다 우수합니다 */mkpasswd
.
해결 방법
이 문제를 해결하려면 다음 Python 또는 Perl one-liner를 사용하여 SHA-512 암호를 생성하십시오. 이것들은 소금에 절인 것을 유의하십시오 :
파이썬 (> = 3.3)
$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
또는 스크립팅 된
$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'
파이썬 (2.x 또는 3.x)
$ python -c "import crypt, getpass, pwd; \
print(crypt.crypt('password', '\$6\$saltsalt\$'))"
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
참고 : $ 6 $는 sha512를 나타냅니다. 알고리즘을 지정하는이 방법에 대한 지원은 OS 레벨 crypt (3) 라이브러리 함수 (일반적으로 libcrypt)의 지원에 따라 다릅니다. 파이썬 버전에 의존하지 않습니다.
펄
$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
이 예에서 비밀번호는 문자열 "password"이고 솔트는 "saltsalt"입니다. 두 예제 모두 $ 6 $ 를 사용하고 있는데 이는 crypt가 SHA-512를 사용하기를 원한다는 것을 나타냅니다.
sha1sum
않습니까?