원본 출처 및 참고 사이트
http://todayis.tistory.com/162
http://cafe.naver.com/swingme.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=249
http://blog.naver.com/jochanyang?Redirect=Log&logNo=22287530
http://blog.naver.com/hcjang80_?Redirect=Log&logNo=40013473429
예제)
#> useradd batt2 -c "jaeyoon" -d /home/batt2 -m -p password -s /bin/bash
-c comment Set the GECOS field for the new account
-m Create home directory for the new user
-p password Encrypted password as returned by crypt(3)
-s shell Name of the user's login shell
하고 나서 로그인이 안되면 아래처럼 passwd를 다시 세팅해 주자.
#>passwd batt
-> 암호 2번 입력
1. 설치하기
참고로 사용자를 추가할 때 사용하는 명령어는 useradd 나 adduser 나 동일하다
옵션들
-c : 계정사용자의 간단한 설명
-e : 계정사용자의 종료일자
-d : 계정사용자의 홈디렉토리 지정
-u : UID 지정 (없으면 자동으로 지정해줌)
-p : 계정사용자의 비밀번호 지정
-s : 계정사용자의 shell 지정
생성하기 예)
사용자 아이디는 swingme
비밀번호는 swingme12345
홈디렉토리는 /home/swingme
사용할 쉘은 /bin/bash
계정사용자의 간단한 설명은 Swingme is ...
useradd swingme -p swingme12345 -d /home/swingme -s /bin/bash -c Swingme is ...
위와같이하면 swingme 라는 계정이 생겼을텐데. 확인하는 방법은
/etc/passwd 파일을 보면 됩니다.
2. 계정 삭제
userdel -r swingme (-r 생략시 /home/user 는 안사라짐)
3. 계정 비밀번호 변경
pssswd swingme
useradd
새로운 사용자를 생성할때 사용하는 명령어이다.
계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있다.
용도에 맞는
원하는 계정을 생성할때 사용하는 명령어이다.
또한 이 명령어는 "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"명령도 추가적으로 알아두기 바란다.
userdel
기존에 존재하는 계정정보를 삭제한다.
즉, /etc/passwd내의 계정내용, /etc/shadow내의 패스워드 내용,
/etc/group파일내의 그룹정보내용, 그리고 -r옵션을 사용하여 계정을 삭제하면 /var/spool/mail/디렉토리에 있는 메일파일과
홈디렉토리의 내용모두를 삭제한다.
사용형식
userdel [-r] login
userdel은 -r옵션을 사용했을 때와 사용하지 않았을 때의 차이점을 분명히 알고 있어야한다.
사용예 #1
먼저 -r옵션없이 sspark1이라는 계정을 삭제해 보자.
[root@host3 root]# userdel sspark1
[root@host3 root]#
위의 결과로 /etc/passwd, /etc/shadow, /etc/group파일내에 sspark1에 대한 설정값들이 모두 삭제되었다.
하지만 아래와 같이 sspark1의 홈디렉토리와 메일파일은 그대로 존재하고 있음을 알 수 있다.
[root@host3 root]# ls -al /home/sspark1
합계 32
drwx------ 3 600
600 4096 9월 19 11:46 .
drwxr-xr-x 9 root root 4096
9월 19 11:52 ..
-rw-r--r-- 1 600 600 24 9월 19 11:46
.bash_logout
-rw-r--r-- 1 600 600 191 9월 19 11:46
.bash_profile
-rw-r--r-- 1 600 600 124 9월 19 11:46
.bashrc
-rw-r--r-- 1 600 600 854 9월 19 11:46
.emacs
-rw-r--r-- 1 600 600 120 9월 19 11:46
.gtkrc
drwxr-xr-x 3 600 600 4096 9월 19 11:46
.kde
[root@host3 root]#
[root@host3 root]# ls -l
/var/spool/mail/sspark1
-rw-rw---- 1 600 600 0 9월 19
11:46 /var/spool/mail/sspark1
[root@host3 root]#
이 경우에는 홈디렉토리와 메일파일을 확인하고 관리자가 직접 찾아서 삭제해야한다.
사용예 #2
이번에는 -r옵션을 사용하여 bible3이라는 계정을 삭제하였다.
설명드린 바와 같이 /etc/passwd, /etc/shadow, /etc/group내의 bible3에 관한 설정행들과 /var/spool/mail에 있는 메일파일, 그리고 bible3의 홈디렉토리내용이 모두 삭제되었다.
[root@host3 root]# userdel -r bible3
[root@host3 root]#
아래는 bible3의 홈디렉토리가 삭제되었으므로 당연히 확인이 되지않음을 보여주고 있다.
[root@host3 root]# ls -al /home/bible3
ls: /home/bible3: 그런 파일이나 디렉토리가
없음
[root@host3 root]#
userdel명령어는 useradd명령어와 함께 익혀두기 바란다.
둘은 반대명령어이며 관련된 명령어끼지 함께 알아두면
실무활용에 큰 도움이 된다.
그리고 useradd와 userdel에서 중요한 것은 계정이 생성되고 삭제될때 어떤 파일들의 내용이 삭제가 되는가? 그리고 서버내부에서 어떤 파일들이 참조가 되는가를 정확하게 알고 있는것이 매우 중요한다.
[출처] [linux] useradd / userdel|작성자 작은행복