저는 이 명령을 사용하여 자동으로 사용자를 생성하는 스크립트를 작성하고 있습니다 useradd
(대신 이 명령이 필요합니다 adduser
).
SSH를 통해서만 액세스할 수 있는 방식으로 생성하고 싶습니다(스크립트가 인증 키에 public_key를 추가했습니다).
useradd --system --shell /bin/bash $NEW_USER
이 명령을 사용하면 비밀번호로 로그인할 수 있습니까? 그렇다면 어떻게 비활성화할 수 있습니까?
내가 달성하고 싶은 것은 이 게시물에 설명된 내용과 유사합니다 --disable-password
.useradd
비밀번호가 없는 사용자 생성.
답변1
useradd
-p
계정에 이 옵션을 제공하지 않으면 기본적으로 비밀번호가 비활성화된 계정이 생성됩니다.
에서 man useradd
:
-p
,--password
비밀번호crypt(3)에 의해 반환된 암호화된 비밀번호입니다. 기본값은 비밀번호를 비활성화하는 것입니다.
그런데, 기존 계정의 비밀번호를 비활성화해야 하는 경우 passwd -l username
계정 잠금을 실행할 수 있습니다(예: 비밀번호 비활성화). 에서 man passwd
:
-l
,--lock
지정된 계정의 비밀번호를 잠급니다. 이 옵션은 가능한 암호화 값과 일치하지 않는 값으로 변경하여 비밀번호를 비활성화합니다(
!
비밀번호 시작 부분에 추가함) .이렇게 해도 계정이 비활성화되지는 않습니다.. 사용자는 다른 인증 토큰(예: SSH 키)을 사용하여 계속 로그인할 수 있습니다. 계정을 비활성화하려면 관리자가 사용해야 합니다
usermod --expiredate 1
(이렇게 하면 계정 만료 날짜가 1970년 1월 2일로 설정됩니다).비밀번호가 잠겨 있는 사용자는 비밀번호를 변경할 수 없습니다.
실제로 비밀번호를 삭제하는 대신 무효화만 하여 passwd -u
시스템 관리자가 원래 비밀번호가 무엇인지 알거나 일부 "기본" 비밀번호로 설정할 필요 없이 나중에 잠금 해제 비밀번호를 사용할 수 있습니다(안전하지 않을 수도 있고 잘 알려져 있을 수도 있음). ) ):
-u
,--unlock
지정된 계정의 비밀번호를 잠금 해제합니다. 이 옵션은 비밀번호를 이전 값(
-l
이 옵션이 사용되기 전의 값) 으로 다시 변경하여 비밀번호를 다시 활성화합니다 .
!
즉, options 를 통해 암호화된 비밀번호의 시작 부분에 추가된 내용을 제거합니다 -l
.