서버/Linux I 2016. 1. 20. 14:29
Linux I - 10. 계정 생성 및 관리
login as: root
root@192.168.1.2's password:
Last login: Wed Jan 20 14:15:15 2016 from 192.168.1.1
[root@CentOS /root]#
리눅스에서 계정은 다음과 같이 root, system, user 계정 3가지로 구분된다.
root |
관리자 계정이며, 모든 권한을 행사할 수 있음 |
system |
시스템 운영시 필요한 계정이며, 로그인은 불가능함 |
user |
일반 계정이며, root 처럼 모든 권한을 행사할 수 없음 |
관리자는 root 계정을 이용하여 작업을 실시하며, 리눅스를 연습하는 단계에서는 user 계정을 이용하는 것을 권장한다.
/etc/passwd |
/etc/shadow |
/etc/group |
계정 전체 정보 관리 파일 |
계정 패스워드 관리 파일 |
계정 그룹 관리 파일 |
[root@CentOS /root]# cat /etc/passwd
[root@CentOS /root]# cat /etc/shadow
[root@CentOS /root]# cat /etc/group
[root@CentOS /root]# head -5 /etc/passwd ; tail -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash (root 계정)
bin:x:1:1:bin:/bin:/sbin/nologin (system 계정)
daemon:x:2:2:daemon:/sbin:/sbin/nologin (system 계정)
tcpdump:x:72:72::/:/sbin/nologin (system 계정)
user1:x:500:500::/home/user1:/bin/bash (user 계정)
user2:x:501:501::/home/user2:/bin/bash (user 계정)
Ex) 계정 정보 보는 방법
root:x:0:0:root:/root:/bin/bash
root |
계정 이름 |
x |
패스워드이며, etc/shadow 파일에 저장되어 있음 |
0 |
커널이 참조하는 root 계정 식별자 |
0 |
root 계정이 소속된 그룹, 0이면 Primary 그룹을 의미함 |
root |
계정 주석 |
/root |
root 계정의 사용자 Home 디렉토리 |
/bin/bash |
root 계정이 로그인할때, 할당받는 쉘 |
1. 계정 생성 및 관리 명령어
Ex) 'useradd' 명령어
[root@CentOS /root]# useradd ccent
기본값으로 계정 생성
[root@CentOS /root]# useradd -d /var/user1 ccna
홈디렉토리를 /var/user1를 사용하여 계정 생성
[root@CentOS /root]# useradd -d /var/user2 -s /bin/csh ccnp
홈디렉토리를 /var/user2를 사용하며, 로그인 쉘 설정
[root@CentOS /root]# useradd -e 2016-12-31 -c "kim jung woo" ccie
계정 만료일과 주석 설정
[root@CentOS /root]# useradd -u 1000 ccde
계정 uid 설정 (기본적으로 앞에 계정에 1을 더해진 값으로 생성됨)
[root@CentOS /root]# tail -n 7 /etc/passwd
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
ccent:x:502:502::/home/ccent:/bin/bash
ccna:x:503:503::/var/user1:/bin/bash
ccnp:x:504:504::/var/user2:/bin/csh
ccie:x:505:505:kim jung woo:/home/ccie:/bin/bash
ccde:x:1000:1000::/home/ccde:/bin/bash
Ex) 'usermod' 명령어
[root@CentOS /root]# usermod -s /bin/bash ccnp
로그인 쉘 변경
[root@CentOS /root]# usermod -e '' -c "KIM JUNG WOO" ccie
ccie 계정 만료일 무한으로 변경 및 주석 변경
[root@CentOS /root]# usermod -u 506 ccde
계정 uid 506으로 변경
[root@CentOS /root]# tail -n 7 /etc/passwd
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
ccent:x:502:502::/home/ccent:/bin/bash
ccna:x:503:503::/var/user1:/bin/bash
ccnp:x:504:504::/var/user2:/bin/bash
ccie:x:505:505:KIM JUNG WOO:/home/ccie:/bin/bash
ccde:x:506:1000::/home/ccde:/bin/bash
Ex) 'userdel' 명령어
[root@CentOS /root]# userdel ccent 계정 삭제, 단 홈디렉토리는 삭제 안됨
[root@CentOS /root]# ls /home
ccde ccent ccie user1 user2
[root@CentOS /root]# rm -rf /home/ccent
[root@CentOS /root]# ls /home
ccde ccie user1 user2
[root@CentOS /root]# userdel -r ccna 계정 삭제, 홈디렉토리까지 삭제됨
[root@CentOS /root]# userdel -r ccnp
[root@CentOS /root]# userdel -r ccie
[root@CentOS /root]# userdel -r ccde
[root@CentOS /root]# ls /home
user1 user2
[root@CentOS /root]# ls /var
account crash db games lib lock mail opt run tmp yp
cache cvs empty gdm local log nis preserve spool www
Ex) 'useradd -D' 명령어
- 'useradd -D' 명령어를 이용하면 '/etc/default/useradd' 파일을 이용함
[root@CentOS /root]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@CentOS /root]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel <----------- 계정 생성시 계정 홈디렉토리로 자동으로 복사되는 파일이 있는 디렉토리
CREATE_MAIL_SPOOL=yes
[root@CentOS /root]#
[root@CentOS /root]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla
- 계정 기본 값이며, 변경하려면 'useradd -D 옵션 내용' 형식으로 변경하면 됨
[root@CentOS /root]# useradd -D -b /var -e 2016-12-31 -s /bin/csh
[root@CentOS /root]# useradd -D
GROUP=100
HOME=/var
INACTIVE=-1
EXPIRE=2016-12-31
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@CentOS /root]# useradd -D -b /home -e '' -s /bin/bash
[root@CentOS /root]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
2. shadow 파일 관련 내용
[root@CentOS /root]# head -1 /etc/shadow
root:
$6$7UK6Zk3dYVfNoDBg$oSobCsu1g.z.tYblICZffT8g.g4NcVv/marnvBha7BiahfGUD3p9RZiHnckOydUWqUdjrO/Htpcz/Ili8oMTQ/:
16811:
0:
99999:
7:
::
root: |
Login name |
계정 이름 |
$6$7UK6Z 생략 |
Encrypted password |
계정 패스워드 |
16811: |
date of last password change |
최근에 패스워드를 변경한 날짜 (1970.1.1 기준으로 계산) |
0: |
minimum password age |
패스워드를 변경할 수 없는 기간 (암호최소변경주기) |
99999: |
maximum password age |
패스워드를 변경해야 하는 기간 (암호최대변경주기) |
7: |
password warning period |
패스워드 만료 며칠전 알림 |
|
password inactivity period |
패스워드 만료 이후 비활성화 기간 |
:: |
account expiration date |
계정 만료 날짜 |
|
reserved field |
예약된 필드, 사용 불가능 |
Ex) 패스워드 에이징 설정
[root@CentOS /root]# useradd ccna
[root@CentOS /root]# tail -1 /etc/shadow
ccna:!!:16820:0:99999:7:::
[root@CentOS /root]# chage -l ccna
Last password change : Jan 20, 2016
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
- 주기적으로 패스워드를 강제로 변경하기 위해서 사용하는 설정이다. 현재 ccna 계정은 암호최대변경주기가 99999일이기때문에
패스워드 에이지 설정이 안된 상태임
Ex) 패스워드 에이징 설정 I
[root@CentOS /root]# chage ccna
Changing the aging information for ccna
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 3
Maximum Password Age [99999]: 7
Last Password Change (YYYY-MM-DD) [2016-01-20]: 엔터
Password Expiration Warning [7]: 엔터
Password Inactive [-1]: 10
Account Expiration Date (YYYY-MM-DD) [1969-12-31]: 2016-12-31
[root@CentOS /root]# tail -1 /etc/shadow
ccna:!!:16820:3:7:7:10:17166:
[root@CentOS /root]# chage -l ccna
Last password change : Jan 20, 2016
Password expires : Jan 27, 2016
Password inactive : Feb 06, 2016
Account expires : Dec 31, 2016
Minimum number of days between password change : 3
Maximum number of days between password change : 7
Number of days of warning before password expires : 7
Ex) 패스워드 에이징 설정 II
[root@CentOS /root]# useradd ccnp
[root@CentOS /root]# chage -m 3 -M 7 -W 7 -I 10 -E 2016-12-31 ccnp
[root@CentOS /root]# tail -1 /etc/shadow
ccnp:!!:16820:3:7:7:10:17166:
[root@CentOS /root]# chage -l ccnp
Last password change : Jan 20, 2016
Password expires : Jan 27, 2016
Password inactive : Feb 06, 2016
Account expires : Dec 31, 2016
Minimum number of days between password change : 3
Maximum number of days between password change : 7
Number of days of warning before password expires : 7
3. group 파일 관련 내용
[root@CentOS /root]# head -n 1 /etc/group ; tail -n 4 /etc/group
root:x:0:
user1:x:500:
user2:x:501:
ccna:x:502:
ccnp:x:503:
root: |
그룹 이름 |
x: |
패스워드 |
0: |
그룹 식별자 |
Ex) 그룹 추가/변경/삭제
[root@CentOS /root]# groupadd cisco1
[root@CentOS /root]# tail -2 /etc/group
ccnp:x:503:
cisco:x:504:
[root@CentOS /root]# groupmod -n cisco2 cisco1
[root@CentOS /root]# tail -2 /etc/group
ccnp:x:503:
cisco2:x:504:
[root@CentOS /root]# groupdel cisco2
[root@CentOS /root]# tail -2 /etc/group
ccna:x:502:
ccnp:x:503:
Ex) 그룹에 사용자 계정이 소속되 있을 경우, 그룹 삭제 불가능
[root@CentOS /root]# tail -2 /etc/passwd
ccna:x:502:502::/home/ccna:/bin/bash
ccnp:x:503:503::/home/ccnp:/bin/bash
[root@CentOS /root]# groups ccnp
ccnp : ccnp
[root@CentOS /root]# groupadd cisco1
[root@CentOS /root]# usermod -g cisco1 ccnp
[root@CentOS /root]# tail -2 /etc/passwd
ccna:x:502:502::/home/ccna:/bin/bash
ccnp:x:503:504::/home/ccnp:/bin/bash
[root@CentOS /root]# groups ccnp
ccnp : cisco1
[root@CentOS /root]# groupdel cisco1
groupdel: 'ccnp' 사용자의 주요 그룹을 제거할 수 없습니다
[root@CentOS /root]# userdel -r ccna
[root@CentOS /root]# userdel -r ccnp
[root@CentOS /root]# groupdel cisco1
Ex) 사용자 계정을 여러 그룹(주-그룹, 보조-그룹)에 소속할 경우
[root@CentOS /root]# groupadd cisco1
[root@CentOS /root]# groupadd cisco2
[root@CentOS /root]# groupadd cisco3
[root@CentOS /root]# useradd -g cisco1 -G cisco2,cisco3 ccna
[root@CentOS /root]# groups ccna
ccna : cisco1 cisco2 cisco3
Ex) 사용자 계정을 보조-그룹에만 소속할 경우
[root@CentOS /root]# useradd -G cisco2,cisco3 ccnp
[root@CentOS /root]# groups ccnp
ccnp : ccnp cisco2 cisco3
[root@CentOS /root]# userdel -r ccna
[root@CentOS /root]# userdel -r ccnp
[root@CentOS /root]# groupdel cisco1
[root@CentOS /root]# groupdel cisco2
[root@CentOS /root]# groupdel cisco3
'서버 > Linux I' 카테고리의 다른 글
Linux I - 12. 프로세스 관리 (0) | 2016.01.25 |
---|---|
Linux I - 11. 압축 & 아카이빙 (0) | 2016.01.25 |
Linux I - 09. 파일 속성 관리 (퍼미션) (0) | 2015.12.24 |
Linux I - 08. vi 편집기 사용 방법 (0) | 2015.12.23 |
Linux I - 07. 리눅스 기본 명령어 (메타 케릭터/리다이렉션/파이프) (0) | 2015.12.23 |