2009년 5월 14일 목요일

사용자계정 생성 관련 정보

서버관리자의 주된 업무중에 한가지가 사용자의 계정관리이다. 사용자의 계정을 생성해 주거나 불필요하게 된 계정을 삭제하는 등의 일은 다음과 같은 명령어로 할 수 있다.


● 사용자의 계정생성


시스템에서 한 사용자를 생성한다는 의미는 수용되는 시스템에서 사용자가 사용할 수 있는 모든 설정들을 해줘야 하며 단순히 ID와 패스워드 생성외에도 다음과 같은 작업을 해야한다.


 

① /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성

② /etc/group파일에 사용자의 그룹생성

③ /home에 사용자의 홈디렉토리 생성

④ 사용자의 로그인정보 및 환경설정

⑤ 사용자의 디렉토리 및 파일 소유권 변경 및 확인

⑥ DB 사용을 위한 환경설정 및 응용프로그램사용을 위한 환경설정

⑦ 기타 응용 소프트웨어 사용을 위한 설정등


리눅스에서 새로운 사용자의 계정을 생성할때는 useradd나 adduser라는 명령어를 사용한다. useradd로 사용자를 생성할때는 다소 복잡한 과장을 거쳐서 작업이 되는데 시스템관리자라면 어떤 작업들이 이루어 지는가를 확실히 알고 있어야 한다. 우선 useradd로 사용자를 생성해 보도록 하자.

 

[root@ciss9 /]# useradd testuser
 


이 작업이 정상적으로 종료가 되면 아무런 메시지없이 쉘프롬프트가 나오며 작업의 결과 /etc/passwd에 계정등록과 /home/testuser의 홈디렉토리의 생성된다. 다음은 위의 작업결과의 내용을 확인한 것이다.

 

[root@ciss9 testuser]# grep testuser /etc/passwd

testuser:x:512:512::/home/testuser:/bin/bash

[root@ciss9 testuser]# pwd

/home/testuser

[root@ciss9 testuser]# ls -al

total 40

drwx------ 4 testuser testuser 4096 Oct 13 16:59 .

drwxr-xr-x 15 root root 4096 Oct 13 16:59 ..

-rw-r--r-- 1 testuser testuser 1422 Oct 13 16:59 .Xdefaults

-rw-r--r-- 1 testuser testuser 24 Oct 13 16:59 .bash_logout

-rw-r--r-- 1 testuser testuser 230 Oct 13 16:59 .bash_profile

-rw-r--r-- 1 testuser testuser 124 Oct 13 16:59 .bashrc

drwxr-xr-x 3 testuser testuser 4096 Oct 13 16:59 .kde

-rw-r--r-- 1 testuser testuser 966 Oct 13 16:59 .kderc

-rw-rw-r-- 1 testuser testuser 3505 Oct 13 16:59 .screenrc

drwxr-xr-x 5 testuser testuser 4096 Oct 13 16:59 Desktop

[root@ciss9 testuser]#
 


그럼, 어떻게 이런 작업이 시스템 내부적으로 이루어 지는가에 대해서 자세히 알아보도록 하자.


useradd로 사용자 생성명령을 내리면 /etc/login.defs의 조건이 적용되어 /etc/default/useradd에 있는 기본값으로 사용자를 생성되며 /etc/skel디렉토리에 있는 내용들이 기본설정파일로 사용자의 홈디렉토리로 복사되어 들어가게 된다는 것이다. 이 사실을 분명히 이해해야 한다. 따라서 이 파일들의 변경을 통하여 useradd로 생성되는 기본값을 변경할 수도 있다. useradd로 생성되는 기본값의 확인은 다음과 같이 한다.

 

[root@ciss9 /]# useradd -D

GROUP=100 : GID

HOME=/home : 홈디렉토리의 위치

INACTIVE=-1

EXPIRE= : 계정종료 일자지정

SHELL=/bin/bash : 사용할 쉘지정

SKEL=/etc/skel : 복사될 내용지정
 


위와 같이 ""useradd -D"란 명령어를 입력하면 /etc/default/useradd의 내용을 그대로 보여준다. 특히 마지막 라인에 있는 "SKEL=/etc/skel"은 사용자의 환경을 위해 /home/ID로 생성된 사용자의 홈디렉토리에 복사되어 진다. 그 내용은 다음과 같다.

 

[root@ciss9 skel]# pwd

/etc/skel

[root@ciss9 skel]# ls -al

total 40

drwxr-xr-x 4 root root 4096 Aug 12 05:42 .

drwxr-xr-x 37 root root 4096 Oct 13 16:59 ..

-rw-r--r-- 1 root root 1422 Mar 30 1999 .Xdefaults

-rw-r--r-- 1 root root 24 Jul 14 1994 .bash_logout

-rw-r--r-- 1 root root 230 Aug 23 1998 .bash_profile

-rw-r--r-- 1 root root 124 Aug 24 1995 .bashrc

drwxr-xr-x 3 root root 4096 Aug 12 05:41 .kde

-rw-r--r-- 1 root root 966 Apr 17 05:45 .kderc

-rw-rw-r-- 1 root root 3505 Apr 8 1999 .screenrc

drwxr-xr-x 5 root root 4096 Aug 12 05:41 Desktop
 



또한 "useradd -D"의 내용을 변경할 수 있다.

 

[root@ciss9 default]# useradd -D -b /user/student

[root@ciss9 default]# useradd -D -s /bin/csh

[root@ciss9 default]#

[root@ciss9 default]# useradd -D

GROUP=100

HOME=/user/student

INACTIVE=-1

EXPIRE=

SHELL=/bin/csh

SKEL=/etc/skel
 


이 예는 useradd로 새로 생성되는 사용자의 홈디렉토리의 위치를 변경했으며 사용하게될 쉘(Shell)을 C쉘로 변경하였다. 이후부터 생성되는 사용자의 홈디렉토리는 /user/student/ID가 될 것이며 사용쉘 또한 /bin/csh가 될 것이다.


참고로 /etc/login.defs의 내용을 살펴보도록 하자.

 

MAIL_DIR/var/spool/mail : 메일 스풀디렉토리 지정

PASS_MAX_DAYS 99999 : 패스워드의 변경없이 사용할 수 있는 최대일자.

PASS_MIN_DAYS 0 : 패스워드의 변경없이 사용할 수 있는 최소일자.

PASS_MIN_LEN 5 : 패스워드 최소바이트 수

PASS_WARN_AGE 7

UID_MIN 500 : 새로 생성되는 사용자의 UID 시작번호

UID_MAX 60000 : 최대로 생성될 수 있는 UID개수, 즉 최대수용 사용자수

GID_MIN 500 : 새로 생성되는 그룹의 GID 시작번호

GID_MAX 60000 : 최대로 생성될 수 있는 GID개수.

CREATE_HOME yes : 홈디렉토리를 자동으로 생성할 것인가의 여부
 


이상으로 사용자의 생성에 대해서 알아보았다. 다소 이해가 어렵더라도 확실히 이해하고 넘어가야 할 부분이다. 서버관리의 시작이 사용자의 계정생성 및 환경설정에서부터 출발한다고 할 수 있다는 측면에서 이에대한 이해또한 무엇보다 중요하기 때문이다.


 

댓글 없음:

댓글 쓰기