
스크립트에서 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의 비밀번호 필드에 *를 입력하세요(비밀번호를 설정하지 않은 경우 발생함). 이렇게 하면 사용자가 로그인할 수 없습니다.