스크립트에서 무작위 또는 유효하지 않은 비밀번호를 사용하여 Linux 사용자를 추가하는 방법

스크립트에서 무작위 또는 유효하지 않은 비밀번호를 사용하여 Linux 사용자를 추가하는 방법

스크립트에서 Linux 시스템에 사용자를 추가하고 싶지만 비밀번호를 고안하거나 관리하고 싶지 않습니다. 이 작업은 자동으로 수행되어야 합니다.

목표는 SSH 키를 생성하는 것이며 이 사용자는 원격으로 로그인하기만 하면 됩니다. 또는 이 사용자는 를 통해 sudo 사용자로부터 사용됩니다 sudo su - thatuser.

나는 그러한 사용자를 생성할 때마다 보안 암호를 만들고 입력하는 번거로움을 덜고 싶고 스크립트에서도 이 작업을 수행하고 싶습니다.

누구도 이 사용자의 비밀번호로 로그인할 수 없어야 합니다. 따라서 제 생각에는 그 사람이 좋은 무작위 비밀번호를 얻었지만 아무도 그것을 알지 못한다는 것입니다.

무작위로 뭔가를 생성하는 스크립트를 작성할 수는 있지만 뭐 내장된 것이 있을까요? 또는 비밀번호를 비활성화하면(비밀번호 로그인은 불가능하지만 키를 사용하여 ssh 로그인하면 sudo su - thatuser제대로 작동합니다.)

편집하다:이미 몇 가지 답변이 있습니다. 훌륭하지만 어떻게 해야 할지 아직 잘 모르겠습니다. 스크립트는 어떻게 생겼나요?

adduser처럼 동작하고 모든 표준을 생성해야 합니다(예: std. home dir, 뼈대 복사, 동일한 이름을 가진 그룹)

편집2:결국 여러분의 도움으로 효과적인 솔루션을 찾았고 이를 공유하고 싶습니다. 이것은 제가 "adduser-nopasswd"라고 부르는 스크립트이며 /usr/local/sbin(여기가 좋은가요?)에 넣고 루트에서만 실행할 수 있습니다. 동시에 새 그룹과 사용자의 이름인 하나의 인수를 사용합니다.

#!/bin/sh -e
# the -e makes the script exit immediateley if one command fails
NAME=$1
groupadd $NAME
useradd --create-home -d /home/$NAME --shell /bin/bash -g $NAME $NAME

이 기능에 대한 의견이 있으십니까?

답변1

비밀번호를 지정하지 않으면 useradd설정되지 않습니다(따라서 사용자는 비밀번호를 통해 로그인할 수 없습니다). useradd및 은 adduser두 가지 다른 명령입니다.

다음은 자체 그룹이 있는 새 사용자를 생성하고 홈 디렉터리(위치를 지정하지 않으므로 기본 위치에)를 생성하고 뼈대 파일을 복사해야 합니다.

useradd --create-home <user>

.ssh그런 다음 홈 디렉터리에 디렉터리를 생성하고 (SSH는 보안을 chmod위해 0700이를 원함) 사용자 공개 키를 입력합니다 .ssh/authorized_keys(개인/공개 키 쌍은 사용자가 직접 생성해야 함). 자신의 컴퓨터).

이미 존재하는 계정의 비밀번호를 비활성화하려면 다음을 사용할 수 있습니다.

usermod --lock <user>

답변2

/usr/sbin/useradd 유틸리티는 항상 비밀번호를 요구하지 않고 사용자를 생성했습니다. 나는 다른 시스템의 /etc/passwd를 가져와 나를 위해 사용자를 생성하는 스크립트를 많이 작성했습니다.

또는 mercurial-server에 대한 문서를 보면 서버 측에서 단 한 명의 사용자로 프로그램을 실행하기 위해 많은 SSH 키(클라이언트)를 설정하는 방법을 볼 수 있습니다.

답변3

# cat user-pw_list
john:p455W0rD
geany:p455W0rD


# cat CreateUsers.sh
#!/bin/bash
#
# filename: CreateUsers.sh
# usage: cat "User:passwd" | $0
#
set -e
# set -x
while read ; do
  USER=${REPLY%%:*}
  PWD=${REPLY##*:}
  # alternative for random passwd, where $RANDOM is a bash function
  #PWD=${REPLY%%:*}$RANDOM$RANDOM

  echo -e "adding User $USER "
  # for disabled users: /usr/sbin/nologin, otherwise /bin/bash
  /usr/sbin/useradd -c automaticUser -m -k/dev/null -s /usr/sbin/nologin $USER
  echo "$USER:$PWD" | chpasswd --md5 $USER

  ## also add user to samba:
  #echo -e "$PWD\n$PWD" | pdbedit -t -u $USER
done

좋습니다. 사용자를 추가해 보겠습니다.

cat user-pw_list | ./CreateUsers.sh

답변4

/etc/shadow의 비밀번호 필드에 *를 입력하세요(비밀번호를 설정하지 않은 경우 발생함). 이렇게 하면 사용자가 로그인할 수 없습니다.

관련 정보