강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 파워강좌 useradd1편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

리눅스 파워강좌 useradd1

 

 

 

 

 

-------------------------                                 -------------------

 

 

1 : 새로운 사용자를 생성하는 useradd 개론

2 : useradd 새로운 계정을 생성하는 실무적인 메커니즘의 이해

3: useradd 새로운 계정을 생성하는 다양한 방법들

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ㅇ 제작자 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 <?xml:namespace prefix = st2 ns = "urn:schemas-microsoft-com:office:smarttags" /><?xml:namespace prefix = st1 ns = "urn:schemas:contacts" />박성수

 

ㅇ 본강좌의 자세한 정보 : http://www.superuser.co.kr/linuxcommandbible/

 

 

 

 

 

 

 

 

 

 

 

 

1 : 새로운 사용자를 생성하는 useradd 개론

 

useradd는 새로운 사용자를 생성할 때 사용하는 명령어입니다.  계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있습니다. , 원하는 계정을 생성할 때 사용하는 리눅스 관리자용 명령어입니다. , useradd는 관리자용 명령어이므로 일반사용자들은 사용할 수  없는 명령어입니다.

 

그리고 useradd의 실행으로 시스템내부적으로 어떤 작업들이 이루어지는가를 이해하기 위하여 이번 장에서 설명되는 “useradd의 실무메커니즘에 대한 부분을 꼭 확인해 보시기 바랍니다. useradd명령어의 실무메커니즘을 이해하신다면 리눅스 계정생성에 대해서는 거의 완벽하게 공부하신 것과 마찬가지입니다.

 

또한 리눅스에서 useradd adduser명령어가 어떻게 다르냐고 질문하시는 분들이 있습니다.
이에 대한 답을 드리기 위하여 아래 ls명령어의 예를 보시기 바랍니다.

 

[root@host3 root]# ls -l /usr/sbin/adduser
lrwxrwxrwx   1 root    root         7  8
28 02:29 /usr/sbin/adduser -> useradd
[root@host3 root]#

 

, adduser명령어는 useradd명령어로 링크되어 있는 것에 불과합니다.  따라서 실제로 adduser명령어와 useradd명령어는 완전히 동일한 명령어입니다.  , 유닉스나 솔라리스등에서는 useradd대신에 adduser라는 명령어를 사용하기 때문에 리눅스에서는 다른 운영체제와의 호환을 위하여 useradd adduser를 동일하게 사용할 수 있는 것입니다.  , 이번 장에서 설명하는 useradd대신 adduser를 사용하셔도 완전히 동일한 것이므로 착오 없으시기 바랍니다. 앞으로 이런 문제로 고민하는 일이 없기를 진심으로 바랍니다.

 

, 그럼 서버관리자가 해야하는 계정생성 관련업무에는 다음과 같은 것들이 있습니다.

 

 - /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성
 - /etc/shadow
파일에 계정 패스워드 등록
 - /etc/group
파일에 사용자의 그룹생성
 - /home
에 사용자의 홈디렉토리 생성
 - FTP
사용을 위한 FTP사용 환경설정
 -
메일사용을 위한 메일환경설정
 -
사용자의 로그인정보 및 환경설정
 -
사용자의 디렉토리 및 파일 소유권 변경 및 확인
 - DB
사용을 위한 환경설정 및 응용프로그램사용을 위한 환경설정
 -
기타 응용 소프트웨어 사용을 위한 설정등

 

이외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자를 생성하였을 때 기본적으로 위와  같은 작업을 해야합니다. 이런 업무중에 계정생성에 관련된 작업을 useradd를 이용하여 수행합니다.

 

명령어위치 : /usr/sbin/useradd

사용형식


useradd [-c comment][-d
홈디렉토리][-e 종료일자][-f inactive_time]
        [-g
초기그룹명] [-G 그룹명[,...]][-m [-k 초기화파일위치디렉토리] | -M]
        [-p
패스워드][-s 사용쉘] [-u UID [ -o]] [-n] [-r] 계정명

 


useradd
의 옵션들

 

 -c : 대부분 사용자명을 입력하며, finger로 확인하면 보여주는 간단한 사용자설명
      (
코멘트)을 등록한다.
 -d :
생성하는 계정사용자의 홈디렉토리위치지정 (, -d /home/sspark)
 -e :
생성하는 계정의 사용일자 지정(, -e 2004-12-31)
 -f :
생성하는 계정의 유효일자 지정(, -f -30, 앞으로 30일동안 유효한 계정)
 -g :
생성하는 계정의 GID지정 (, -g 1004)
 -G :
생성하는 계정의 추가등록 계정의 그룹명
 -p :
