Linux 유저관리 ( useradd / usermod / userdel )
페이지 정보
본문
현재 유저정보 # cat -n /etc/passwd 으로 확인합니다.
/etc/passwd 파일에 저장된 정보이며, 이 파일을 직접 텍스트 에디터로 편집해서는 안됩니다.
여러 사람이 동시에 /etc/passwd 파일을 변경할 경우 /etc/passwd 파일의 내용이 손상될 가능성이 있기 때문입니다.
[ useradd ]
새로운 사용자를 생성할때 사용하는 명령어입니다.
계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있습니다.
용도에 맞는 원하는 계정을 생성할때 사용하는 명령어입니다.
또한 이 명령어는 "useradd -D"명령어와 반드시 함께 알아두세요.
계정을 생성하는 관리자용 명령어이므로 일반사용자들은 사용하지 않는 명령어입니다.
서버관리자가 해야하는 계정생성 관련업무에는 다음과 같은 것들이 있습니다.
- /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성
- /etc/shadow 파일에 계정 패스워드 등록
- /etc/group파일에 사용자의 그룹생성
- /home에 사용자의 홈디렉토리 생성
- FTP사용을 위한 FTP사용 환경설정
- 메일사용을 위한 메일환경설정
- 사용자의 로그인정보 및 환경설정
- 사용자의 디렉토리 및 파일 소유권 변경 및 확인
- DB 사용을 위한 환경설정 및 응용프로그램사용을 위한 환경설정
- 기타 응용 소프트웨어 사용을 위한 설정등
이외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자가 생성이 되면 기본적으로 위와 같은 작업을 해야합니다.
이런 업무중에 계정생성에 관련된 작업을 useradd를 이용하여 작업합니다.
useradd [-u uid(사용자 아이디)] [-o]] [-g 그룹명][-G 그룹,...]
[-d 홈디렉토리][-s 쉘][-c 적요사항][-m [-k template]]
[-f 비활성화] [-e 만기] [-p passwd] [-M] [-n] [-r] [-l] name
useradd -D [-g 그룹명][-b 초기디렉토리][-s 쉘][-f 비활성화] [-e 만기]
# useradd -u 사용자고유번호 -g 그룹명 -d 홈디렉토리 -s 쉘 -p 비밀번호 사용자이름
-d : 홈디렉토리를 지정
-g : 그룹을 지정해서 사용자를 생성한다. 해당그룹이 존재하는 상태에만 가능
-G : 기본그룹이외에 추가로 지정그룹에 속하게 한다.
-c : 사용자에 대한 설명을 추가한다.
-s : 사용자 쉘을 지정하여 생성
-D : /etc/default/useradd에 설정된 유저추가에 대한 기본설정을 보여준다.
[ 사용가능한 쉘을 확인하는 방법 ]
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
참고자료
http://milvus.tistory.com/32
[ 사용예 1 ]
# cd /home 홈디렉토리로 이동
# useradd happyjung 아이디 생성
# passwd happyjung 비밀번호 변경
# grep happyjung /etc/passwd
happyjung:x:500:501:해피정:/home/happyjung:/bin/bash
# grep happyjung /etc/shadow
happyjung:********:::
# grep happyjung /etc/group
happyjung:x:501:
# ls -al /home/happyjung
# ls -al /home/happyjung2
total 24
drwx-----x 3 happyjung happyjung 4096 Feb 23 07:23 .
drwxr-xr-x. 5 root root 4096 Feb 23 07:34 ..
-rw-r--r-- 1 happyjung happyjung 18 Jan 12 03:29 .bash_logout
-rw-r--r-- 1 happyjung happyjung 176 Jan 12 03:29 .bash_profile
-rw-r--r-- 1 happyjung happyjung 124 Jan 12 03:29 .bashrc
[ 사용예 2 ]
# useradd -u 502 -d /home/happyjung2 -s /bin/csh happyjung2
즉, UID를 502으로 지정하였으며, 홈디렉토리위치를 /home/happyjung2로 지정하였고, 기본사용쉘을 C Shell로 지정하였습니다.
# grep happyjung2 /etc/passwd
happyjung2:x:502:502::/home/happyjung2:/bin/csh
# grep happyjung2 /etc/group
happyjung2:x:502:
# ls -al /home/happyjung2
total 20
drwx-----x 3 happyjung2 happyjung2 4096 Feb 23 07:23 .
drwxr-xr-x. 5 root root 4096 Feb 23 07:34 ..
-rw-r--r-- 1 happyjung2 happyjung2 18 Jan 12 03:29 .bash_logout
-rw-r--r-- 1 happyjung2 happyjung2 176 Jan 12 03:29 .bash_profile
-rw-r--r-- 1 happyjung2 happyjung2 124 Jan 12 03:29 .bashrc
이렇게 옵션을 직접 지정하면 기본설정값에 우선하여 생성됩니다.
[ 사용예 3 ]
# useradd -u 503 -d /home/happyjung3 -s /bin/ksh -c 해피정 -e 2004-12-12 -p 12345 happyjung3
. -u 503 : UID 503로 지정
. -d /home/happyjung3 : 홈디렉토리 위치
. -s /bin/ksh : 사용할 기본쉘을 Korn Shell로 지정
. -c 해피정 : 계정사용자의 간단한 설명
. -e 2007-12-31 : 계정사용 종료일자
. -p 12345 : 패스워드를 12345로 지정
. happyjung3 : 생성할 계정명
# grep happyjung3 /etc/passwd
happyjung3:x:501:501:해피정:/home/happyjung3:/bin/ksh
# grep happyjung3 /etc/shadow
happyjung3:12345:12314:0:99999:7::12764:
# grep happyjung3 /etc/group
happyjung3:x:503:
[ usermod ]
계정에 설정된 내용을 변경합니다.
사용법: usermod [-u uid [-o]] [-g group] [[-a] -G group,...] [-d 홈 디렉토리 [-m]] [-s 쉘] [-c 적요사항] [-l 새_이름]
[-f 비활성화] [-e 만기] [-p 패스워드] -L|-U] 사용자계정이름
. -u : 사용자 계정의 uid 값을 변경
. -g : 계정의 활동 그룹을 변경
. -h : 홈페이지 디렉토리 변경
. -d : 사용자 홈 디렉토리 경로를 변경
. -f 0 : 사용자 계정의 이용을 중지
. -e : 사용자 계정의 유효기간을 지정
. -p : 비밀번호 변경
usermod -f 0 happyjung ... happyjung 의 계정을 중지합니다.
주의) 정지한 유저가 ~/.rhosts 파일을 기술했던 경우에는 다른 호스트 등으로부터 rlogin 커맨드로 로그인되어 버릴 수도 있습니다.
유저의 비밀번호를 변경하고자 하는경우
https://www.happyjung.com/lecture/341 참고
[ userdel ]
기존에 존재하는 계정정보를 삭제합니다.
즉, /etc/passwd내의 계정내용, /etc/shadow내의 패스워드 내용, /etc/group파일내의 그룹정보내용, 그리고 -r옵션을 사용하여 계정을 삭제하면 /var/spool/mail/디렉토리에 있는 메일파일과 홈디렉토리의 내용모두를 삭제합니다.
사용법: userdel [-r] login
userdel은 -r옵션을 사용했을 때와 사용하지 않았을 때의 차이점을 분명히 알고 있어야 합니다.
[ 사용예 1 ]
먼저 -r옵션없이 happyjung이라는 계정을 삭제하겠습니다.
# userdel happyjung
위의 결과로 /etc/passwd, /etc/shadow, /etc/group파일내에 happyjung에 대한 설정값들이 모두 삭제되었습니다.
하지만 아래와 같이 happyjung의 홈디렉토리와 메일파일은 그대로 존재하고 있음을 알 수 있습니다.
# ls -al /home/happyjung
합계 36
drwx-----x 2 500 500 4096 10월 3 16:20 .
drwxr-xr-x 29 root root 4096 10월 3 18:11 ..
-rw-r--r-- 1 500 500 24 7월 12 19:14 .bash_logout
-rw-r--r-- 1 500 500 191 7월 12 19:14 .bash_profile
-rw-r--r-- 1 500 500 124 7월 12 19:14 .bashrc
-rw-r--r-- 1 500 500 5619 7월 12 19:14 .canna
-rw-r--r-- 1 500 500 383 7월 12 19:14 .emacs
-rw-r--r-- 1 500 500 120 7월 12 19:14 .gtkrc
# ls -l /var/spool/mail/happyjung
-rw-rw---- 1 500 500 0 9월 19 11:46 /var/spool/mail/happyjung
이 경우에는 홈디렉토리와 메일파일을 확인하고 관리자가 직접 찾아서 삭제해야 합니다.
[ 사용예 2 ]
이번에는 -r옵션을 사용하여 happyjung2이라는 계정을 삭제합니다.
설명드린 바와 같이 /etc/passwd, /etc/shadow, /etc/group내의 happyjung2에 관한 설정행들과 /var/spool/mail에 있는 메일파일, 그리고 happyjung2의 홈디렉토리내용이 모두 삭제됩니다.
# userdel -r happyjung2
# ls -al /home/happyjung2
ls: /home/happyjung2: 그런 파일이나 디렉토리가 없음
참고자료
http://blog.naver.com/jochanyang/22287530
http://blog.naver.com/jupsoklove/120043010002
http://naompine.blogspot.kr/2015/07/8-centos.html
/etc/passwd 파일에 저장된 정보이며, 이 파일을 직접 텍스트 에디터로 편집해서는 안됩니다.
여러 사람이 동시에 /etc/passwd 파일을 변경할 경우 /etc/passwd 파일의 내용이 손상될 가능성이 있기 때문입니다.
[ useradd ]
새로운 사용자를 생성할때 사용하는 명령어입니다.
계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있습니다.
용도에 맞는 원하는 계정을 생성할때 사용하는 명령어입니다.
또한 이 명령어는 "useradd -D"명령어와 반드시 함께 알아두세요.
계정을 생성하는 관리자용 명령어이므로 일반사용자들은 사용하지 않는 명령어입니다.
서버관리자가 해야하는 계정생성 관련업무에는 다음과 같은 것들이 있습니다.
- /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성
- /etc/shadow 파일에 계정 패스워드 등록
- /etc/group파일에 사용자의 그룹생성
- /home에 사용자의 홈디렉토리 생성
- FTP사용을 위한 FTP사용 환경설정
- 메일사용을 위한 메일환경설정
- 사용자의 로그인정보 및 환경설정
- 사용자의 디렉토리 및 파일 소유권 변경 및 확인
- DB 사용을 위한 환경설정 및 응용프로그램사용을 위한 환경설정
- 기타 응용 소프트웨어 사용을 위한 설정등
이외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자가 생성이 되면 기본적으로 위와 같은 작업을 해야합니다.
이런 업무중에 계정생성에 관련된 작업을 useradd를 이용하여 작업합니다.
useradd [-u uid(사용자 아이디)] [-o]] [-g 그룹명][-G 그룹,...]
[-d 홈디렉토리][-s 쉘][-c 적요사항][-m [-k template]]
[-f 비활성화] [-e 만기] [-p passwd] [-M] [-n] [-r] [-l] name
useradd -D [-g 그룹명][-b 초기디렉토리][-s 쉘][-f 비활성화] [-e 만기]
# useradd -u 사용자고유번호 -g 그룹명 -d 홈디렉토리 -s 쉘 -p 비밀번호 사용자이름
-d : 홈디렉토리를 지정
-g : 그룹을 지정해서 사용자를 생성한다. 해당그룹이 존재하는 상태에만 가능
-G : 기본그룹이외에 추가로 지정그룹에 속하게 한다.
-c : 사용자에 대한 설명을 추가한다.
-s : 사용자 쉘을 지정하여 생성
-D : /etc/default/useradd에 설정된 유저추가에 대한 기본설정을 보여준다.
[ 사용가능한 쉘을 확인하는 방법 ]
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
참고자료
http://milvus.tistory.com/32
[ 사용예 1 ]
# cd /home 홈디렉토리로 이동
# useradd happyjung 아이디 생성
# passwd happyjung 비밀번호 변경
# grep happyjung /etc/passwd
happyjung:x:500:501:해피정:/home/happyjung:/bin/bash
# grep happyjung /etc/shadow
happyjung:********:::
# grep happyjung /etc/group
happyjung:x:501:
# ls -al /home/happyjung
# ls -al /home/happyjung2
total 24
drwx-----x 3 happyjung happyjung 4096 Feb 23 07:23 .
drwxr-xr-x. 5 root root 4096 Feb 23 07:34 ..
-rw-r--r-- 1 happyjung happyjung 18 Jan 12 03:29 .bash_logout
-rw-r--r-- 1 happyjung happyjung 176 Jan 12 03:29 .bash_profile
-rw-r--r-- 1 happyjung happyjung 124 Jan 12 03:29 .bashrc
[ 사용예 2 ]
# useradd -u 502 -d /home/happyjung2 -s /bin/csh happyjung2
즉, UID를 502으로 지정하였으며, 홈디렉토리위치를 /home/happyjung2로 지정하였고, 기본사용쉘을 C Shell로 지정하였습니다.
# grep happyjung2 /etc/passwd
happyjung2:x:502:502::/home/happyjung2:/bin/csh
# grep happyjung2 /etc/group
happyjung2:x:502:
# ls -al /home/happyjung2
total 20
drwx-----x 3 happyjung2 happyjung2 4096 Feb 23 07:23 .
drwxr-xr-x. 5 root root 4096 Feb 23 07:34 ..
-rw-r--r-- 1 happyjung2 happyjung2 18 Jan 12 03:29 .bash_logout
-rw-r--r-- 1 happyjung2 happyjung2 176 Jan 12 03:29 .bash_profile
-rw-r--r-- 1 happyjung2 happyjung2 124 Jan 12 03:29 .bashrc
이렇게 옵션을 직접 지정하면 기본설정값에 우선하여 생성됩니다.
[ 사용예 3 ]
# useradd -u 503 -d /home/happyjung3 -s /bin/ksh -c 해피정 -e 2004-12-12 -p 12345 happyjung3
. -u 503 : UID 503로 지정
. -d /home/happyjung3 : 홈디렉토리 위치
. -s /bin/ksh : 사용할 기본쉘을 Korn Shell로 지정
. -c 해피정 : 계정사용자의 간단한 설명
. -e 2007-12-31 : 계정사용 종료일자
. -p 12345 : 패스워드를 12345로 지정
. happyjung3 : 생성할 계정명
# grep happyjung3 /etc/passwd
happyjung3:x:501:501:해피정:/home/happyjung3:/bin/ksh
# grep happyjung3 /etc/shadow
happyjung3:12345:12314:0:99999:7::12764:
# grep happyjung3 /etc/group
happyjung3:x:503:
[ usermod ]
계정에 설정된 내용을 변경합니다.
사용법: usermod [-u uid [-o]] [-g group] [[-a] -G group,...] [-d 홈 디렉토리 [-m]] [-s 쉘] [-c 적요사항] [-l 새_이름]
[-f 비활성화] [-e 만기] [-p 패스워드] -L|-U] 사용자계정이름
. -u : 사용자 계정의 uid 값을 변경
. -g : 계정의 활동 그룹을 변경
. -h : 홈페이지 디렉토리 변경
. -d : 사용자 홈 디렉토리 경로를 변경
. -f 0 : 사용자 계정의 이용을 중지
. -e : 사용자 계정의 유효기간을 지정
. -p : 비밀번호 변경
usermod -f 0 happyjung ... happyjung 의 계정을 중지합니다.
주의) 정지한 유저가 ~/.rhosts 파일을 기술했던 경우에는 다른 호스트 등으로부터 rlogin 커맨드로 로그인되어 버릴 수도 있습니다.
유저의 비밀번호를 변경하고자 하는경우
https://www.happyjung.com/lecture/341 참고
[ userdel ]
기존에 존재하는 계정정보를 삭제합니다.
즉, /etc/passwd내의 계정내용, /etc/shadow내의 패스워드 내용, /etc/group파일내의 그룹정보내용, 그리고 -r옵션을 사용하여 계정을 삭제하면 /var/spool/mail/디렉토리에 있는 메일파일과 홈디렉토리의 내용모두를 삭제합니다.
사용법: userdel [-r] login
userdel은 -r옵션을 사용했을 때와 사용하지 않았을 때의 차이점을 분명히 알고 있어야 합니다.
[ 사용예 1 ]
먼저 -r옵션없이 happyjung이라는 계정을 삭제하겠습니다.
# userdel happyjung
위의 결과로 /etc/passwd, /etc/shadow, /etc/group파일내에 happyjung에 대한 설정값들이 모두 삭제되었습니다.
하지만 아래와 같이 happyjung의 홈디렉토리와 메일파일은 그대로 존재하고 있음을 알 수 있습니다.
# ls -al /home/happyjung
합계 36
drwx-----x 2 500 500 4096 10월 3 16:20 .
drwxr-xr-x 29 root root 4096 10월 3 18:11 ..
-rw-r--r-- 1 500 500 24 7월 12 19:14 .bash_logout
-rw-r--r-- 1 500 500 191 7월 12 19:14 .bash_profile
-rw-r--r-- 1 500 500 124 7월 12 19:14 .bashrc
-rw-r--r-- 1 500 500 5619 7월 12 19:14 .canna
-rw-r--r-- 1 500 500 383 7월 12 19:14 .emacs
-rw-r--r-- 1 500 500 120 7월 12 19:14 .gtkrc
# ls -l /var/spool/mail/happyjung
-rw-rw---- 1 500 500 0 9월 19 11:46 /var/spool/mail/happyjung
이 경우에는 홈디렉토리와 메일파일을 확인하고 관리자가 직접 찾아서 삭제해야 합니다.
[ 사용예 2 ]
이번에는 -r옵션을 사용하여 happyjung2이라는 계정을 삭제합니다.
설명드린 바와 같이 /etc/passwd, /etc/shadow, /etc/group내의 happyjung2에 관한 설정행들과 /var/spool/mail에 있는 메일파일, 그리고 happyjung2의 홈디렉토리내용이 모두 삭제됩니다.
# userdel -r happyjung2
# ls -al /home/happyjung2
ls: /home/happyjung2: 그런 파일이나 디렉토리가 없음
참고자료
http://blog.naver.com/jochanyang/22287530
http://blog.naver.com/jupsoklove/120043010002
http://naompine.blogspot.kr/2015/07/8-centos.html
댓글목록
등록된 댓글이 없습니다.