서버/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

 

Posted by 김정우 강사(카카오톡 : kim10322)
,


Q