2014-04-15 1 views
4

요리사에서 런타임에 사용자 생성을 위해 암호를 설정하는 방법. openssl을 사용하고 chef의 사용자 자원에 설정하는 암호화 메커니즘 대신. 대신 다음 방법요리사에서 런타임에 사용자 암호를 설정하는 방법

:

openssl passwd -1 "theplaintextpassword" 
$1$JJsvHslV$szsCjVEroftprNn4JHtDi. 

후 사용자 리소스에 설정

user "random" do 
    supports :manage_home => true 
    comment "Random User" 
    uid 1234 
    gid "users" 
    home "/home/random" 
    shell "/bin/bash" 
    password "$1$JJsvHslV$szsCjVEroftprNn4JHtDi." 
end 

어떤 대안이 있습니까? ..

+0

http://judepereira.com/blog/use-ruby-to-generate-your-shadow-password/에서 더 .. 내 문제는 해결하지 않습니다. 여전히 해결책을 찾고 있습니다 –

+0

@mohan 제 답변으로 문제가 해결되지 않습니까? 귀하의 질문과 마찬가지로 해시를 생성합니다. –

답변

3

당신은 당신의 요리 책에 루비를 사용하여 암호의 암호문을 생성하는 시도 할 수 : $6$vf1ehwzs$VAxaPBAeXjvEMboee.xbJgMOXlCrJ.eJDPkqP.16fGyAqjq1IDkh0OpEXFRo1W04G7tl02YMQz7dKmGKLVaRd/

이를 실행 한 후

require 'digest/sha2' 

password = "[email protected]" 
salt = rand(36**8).to_s(36) 
shadow_hash = password.crypt("$6$" + salt) 

shadow_hash는 다음과 같은 문자열을 포함 그런 다음 user 자원 :

user "random" do 
    supports :manage_home => true 
    comment "Random User" 
    uid 1234 
    gid "users" 
    home "/home/random" 
    shell "/bin/bash" 
    password shadow_hash 
end 

+0

이것은 작동하지 않습니다. 사용자 자원 문제는 암호 섹션에서 .. 암호화 된 데이터를 기대합니다 .. –

+0

그게 바로 코드의 상위 부분입니다. 사용자 자원에서 해시 된 문자열을 사용할 수 있도록 암호의 해시를 작성합니다. –

1

아직 당신이 찾고있는 것을 찾지 못했지만 openssl 요리 책은 아주 가깝습니다. 어떤 방법으로는 문자열 입력을 받아들이는 방법을 바꾸고 unix-crypt 라이브러리를 이용하여 문자열을 암호화하거나 심지어 요리 책에서 사용 된 패턴을 따라 자신의 리소스를 만들 수 있어야합니다.

https://github.com/opscode-cookbooks/openssl

https://github.com/mogest/unix-crypt

관련 문제