새 사용자가 첫 번째 로그인시 암호를 변경하도록 Linux를 구성하는 방법


9

RHEL 6.6에서 사용자 암호 정책을 구성하려고하는데 시스템이 새로 만든 사용자에게 처음 로그인 할 때 초기 암호를 변경하도록 요청합니다.

참고로, EXPIRE 변수를 0으로 설정하고 INACTIVE를 -1로 설정하려고 시도했지만 / etc / default / useradd에 있지만 설정 후 새 사용자 계정 만료로 연결됩니다. 이 변수를 사용한 사용자 작성 후의 chage 명령 출력은 다음과 같습니다.

 # chage -l foo
 Last password change                                : Feb 22, 2015
 Password expires                                    : May 23, 2015
 Password inactive                                   : never
 Account expires                                     : Feb 22, 2015
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

foo 사용자로 로그인하려고하면 "귀하의 계정이 만료되었습니다. 시스템 관리자에게 문의하십시오."라는 메시지가 표시됩니다.

하지만 '사용자 정보'창을 열면 '비밀번호 정보'탭을 선택하고 '다음 로그인시 비밀번호 변경'을 선택하면 결과가 나타납니다. 새 사용자는 암호를 변경하라는 메시지를 표시합니다. 이 경우 chage 명령의 출력은 다음과 같습니다.

 # chage -l foo2
 Last password change                                : password must be changed
 Password expires                                    : password must be changed
 Password inactive                                   : password must be changed
 Account expires                                     : never
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

foo2 사용자로 로그인하면 시스템에서 암호를 변경하도록 요청합니다.

그래서, 두 번째 경우처럼 생성시 사용자 계정 매개 변수를 설정하도록 시스템을 구성하는 방법이 있습니까?

업데이트

 cat /etc/default/useradd
 # useradd defaults file
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=0
 SHELL=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes

INACTIVE에 댓글을 달거나 양수 값으로 설정하더라도 계정은 만료되었지만 비밀번호는 아닙니다.

또한 컴퓨터에서 PAM을 구성했습니다.

업데이트 2

RHEL 6.2 및 PAM 구성이없는 시스템에서이 내용을 확인했습니다. 효과는 동일합니다.


사용을 시도해야합니다. chage -d 0 {user-name}.
Hastur

추가 명령이나 동작이 아닌 useradd 명령 중에 자동으로 수행하는 방법이 있습니까?
Mike_Lychkov

1
EXPIRE=0 ...에서 /etc/default/useradd 그 일을해야 해. 나는 너를 읽으려고했다. 주석 처리되지 않은 행을 추가 할 수 있습니까? /etc/default/useradd? INACTIVE = -1을 지정하지 않더라도 다른 값을 지정하거나 해당 행에 주석을 달 경우 잠금됩니다. 명령 줄로 계정을 만든 경우에도 계정이 잠기는 경우 지정할 수 있습니까? 그리고 제발, 다른 질문이있을 때 다른 페이지에 게시하십시오.
Hastur

1
사용 adduser 당신이 chage ~에있는 명령 /usr/local/sbin/adduser.local. / etc / shadow의 나이 필드를 직접 0으로 설정할 수도 있습니다. useradd 다른 명령과 함께 사용하기위한 "저수준 유틸리티"입니다.
mpez0

답변:


0

왜 추가하지 않으시겠습니까?
passwd -e username
스크립트에?

이후에 모두 로그인하면 첫 번째 로그인이 작동합니다. '-e'는 계정 암호를 즉시 만료하므로 다음 로그인시 사용자는 암호를 강제로 업데이트해야합니까? (만나다 man passwd )


그리고 만약 당신이 특정 솔루션을 찾고 있다면 아마도 "-M / - max days"스위치를 '0'값으로 사용해보십시오. 나는 정말로 chage에 익숙하지 않지만 man 페이지에서 이것은 합리적으로 보입니다.
tniles

