꼭두각시 사용자 모듈이 해시 비밀번호로 /etc/shadow를 업데이트하지 않습니다.

꼭두각시 사용자 모듈이 해시 비밀번호로 /etc/shadow를 업데이트하지 않습니다.

저는 Puppet을 사용하여 EC2 애플리케이션 인스턴스를 관리하고 있으며 여기에는 사용자 관리도 포함됩니다. 하지만 최근에 나는 puppet을 통해 추가한 사용자 이름으로는 로그인할 수 없는 버그를 발견했습니다. 손상된 인스턴스 중 하나(이 경우에는 키를 사용함)를 확인한 후 /etc/shadow 비밀번호 필드(두 번째 열)가 비어 있습니다. 즉, 해시된 비밀번호가 없음을 발견했습니다. 해시된 비밀번호가 사용자 생성 시 업데이트되지 않는 이유를 찾을 수 없습니다. 왜냐하면 사용자 모듈에 해시된 비밀번호가 제공되었기 때문입니다. 제가 아주 간단한 꼭두각시 '사용자' 모듈을 사용하고 있다고 믿으세요. 하지만 어떤 이유에서는 그렇지 않습니다. 사용자의 비밀번호를 업데이트합니다.

참고: 모듈은 내 로컬 컴퓨터(Centos 6.3)에서 제대로 작동합니다.

내 'user.pp' 모듈과 로그는 다음과 같습니다.

1)user.pp를 첨부합니다.

2) 꼭두각시 실행 로그:

mnotice: /Usertgrochowicz/ensure: created
mnotice: /Userjpollard/ensure: created
mnotice: /Userbottle/ensure: created
mnotice: /Userjburgar/ensure: created
mnotice: /Userrahul/ensure: created
mnotice: /Userjfenocchi/ensure: created
mnotice: /Userdwhite/ensure: created
mnotice: /Userbporter/ensure: created
mnotice: /Userasavarin/ensure: created
mnotice: /Userehalfin/ensure: created
mnotice: Finished catalog run in 1.69 seconds
mnotice: Finished catalog run in 0.21 seconds

3) 파일 /etc/shadow 항목이 생성되었습니다.

tgrochowicz:!!:15956:0:99999:7:::
jpollard:!!:15956:0:99999:7:::
bottle:!!:15956:0:99999:7:::
jburgar:!!:15956:0:99999:7:::
rahul:!!:15956:0:99999:7:::
jfenocchi:!!:15956:0:99999:7:::
dwhite:!!:15956:0:99999:7:::
bporter:!!:15956:0:99999:7:::
asavarin:!!:15956:0:99999:7:::
ehalfin:!!:15956:0:99999:7:::

4) OS 버전 및 아키텍처:

ec2-user@ip-10-100-38-78 ~$ uname -r
3.4.43-43.43.amzn1.x86_64
ec2-user@ip-10-100-38-78 ~$ uname -a
Linux ip-10-100-38-78 3.4.43-43.43.amzn1.x86_64 #1 SMP Mon May 6 18:04:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

이 모듈이 EC2 인스턴스의 내 모듈에서 비밀번호를 업데이트할 수 없는 이유를 아시나요?


죄송합니다. 이곳이 포럼이 아니라는 사실을 몰랐습니다. 내 질문에 대한 업데이트는 다음과 같습니다.

동의합니다.. 그리고 '사용자' 모듈의 전제 조건으로 Ruby-shadow가 이미 설치되어 있다는 것을 잊어버렸습니다. 여전히 /etc/shadow 비밀번호 필드는 비어 있습니다. 꼭두각시를 막고 있는 것이 무엇인지 전혀 모르겠습니다. 어떤 생각이 있나요?

Ruby-shadow가 설치되고 시작되었음을 나타내는 명령 로그는 다음과 같습니다.

[root@ip-10-100-39-44 ~]# ruby -e "require 'puppet' ; puts Puppet.features.libshadow?"
true
[root@ip-10-100-39-44 ~]# rpm -qa | grep ruby-shadow
ruby-shadow-1.4.1-15.2.amzn1.x86_64

다음은 "user" 모듈 이전에 설치된 'ruby-shadow' 패키지를 보여주는 꼭두각시 로그입니다:

[root@ip-10-100-39-44 ~]# less /var/log/messages 
*(/Stage[main]/Packages/Yumrepo[epel]/enabled) enabled changed '0' to '1'
Sep 20 03:08:50 ip-10-100-39-44 yum[2631]: Installed: ruby-shadow-1.4.1-15.2.amzn1.x86_64
Sep 20 03:08:51 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]/Packages/Package[ruby-shadow]/ensure) created*

*(/Stage[main]/Env::Sshd/Augeas[PasswordAuthentication]/returns) executed successfully
Sep 20 03:10:32 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]/Env::Sshd/Service[sshd]) Triggered 'refresh' from 1 events
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]//Exec[wait_for_5_sec]/returns) executed successfully
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/User[bporter]/ensure) created
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/User[asavarin]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[ehalfin]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[jpollard]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[bottle]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[jburgar]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[rahul]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[tgrochowicz]/ensure) created
Sep 20 03:10:40 ip-10-100-39-44 puppet-apply[2471]: (/User[jfenocchi]/ensure) created
Sep 20 03:10:40 ip-10-100-39-44 puppet-apply[2471]: (/User[dwhite]/ensure) created*

감사해요

답변1

Ruby(그리고 Puppet)는 Ruby가 섀도우 비밀번호 파일을 수정할 수 있도록 하기 위해 ruby-shadow라는 라이브러리를 설치해야 합니다.

RHEL/CentOS에서는 Ruby-shadow rpm입니다. 다른 플랫폼에서는 ruby-shadowlib라고 불릴 수도 있습니다.

꼭두각시 문서는사용자 유형공급자->useradd 섹션 아래에 있습니다.

다음과 같은 작업을 수행하여 올바른 것을 로드하고 있는지 확인할 수 있습니다.

ruby -e "require 'puppet' ; puts PUppet.features.libshadow?"

제대로 로드되면 true를 반환해야 합니다.

관련 정보