리눅스 사용자 계정 생성과 비밀번호 랜덤생성 (2단계)

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에 저장됩니다.

비밀번호는 랜덤으로 생성

계정 자동생성 및 비밀번호 랜덤 생성

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다