
OpenBSD 5.6에서는 기본 비밀번호를 사용하여 여러 사용자 계정을 제공해야 합니다. 사용자가 처음 SSH에 로그인할 때 기본값에서 비밀번호를 강제로 변경하도록 하고 싶습니다.
CentOS와 Debian에서는 chage -d 0 $username
.
login.conf 매뉴얼에는 다음과 같은 방법으로 OpenBSD에서 동일한 작업을 수행할 수 있어야 한다고 나와 있습니다.
usermod -f 1 $username
또는usermod -f "Jan 1 2015" $username
그런 식으로 설정하면 에서 적절한 변경이 이루어지지만 userinfo $username
SSH를 통해 $username으로 로그인하면 실제로 비밀번호 변경이 적용되지 않습니다. 위에서 비활성으로 표시된 비밀번호를 인식하지 못한 채 쉘이 매우 행복하게 열립니다.
2000년의 일부 게시물은 다음과 같습니다.래퍼 로그인 셸 작성비밀번호를 강제로 변경하려면 즉, usermod
및 의 명백한 스캐폴딩을 고려하면 chpass
이것이 내장되어 있지만 Linux 등가물만큼 광범위하게 문서화되지는 않은 것 같습니다.
BSD 전문가가 이에 대한 기존 접근 방식을 밝힐 수 있습니까?
답변1
에 따르면 login.conf (5)
만료된("죽은") 비밀번호의 기본 유예 기간은 0입니다. 해당 값이 에 설정되어 있지 않으면 /etc/login.conf
현재 시스템 날짜가 사용자 비밀번호의 6번째 필드보다 큰 경우 사용자는 로그인하여 비밀번호를 변경할 수 없습니다. 항목 /etc/master.passwd
- 참조 passwd (5)
.
문제를 해결하려면 선택한 유예 기간(예: 2주) 내에 해당하는 에포크 이후 초 수 형식의 날짜를 지정해야 합니다. 이 날짜도 에서 구성합니다 /etc/login.conf
. 어제의 비밀번호 만료 시간을 수동으로 선택하려면 다음을 사용할 수 있습니다.
# date -d yesterday +%s
1463597700
그런 다음 를 /etc/master.passwd
사용하여 해당 값을 필드 #6에 연결합니다 vipw
. 그러면 관련 줄은 다음과 같이 표시됩니다.
user:$2b$08$01234567890abcdef:1000:1000::1463597700:0:user:/home/user:/bin/ksh
표시된 대로 usermod를 실행하면( usermod -f "May 17 2016" user
) 기본적으로 동일한 작업이 수행되지만 두 경우 모두 사용자 클래스의 관련 섹션 /etc/login.conf
에 다음을 추가하여 변경해야 합니다 .default:\
:password-dead=2w:\
:password-warn=2w:
첫 번째 줄은 사용자가 자신의 비밀번호를 변경할 수 있도록 2주간의 유예 기간을 허용합니다. 두 번째 줄은 사용자의 비밀번호가 만료될 예정이라는 경고를 표시합니다. 만료된 경우 사용자에게 다음과 같은 내용이 표시됩니다.
WARNING: Your password has expired.
You must change your password now and login again!
Changing local password for user.
Old password:
New password:
Retype new password:
Connection to openbsd-server closed.
90일마다 추가 비밀번호 변경을 시행하도록 :passwordtime=7776000:
구성 할 수도 있습니다 . /etc/login.conf
비밀번호 재사용 금지와 같이 사용자의 비밀번호 복잡성에 대한 추가 확인이 필요한 경우 passwordqc
패키지나 다른 비밀번호 검사기 프로그램에서 설치하고 구성해야 합니다.