커피닉스, 시스템 엔지니어의 쉼터
  사용자 추가 스크립트(계정 & 패스워드) 작성일 : 2007/02/23 11:08
 
  • 글쓴이 : 류범룡
  • 조회수 : 14927
     
    서버 관리를 하다 보면, 다량의 사용자를 서버에 등록해줄 필요가 있습니다.

    이때에 걸리는 문제는 패스워드 등록 부분입니다. 초기 패스워드만 설정해 주려해도 상당한 어려움이 있었는데요.

    학창 시절 학교 실습 서버 관리를 하면서 작성 했던, 초기 패스워드 까지 설정해주는 부분입니다.

    패스워드를 암호화 하여 각 shadow 파일에 기재해주는 스크립트도 있지만(이건 어디에 있는지 못 찾겠네요.), 이 스크립트는 보다 간단하게 패스워드를 기재해주는 방식입니다.

    스크립트를 기재하기 앞서 간단하게 패스워드를 넣어주는 명령어(?)를 기재해 보겠습니다.



    1. passwd 의 --stdin.

    # man passwd   <-- man passwd 해 보시기 바랍니다.
          --stdin
                  This option is used to indicate that passwd should read the  new
                  password from standard input, which can be a pipe.
    패스워드를 파이프(|)를 이용하여 받아서 변경해준다는 말입니다.

    사용법 : echo "패스워드" | passwd 계정 --stdin     <-- 계정의 패스워드가 변경 됩니다.



    2. chpasswd

    # man chpasswd
          chpasswd - update password file in batch
    대용량의 시스템을 위해 사용되어진다고 합니다.

    사용법 : chpasswd < aaa.txt (aaa.txt에는 계정:패스워드 이렇게 적혀 있습니다.)



    리눅스를 어느 정도 사용하시는 분들은 아실 내용이지만, 처음 접할시는 분들에게는 유용하실겁니다. 이제 관련 스크립트를 올립니다.


    ====================================================================================

    # ----------------------------------------------------------------------
    #!/bin/bash

    # ----------------------------------------------------------------------
    # modify the home_dir and group.
    # do not modify the lines below if you are not very sure
    # By sangmyung univ. 소프트웨어 학부 서버실 이우철 .
    # 수정 sangmyung univ. 소프트웨어 학부 서버실 류범룡 armines647@smu.ac.kr


    group=support
    home_dir=/home/support

    # ----------------------------------------------------------------------
    # do not modify the lines below if you are not very sure

    mkdir ${home_dir}

    /usr/sbin/groupadd ${group}


    read name comment passwd

    while [ ! ${name} = 999 ]
    do
    echo adding ${name}, ${home_dir}, ${comment} .
    /usr/sbin/useradd -g ${group} -d ${home_dir}/${name} -s /bin/bash -c ${comment} -m -k /etc/skel ${name} -r
    chmod 700 ${home_dir}/${name}
    echo "${passwd}" | passwd ${name} --stdin
    read name comment passwd
    done

    # ----------------------------------------------------------------------

    ===================================================================================


    사용법 : # user_add.sh  <  useradd.txt

    useradd.txt의 내용은
    name commnet passwd  형식으로 기재가 되어집니다. 맨 마지막에는 종료 조건인 999를 기재해 주시면 됩니다.

    # cat useradd.txt
    user1 첫번째 aaa
    user2 두번째 bbb
    user3 세번째 ccc
    999 999 999

    이런 형식입니다. 도움이 되셨으면 합니다.


    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=1466