생성하는 계정의 패스워드지정
 -s :
생성하는 계정의 기본 사용쉘 지정
 -u :
생성하는 계정의 UID지정 (, -u 1000)

 

이상과 같이 useradd명령어에 대한 기본적인 설명과 사용방법에 대해서 알아보았습니다. 이제부터 useradd로 새로운 사용자를 생성하는 실제 예와 실무사용법을 알아보도록 하겠습니다.

 

 


2 : useradd
로 새로운 계정을 생성하는 실무적인 메커니즘의 이해

리눅스 서버관리자라면 초보자라 하더라도 useradd라는 명령어를 사용하여 새로운 사용자를 생성하는 방법은 알고 계실 것이라 생각합니다.  하지만 useradd라는 명령어로 새로운 사용자가 생성이 될 때에 시스템에서는 어떤 작업들이 자동으로 이루어져서 새로 생성되는 사용자의 시스템사용을 하도록 하는가에 대한 정확한 시스템의 실무 메커니즘을 이해하고 계신분은 드물것이라 생각합니다.

 

, 필자는 useradd라는 명령어를 사용하는 방법을 익히는 것도 중요하지만 유능한 서버관리자가 되려면 useradd명령어의 실행으로 서버에서 어떤 작업들이 실제로 이루어지는가를 알아야하며 생성되는 사용자를 위한 시스템환경설정이 어떻게 이루어지는가를 정확하게 알고 있어야 한다고 생각합니다. 

 

, 이번 예에서는 서버관리자가 useradd라는 명령어를 사용하여 새로운 계정사용자를 생성하였을 경우에 서버내부에서 작업되는 여러가지 실무적인 메커니즘을 설명하고자 합니다.

 

 - sspark이라는 계정생성

 

먼저 간단히 아래의 예와 같이 sspark이라는 계정사용자를 새로 생성하였습니다.  , 지금부터 sspark이라는 계정사용자를 useradd로 생성하는 간단한 방법과 useradd로 인하여 리눅스 서버내에서 어떤 작업들이 자동으로 이루어지는가를 살펴볼 것입니다.

 

[root@host3 root]# useradd sspark  
[root@host3 root]#

 

위와 같이 "useradd sspark"이라고 하면 sspark이라는 계정사용자가 생성이 됩니다.

 

 

 - sspark 패스워드 생성

 

그리고 아래와 같이 새로 생성된 sspark의 패스워드를 입력해 주었습니다.

 

[root@host3 root]# passwd sspark
Changing password for user sspark.
New password: ********
Retype new password: ********
passwd: all authentication tokens updated successfully.
[root@host3 root]#

 

, 이제 useradd sspark이라는 계정사용자를 생성한 후에 리눅스서버에서 어떤 작업들이 이루어 졌는가를 살펴보겠습니다.



 - /etc/passwd내에 sspark의 계정사용 정보 등록

 

먼저, /etc/passwd에는 sspark의 기본정보들이 다음과 같이 등록 됩니다.

 

[root@host3 root]# grep sspark /etc/passwd
sspark:x:505:506::/home/sspark:/bin/bash
[root@host3 root]#

 

, /etc/passwd파일에 sspark이라는 계정사용자의 ID,암호필드, UID, GID,이름, 홈디렉토리위치, 사용쉘이 차례대로 등록되어 있음을 알 수 있습니다.

 


 - /etc/shadow
내에 sspark의 패스워드와 aging정보 등록

 

그리고, /etc/shadow파일에는 sspark의 암호정보와 계정 aging정보가 등록이 됩니다.

 

[root@host3 root]# grep sspark /etc/shadow
sspark:$1$BGpBJuD1$taey.N2NIvfYrruY/1p5U1:12314:0:99999:7:::
[root@host3 root]#

 

 - /etc/group내에 sspark의 그룹정보 등록

 

그리고, /etc/group파일에는 sspark의 그룹정보가 등록됩니다.  여기에 등록이 되는 그룹정보는 계정명과 동일한 그룹명과 /etc/passwd파일의 GID번호와 동일한 GID가 생성되어 추가 됩니다.

 

[root@host3 root]# grep sspark /etc/group
sspark:x:506:
[root@host3 root]#

 

, sspark의 계정명과 동일한 sspark이라는 그룹명과 GID 506이라는 그룹이 생성되어 /etc/group파일이 등록 되었습니다.

 


 - sspark
의 홈디렉토리 생성및 환경파일 생성

 

그리고, 계정이 생성되고 나면 그 계정의 홈디렉토리가 생성이 됩니다.  아래는 sspark의 홈디렉토리를 나타낸 것입니다.  홈디렉토리는 /etc/passwd sspark의 홈디렉토리위치에 생성이 됩니다.

 

