/ etc / shadow에 대한 암호화 된 비밀번호를 어떻게 만들어야합니까?


9

Subversion 저장소 액세스를 위해 Linux 상자에 새 계정을 설정하고 새 사용자에게 비밀번호를 보낼 수 있습니다. 그러나이 새로운 사용자가 자신이 좋아하는 암호를 / etc / shadow 파일에 직접 복사 / 붙여 넣기 할 수있는 형식으로 암호화하는 명령 줄 유틸리티가 있다고 생각합니다.

암호화 된 암호를 생성하기 위해이 새 사용자가 콘솔 (예 : Bash)에서 실행해야하는 전체 명령은 무엇입니까?

업데이트 : 사용자는 머신에 로그인 할 수 없으며 해당 계정은 svn + ssh : // 액세스에만 사용됩니다. 따라서 사용자는 스스로 변경할 수 없습니다.


사용자는 bash 스크립팅에 대해 묻습니다. 왜냐하면 수동 으로이 작업을 수행하지 않기 때문입니다.
Tim Post

답변:


15

사용자는 자신의 컴퓨터에서 다음과 같은 것을 실행할 수 있습니다.

echo "password"|openssl passwd -1 -stdin

그런 다음 출력을 보냅니다.


+1은 원하는 것을 정확하게 수행합니다.
Antoine Benkemoun

내가 전화 할 때마다 왜 그 명령이 다른 가치를 부여합니까?
Egon Willighagen

2
출력 형식은 $ id $ salt $ encrypted입니다. 다른 id와 다른 salt는 다른 암호화 문자열을 제공합니다. id는 사용 된 알고리즘입니다 : 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo

좋아, 그래서 특정 ID (항상 같음)와 소금 (각 호출마다 변경됨)을 트리거하는 방법을 알아야합니다 ...
Egon Willighagen

2

섀도우의 비밀번호 형식은 다를 수 있습니다. 당신은 그것을 MD5 또는 좋은 오래된 DES3으로 설정할 수 있습니다 ... 당신은 사용자에게 암호를 보내고 첫 번째 로그인에서 암호를 변경하도록 강요하고 있습니다 ( # chage -d 0 username)


1

비밀번호를 암호화하여 사용자에게 보내지 말고 다음과 같이 입력하십시오.

passwd

추가 작업없이 비밀번호를 변경할 수 있다는 추가 이점으로 원하는 모든 작업을 수행합니다.

편집 :에 따르면 , 아마도 여러분이 데비안 / 우분투 얻을 수 makepassword라는 명령이있다.


사용자가 이미 로그인되어 있어야하기 때문에 OP는 솔루션 이 사용자가 처음 로그인 하기 전에 비밀번호를 안전하게 설정하기를 원합니다 .
Daniel Pryden

1
무작위로 비밀번호를 생성하고 로그인 할 때 비밀번호를 변경하는 것은 비밀번호를 생성하고 수동으로 추가하는 것만 큼 안전합니다.
Brendan Long

사용자 것이다 실제로 결코 로그인 (쉘 : / 빈 / 거짓) 만 허용 SVN 읽기 / 쓰기 액세스 ...
에곤 Willighagen

2
당신은 쉘을 설정할 수 있습니다 :는 / usr / 빈 / passwd에 : D를
브랜든 롱에게

1
나는 농담으로 마지막 코멘트를 의미하지만, 분명히 작동합니다 : markmail.org/message/ekuxvnhdagywy4i5
브랜든 긴

0

/ etc / passwd 및 / etc / shadow 는 일반적인 명령 줄 도구 (예 : grep, awk, sed, tr 등)로 토큰 화하기가 매우 쉽습니다.

흥미로운 점은 / etc / shadow의 실제 비밀번호 해시 필드이며, 접두어는 비밀번호의 암호화 방법을 알려줍니다. 남자 (5) 그림자에서 :

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

암호화 방법은 설치된 OS의 수명에 따라 다릅니다. / etc / shadow의 두 번째 필드에 특별한주의를 기울여야합니다.

시스템이 사용하고있는 해시, DES, MD5 등을 쉽게 감지 할 수 있도록 모든 노력을 기울여야합니다.



0

명령 행을 통해이 비밀번호를 생성하는 방법이 있습니까? 예, 데비안 패키지 makepasswd를 사용하면 (MD5 만 해당) :

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

그러나 이것은 / etc / shadow 내부에서 복사하여 붙여 넣기를 통해 작동하지 않습니다. 일부 Linux 배포판에서 스크립트를 통해 비밀번호를 변경하려면 다음을 사용할 수 있습니다.

echo oracle:mypasswd | chpasswd

또는

echo -n mypasswd | passwd --stdin oracle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.