0

RHEL6에 대해 묻기 때문에 useradd ( 'shadow'패키지의 일부로 제공됨)의 소스 코드를 살펴 보았습니다. useradd.c에는 new_spent라는 함수가 있는데 여기에서 새 그림자 암호 항목을 설정합니다. 여기서 "작성시 만료 된 암호"문제를 다음과 같이 해결합니다.

if (0 == spent->sp_lstchg) {
/* Better disable aging than requiring a password change */
spent->sp_lstchg = -1;

Soooo ... 0으로 설정하면 -1이됩니다.

이 프로그램의 제작자는 에이징을 0으로 설정하는 것에 대해 특별히 코딩 했으므로 EXPIRE의 / etc / default / useradd 매개 변수에서 0으로 설정하면 문제가되지 않습니다. (만약 내가 그 코드를하고 있었다면, 사용자가 명령에서 암호를 설정하고 만료를 허용하는지 보려고했을 것이다. 그러나 그것은 내가 아니었다 ...)

또한 위의 "chage"명령을 수행하기 위해 /usr/local/sbin/adduser.local에 스크립트를 배치 할 것을 제안했습니다. 이것은 데비안 / 우분투 시스템에서 좋은 조언이었습니다. useradd는 그것이 발견되면 실제로 그 파일을 실행하는 펄 스크립트지만, RHEL에서는 useradd 명령이 C 바이너리입니다.

내가 너라면 내가 RHEL6 useradd에서 그 행동을 취하기로 결심했다. 섀도우 패키지의 SRPM을 얻고 위의 줄을 주석 처리하고 패키지와 락커 웨이에서 rpmbuild를한다. 승리!


-2

오토매틱:

이 파일을 업데이트하십시오 :

/etc/default/useradd

이 파일에는 세부 정보, 새로운 설정에 적용될 모든 설정   useradd 명령으로 시스템에 생성 된 사용자.

이 파일에서 EXPIRE = 0의 값을 설정하면 그 이후에   새로운 사용자가 생성 될 때, 그들은 암호를 변경해야합니다.   다음 로그인.

출처: 긱 레이드

이제 터미널에서 파일을 편집하기가 어려웠습니다. 그래서 777을 사용하여 파일의 권한을 다음과 같이 변경했습니다.

chmod 777 /etc/default/useradd

그리고 그것을 땅벌레에서 편집했습니다.

(감사합니다. 리눅스 명령 .)

내 우분투 12.04.5 VM을 확인했습니다.

조작:

다음 구문을 사용하여 사용자가 다음에 암호를 변경하도록합니다.   Linux에서 로그인 :

# chage -d 0 {user-name}

이 예제에서 다음 로그온시 암호를 변경하려면 tom을 입력하십시오.

# chage -d 0 tom

-d 0 : 1970 년 1 월 1 일부터 암호가 있던 일 수를 설정합니다.   마지막으로 변경되었습니다. 날짜는 YYYY-MM-DD 형식으로 표현 될 수도 있습니다. 으로   0으로 설정하면, 사용자가 처음에 암호를 변경하도록 강요 할 것입니다   로그인.

출처: nixCraft

순수 복사 - 붙여 넣기. 말 그대로. ;)
내 우분투 12.04.5 VM에서 확인했습니다.


당신이 위의 주석을 읽으면, OP는 이것이 useradd 명령 중에 자동으로 수행됩니다.
Insane

다른 의견을 말하지는 않겠지 만 chmod -R 777 / ~이다. 대단히 어리석은 일!
PulseJet

@PulseJet 네, 회고와이 대답은 오래 전이었습니다.
Varad Mahashabde

@ VaradMahashabde 그 때 나는 적어도 그 (것)들이어야하기 때문에, 나는 응답에서 그런 재료를 제거 할 것을 건의 할 것입니다 제정신의 그 (것)들을 읽는 다음 사람을 위해.
PulseJet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.