리눅스 파워강좌 useradd1편
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 11,929 조회
- 0 추천
- 목록
본문
리눅스 파워강좌 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 |
즉, adduser명령어는 useradd명령어로 링크되어 있는 것에 불과합니다. 따라서 실제로 adduser명령어와 useradd명령어는 완전히 동일한 명령어입니다. 즉, 유닉스나 솔라리스등에서는 useradd대신에 adduser라는 명령어를 사용하기 때문에 리눅스에서는 다른 운영체제와의 호환을 위하여 useradd와 adduser를 동일하게 사용할 수 있는 것입니다. 즉, 이번 장에서 설명하는 useradd대신 adduser를 사용하셔도 완전히 동일한 것이므로 착오 없으시기 바랍니다. 앞으로 이런 문제로 고민하는 일이 없기를 진심으로 바랍니다.
자, 그럼 서버관리자가 해야하는 계정생성 관련업무에는 다음과 같은 것들이 있습니다.
- /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성 |
이외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자를 생성하였을 때 기본적으로 위와 같은 작업을 해야합니다. 이런 업무중에 계정생성에 관련된 작업을 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 |
위와 같이 "useradd sspark"이라고 하면 sspark이라는 계정사용자가 생성이 됩니다.
- sspark 패스워드 생성
그리고 아래와 같이 새로 생성된 sspark의 패스워드를 입력해 주었습니다.
[root@host3 root]# passwd sspark |
자, 이제 useradd로 sspark이라는 계정사용자를 생성한 후에 리눅스서버에서 어떤 작업들이 이루어 졌는가를 살펴보겠습니다.
- /etc/passwd내에 sspark의 계정사용 정보 등록
먼저, /etc/passwd에는 sspark의 기본정보들이 다음과 같이 등록 됩니다.
[root@host3 root]# grep sspark /etc/passwd |
즉, /etc/passwd파일에 sspark이라는 계정사용자의 ID,암호필드, UID, GID,이름, 홈디렉토리위치, 사용쉘이 차례대로 등록되어 있음을 알 수 있습니다.
- /etc/shadow내에 sspark의 패스워드와 aging정보 등록
그리고, /etc/shadow파일에는 sspark의 암호정보와 계정 aging정보가 등록이 됩니다.
[root@host3 root]# grep sspark /etc/shadow |
- /etc/group내에 sspark의 그룹정보 등록
그리고, /etc/group파일에는 sspark의 그룹정보가 등록됩니다. 여기에 등록이 되는 그룹정보는 계정명과 동일한 그룹명과 /etc/passwd파일의 GID번호와 동일한 GID가 생성되어 추가 됩니다.
[root@host3 root]# grep sspark /etc/group |
즉, sspark의 계정명과 동일한 sspark이라는 그룹명과 GID 506이라는 그룹이 생성되어 /etc/group파일이 등록 되었습니다.
- sspark의 홈디렉토리 생성및 환경파일 생성
그리고, 계정이 생성되고 나면 그 계정의 홈디렉토리가 생성이 됩니다. 아래는 sspark의 홈디렉토리를 나타낸 것입니다. 홈디렉토리는 /etc/passwd의 sspark의 홈디렉토리위치에 생성이 됩니다.
[root@host3 root]# ls -al /home/sspark/ |
위의 파일들은 /etc/skel/디렉토리내에 존재하는 파일들이 모두 복사되어 들어간 것입니다. 아래 "useradd가 참조하는 파일 : /etc/skel/디렉토리내의 모든 파일들"설명을 참조하시기 바랍니다.
- sspark의 메일저장 파일생성
그리고 계정이 생성이 되면 /var/spool/mail에 계정명과 동일한 파일이 생성이 되는데, 이는 메일사용을 위한 파일입니다. 즉, 도착한 메일을 보관하기위한 사용자 메일파일입니다.
[root@host3 root]# ls -l /var/spool/mail |
- 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 # Password aging controls: # # # # [root@host3 skel]# |
- useradd가 참조하는 파일 : /etc/skel/디렉토리 내의 모든 파일들
sspark의 홈디렉토리로 /home/sspark이 생성이 되었으며 로그인 후에 서버사용을 위한 기본 설정파일들이 위와 같이 있습니다. 여기서 중요한 것은 계정이 생성되고 난 후에 /etc/skel/디렉토리에 존재하는 모든 파일들이 새로 생성된 사용자의 홈디렉토리로 복사되었다는 점입니다.
즉, /etc/skel/디렉토리에는 위의 홈디렉토리에 복사되어 들어간 파일들과 동일한 파일들이 있음을 알 수 있습니다.
관련자료
-
이전
-
다음