흐르는 시간의 블로그...

출처 : 수퍼유저코리아(www.superuser.co.kr)

-- 필요시에는 위의 링크에서 자료를 찾길 바랍니다. --


useradd / adduser

새로운 사용자를 생성할때 사용하는 명령어이다.
계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있다.
용도에 맞는 원하는 계정을 생성할때 사용하는 명령어이다.

또한 이 명령어는 "useradd -D"명령어와 반드시 함께 알아두기 바란다. (강추)

계정을 생성하는 관리자용 명령어이므로 일반사용자들은 사용하지 않는 명령어이다.

또한 리눅스에서 useradd와 adduser명령어가 어떻게 다르냐고 질문하시는 분들이 있다.
다음의 사실을 명확하게 확인하기 바란다.

[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명령어는 완전히 동일하다고 보면 된다.
앞으로 이런 문제로 고민하는 일이 없기를 바라면서...

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

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

이외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자가 생성이 되면 기본적으로 위와
같은 작업을 해야한다.

이런 업무중에 계정생성에 관련된 작업을 useradd를 이용하여 작업한다.


사용형식

useradd [-c comment] [-d home_dir]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-m [-k skeleton_dir] | -M] [-p passwd]
[-s shell] [-u uid [ -o]] [-n] [-r] login

사용예 #1

useradd로 간단히 계정을 생성하는 예를 보았으므로 이번에는 좀 더 다양한 옵션사용의 예를 보도록 하자.

sspark1이라는 계정사용자를 다음과 같이 새로 생성하였다.

[root@host3 root]#useradd -d /home/sspark1 -u 600 -s /bin/csh sspark1
[root@host3 root]#

즉, 홈디렉토리위치를 /home/sspark1로 지정하였고, UID를 600으로 지정하였으며, 기본사용쉘을 C Shell로 지정하였다.
다음은 결과를 확인하 것이다.

[root@host3 root]#grep sspark1 /etc/passwd
sspark1:x:600:600::/home/sspark1:/bin/csh
[root@host3 root]#

[root@host3 root]#grep sspark1 /etc/group
sspark1:x:600:
[root@host3 root]#
[root@host3 root]#ls -al /home/sspark1
합계 32
drwx------ 3 sspark1 sspark1 4096 9월 19 11:46 .
drwxr-xr-x 8 root root 4096 9월 19 11:46 ..
-rw-r--r-- 1 sspark1 sspark1 24 9월 19 11:46 .bash_logout
-rw-r--r-- 1 sspark1 sspark1 191 9월 19 11:46 .bash_profile
-rw-r--r-- 1 sspark1 sspark1 124 9월 19 11:46 .bashrc
-rw-r--r-- 1 sspark1 sspark1 854 9월 19 11:46 .emacs
-rw-r--r-- 1 sspark1 sspark1 120 9월 19 11:46 .gtkrc
drwxr-xr-x 3 sspark1 sspark1 4096 9월 19 11:46 .kde
[root@host3 root]#

이렇게 옵션을 직접 지정하면 기본설정값에 우선하여 생성이 됨을 알아두기 바란다.


사용예 #2

다음의 예는 좀 더 다양한 옵션을 사용하여 계정을 생성한 예이다.

[root@host3 root]#useradd -c 박성수 -e 2004-12-12 -d /home/sspark2 -u 601 -s /bin/ksh -p 12345 sspark2
[root@host3 root]#

위에서 사용한 옵션을 간단히 설명하면 다음과 같다.

. -c 박성수 : 계정사용자의 간단한 설명
. -e 2004-12-12 : 계정사용 종료일자
. -d /home/sspark2 : 홈디렉토리 위치
. -u 601 : UID 601로 지정
. -s /bin/ksh : 사용할 기본쉘을 Korn Shell로 지정
. -p 12345 : 패스워드를 12345로 지정
. sspark2 : 생성할 계정명

위와 같이 지정한 다음 생성된 내용을 간단히 확인한 것이다.

[root@host3 root]#grep sspark2 /etc/passwd
sspark2:x:601:601:박성수:/home/sspark2:/bin/ksh
[root@host3 root]#
[root@host3 root]#grep sspark2 /etc/shadow
sspark2:12345:12314:0:99999:7::12764:
[root@host3 root]#
[root@host3 root]#grep sspark2 /etc/group
sspark2:x:601:
[root@host3 root]#


이상과 같이 다양한 옵션을 사용하여 useradd를 사용할 수 있음을 알 수 있을 것이다.
위에서도 말씀드렸지만 useradd명령과 함께 "useradd -D"명령도 추가적으로 알아두기 바란다.