/etc/shadow
가상 머신 이미지 내부의 루트 비밀번호를 변경하려면 수동으로 편집해야합니다 .
/etc/shadow
비밀번호를 사용하고 표준 출력에서 호환되는 비밀번호 해시를 생성하는 명령 행 도구가 있습니까?
답변
동일한 명령으로 다음 명령을 사용할 수 있습니다.
방법 1 (md5, sha256, sha512)
openssl passwd -6 -salt xyz yourpass
참고 : 전달 -1
하면 MD5 비밀번호, -5
SHA256 및 -6
SHA512 (권장) 가 생성됩니다.
방법 2 (md5, sha256, sha512)
mkpasswd --method=SHA-512 --stdin
방법 수용 md5
, sha-256
그리고sha-512
방법 3 (des, md5, sha256, sha512)
@tink가 제안했듯이 다음을 사용 chpasswd
하여 비밀번호를 업데이트 할 수 있습니다 .
echo "username:password" | chpasswd
또는로 암호화 된 비밀번호를 사용할 수 있습니다 chpasswd
. 먼저 이것을 사용하여 생성하십시오 :
perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'
그런 다음 나중에 생성 된 비밀번호를 사용하여 업데이트 할 수 있습니다.
echo "username:encryptedPassWd" | chpasswd -e
이 암호화 된 비밀번호는 다음과 같이 비밀번호를 사용하여 새 사용자를 작성하는 데 사용할 수 있습니다.
useradd -p 'encryptedPassWd' username
답변
Ubuntu 12.04에는 whois 패키지에서 mkpasswd가 있습니다.
mkpasswd -m sha-512 -S saltsalt -s <<< YourPass
어디:
-m
= TYPE 방법을 사용하여 비밀번호를 계산하십시오. TYPE이 도움이되면 사용 가능한 방법이 인쇄됩니다.-S
= 소금 사용.
예 :
$ mkpasswd -m help
-s = Read password from stdin
답변
이 솔루션에는 다음과 같은 이점이 있습니다.
- 추가로 설치할 것이 없습니다
- 쉘 히스토리에 비밀번호를 저장하지 않습니다
- 당신을 위해 무작위 소금을 생성합니다
- 현대적이고 강력한 해싱 알고리즘 인 SHA-512를 사용합니다.
-
실수를 피하기 위해 암호를 다시 입력하십시오.
$ python3 -c "from getpass import getpass; from crypt import *; \ p=getpass(); print('\n'+crypt(p, METHOD_SHA512)) \ if p==getpass('Please repeat: ') else print('\nFailed repeating.')"
참고 문헌
답변
데비안 기반 시스템이없는 사람들. Python3도 잘 작동합니다.
python3 -c 'import crypt; print(crypt.crypt("test"))'
참고 : 문자열 “test”는 암호화 된 문자열로 생성하는 비밀번호입니다.
답변
현재 방법 중 어느 것도 받아 들일 수 없습니다-그들은 명령 줄에서 암호를 전달합니다 (쉘 역사에서 끝남). 추가 유틸리티 ( python3
, makepasswd
) 설치가 필요 하거나 하드 코딩 된 소금을 사용하거나 오래된 해싱 기술을 사용합니다.
이 방법은 암호를 묻는 메시지가 나타난 후 SHA-512 해시를 생성하고 임의의 소금을 사용합니다.
비표준 라이브러리없이 Python 2를 사용하는 방법 :
python2 -c 'import crypt, getpass,os,base64; print crypt.crypt(getpass.getpass(), "$6$"+base64.b64encode(os.urandom(16))+"$")'
프롬프트없이 수행하려면 : (이것은 암호를 명령 기록에 남겨 둡니다)
python2 -c 'import crypt, os,base64; print crypt.crypt("MyPassword", "$6$"+base64.b64encode(os.urandom(16))+"$")'
답변
openssl
와 chpasswd -e
쌍은 RHEL6에서 내 경우에는 작동하지 않았다. 결합 openssl passwd
과 usermod -p
지휘는 일을했다.
솔트 값과 함께 비밀번호의 해시 값을 생성하십시오.
$ openssl passwd -1 -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.
그런 다음 암호화 된 문자열을 usermod에 복사하십시오. 작은 따옴표로 묶어야합니다.
$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root
섀도 파일에서 확인하십시오.
$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::
답변
암호를 생성하는 또 다른 방법은 openssl
도구를 사용하는 것 입니다.
MD5 비밀번호 생성
openssl passwd -1 -salt SaltSalt SecretPassword
# output: $1$SaltSalt$FSYmvnuDuSP883uWgYBXW/
DES 비밀번호 생성
openssl passwd -crypt -salt XR SuprScrt
# output: XR1dOp2EVMph2