1편에서 리눅스 사용자 계정을 생성하는 스크립트를 작성을 했습니다. 이번에는 계정생성과 동시에 보안에 기본이 되는
비밀번호를 랜덤으로 생성하여 배포하는 방법에 대해서 알아보겠습니다.
기본적인 원리와 설명은 1단계 포스팅을 참고해주세요.
비밀번호는 특수문자를 넣어 랜덤으로 6자로 만들고 비밀번호는 userpw.txt로 저장
nano 또는 touch를 스크립트 파일 생성 후 아래와 같이 스크립트 구성을 합니다.
while IFS= read -r user : users.txt 파일을 한 줄씩 읽어 user 변수에 저장합니다.
sudo useradd $user : useradd 명령어를 사용하여 user라는 이름의 사용자 계정을 생성합니다.password=$(generate_password): 랜덤 비밀번호를 생성하여 password 변수에 저장합니다.
echo “$user:$password” | sudo chpasswd : chpasswd 명령어를 사용하여 사용자 비밀번호를 설정합니다.
echo “$user:$password” >> $PASSWORD_FILE : 사용자 이름과 비밀번호를 userpw.txt 파일에 저장합니다.
echo “User $user created with password stored in $PASSWORD_FILE.” : 사용자 계정이 생성되었음을 출력합니다.
#!/bin/bash
# 사용자 목록 파일 경로
USER_LIST="users.txt"
PASSWORD_FILE="userpw.txt"
# 비밀번호 생성 함수
generate_password() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+' < /dev/urandom | head -c 6
}
# 비밀번호 파일 초기화
> $PASSWORD_FILE
# 사용자 계정 생성 루프
while IFS= read -r user
do
# 사용자 계정 생성
sudo useradd $user
# 랜덤 비밀번호 생성
password=$(generate_password)
# 비밀번호 설정
echo "$user:$password" | sudo chpasswd
# 비밀번호 파일에 저장
echo "$user:$password" >> $PASSWORD_FILE
echo "User $user created with password stored in $PASSWORD_FILE."
done < "$USER_LIST"
users.txt에서 사용자 계정 정보를 받아 스크립트를 통해 자동 생성하며 비밀번호는 userpw.txt에 저장됩니다.
비밀번호는 랜덤으로 생성