[root@host3 root]# ls -al /home/sspark/
합계 32
drwx------    3 sspark   sspark       4096  9
19 10:47 .
drwxr-xr-x    7 root     root         4096  9
19 10:47 ..
-rw-r--r--    1 sspark   sspark         24  9
19 10:47 .bash_logout
-rw-r--r--    1 sspark   sspark        191  9
19 10:47 .bash_profile
-rw-r--r--    1 sspark   sspark        124  9
19 10:47 .bashrc
-rw-r--r--    1 sspark   sspark        854  9
19 10:47 .emacs
-rw-r--r--    1 sspark   sspark        120  9
19 10:47 .gtkrc
drwxr-xr-x    3 sspark   sspark       4096  9
19 10:47 .kde
[root@host3 root]#

 

위의 파일들은 /etc/skel/디렉토리내에 존재하는 파일들이 모두 복사되어 들어간 것입니다.   아래 "useradd가 참조하는 파일 : /etc/skel/디렉토리내의 모든 파일들"설명을 참조하시기 바랍니다.

 

 

 - sspark의 메일저장 파일생성

 

그리고 계정이 생성이 되면 /var/spool/mail에 계정명과 동일한 파일이 생성이 되는데, 이는 메일사용을 위한 파일입니다.  , 도착한 메일을 보관하기위한 사용자 메일파일입니다.

 

[root@host3 root]# ls -l /var/spool/mail
합계 4
-rw-rw----    1 bible    bible           0  8
28 03:20 bible
-rw-rw----    1 bible1   bible1          0  9
18 17:48 bible1
-rw-rw----    1 bible2   bible2          0  9
18 17:48 bible2
-rw-rw----    1 bible3   bible3          0  9
18 17:48 bible3
-rw-------    1 root     root         1010  8
28 11:40 root
-rw-rw----    1 sspark   sspark          0  9
19 10:47 sspark
[root@host3 root]#



 - useradd가 참조하는 파일 : /etc/login.defs

 

/etc/login.defs파일은 useradd가 새로운 계정을 생성할 때에 반드시 참조하는 파일입니다.
아래의 예를 보시면 알겠지만, 이 파일에는 다음과 같은 정보들이 들어 있습니다.

 

  . MAIL_DIR : 메일 디렉토리 지정
  . PASS_MAX_DAYS :
패스워드 변경없이 사용할 수 있는 최대일자
  . PASS_MIN_DAYS :
패스워드 변경없이 사용할 수 있는 최소일자
  . PASS_MIN_LEN :
패스워드의 최소바이트 수
  . PASS_WARN_AGE
  . UID_MIN :
생성할 수 있는 UID 시작번호
  . UID_MAX :
생성할 수 있는 최대 GID 번호
              (
, UID_MAX에서 UID_MIN를 빼고 1을 더한 수만큼의 새로운 계정을 생성할 수 있음을 알 수 있다.)
  . GID_MIN :
새로 생성되는 그룹의 GID 시작번호
  . GID_MAX :
새로 생성되는 그룹에서 지정 할 수 있는 최대 GID번호
  . CREATE_HOME :
홈디렉토리를 생성할 것인가의 여부

 

위와 같은 정보들이 이 파일에 들어 있습니다.  , 새로운 계정생성에 꼭 참조되어야하는 정보들이 들어있다는 것입니다.  서버관리자는 반드시 이 파일의 내용을 숙지하고 필요할 경우에는 변경하여 사용할 수 있어야 합니다.

 

[root@host3 skel]# cat /etc/login.defs
# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
MAIL_DIR        /var/spool/mail
#MAIL_FILE      .mail

# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                   500
UID_MAX                 60000

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                   500
GID_MAX                 60000

#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local

#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is ORed with the -m flag on
# useradd command line.
#
CREATE_HOME     yes

[root@host3 skel]#

 


 - useradd
가 참조하는 파일 : /etc/skel/디렉토리 내의 모든 파일들

 

sspark의 홈디렉토리로 /home/sspark이 생성이 되었으며 로그인 후에 서버사용을 위한 기본 설정파일들이 위와 같이 있습니다.  여기서 중요한 것은 계정이 생성되고 난 후에  /etc/skel/디렉토리에 존재하는 모든 파일들이 새로 생성된 사용자의 홈디렉토리로 복사되었다는 점입니다.  

 

, /etc/skel/디렉토리에는 위의 홈디렉토리에 복사되어 들어간 파일들과 동일한 파일들이 있음을 알 수 있습니다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  101 명