● 계정 관리
- 계정 : OS를 사용할 수 있는 허락받은 사용자
1. useradd - 계정 생성 명령
형식) ]# useradd [옵션] 계정명
- 동일한 이름의 계정은 생성할 수 없다.
- 옵션은 기본적으로 제공되는 정보를 사용하지 않고 다른 정보를 사용할 경우 적용
ex) ]# useradd kim
]# ls -l /home => kim 디렉토리 생성 확인 : kim 계정의 홈디렉토리
=> /home 디렉토리 하위에 계정명과 동일한 이름의 디렉토리가 자동 생성
]# groups kim => kim 계정의 그룹 포함 관계를 출력하는 명령
kim : kim => 계정명 : 그룹명 - kim 계정은 kim 그룹에 포함
=> 계정명과 동일한 이름의 그룹을 생성하여 자동 포함 시킨다.
]# grep kim /etc/passwd => /etc/passwd 파일에 kim 단어를 포함한 행 출력
kim:x:501:501::/home/kim:/bin/bash => 계정 생성을 하면 한 줄 추가
※ /etc/passwd : 리눅스 계정의 정보를 저장하고 있는 파일(데이타 구분자는 :를 사용한다.)
(1):(2):(3):(4):(5):(6):(7) => 한 줄이 계정에 대한 정보를 표현
1) 계정명
2) 암호 - 원래 암호는 /etc/passwd 파일에 암호화 되어 저장 되었다.
/etc/passwd 파일은 모든 계정이 읽을 수 있다.
=> 암호화 되어 있는 정보를 디코더(해독) 프로그램이 개발되어 보안이 위험
=> shadow 프로그램을 이용하여 암호만 따로 숨겨서 저장
(/etc/shadow 파일 - 관리자만 사용 가능)
3) UID - 계정을 구분하는 고유번호
0 : 관리자 계정
1 ~ 499 : 시스템 계정(시스템을 제어하는 계정) => 로그인 되지 않도록 생성하는 것이 원칙
500~60000 : 일반 계정
4) GID - 그룹을 구분하는 고유번호이며 계정이 포함된 그룹번호가 표시
=> 계정의 기본그룹(Default Group : 삭제되지 않는 그룹)
5) 설명문(Comment) - 계정에 대한 설명(생략 가능)
6) 홈디렉토리 - 계정의 홈디렉토리를 표시
7) 사용 Shell - 계정이 로그인하여 사용하는 쉘의 종류를 표시
]# grep kim /etc/shadow
kim:!!:15952:0:99999:7::: => 계정 생성을 하면 한 줄 추가
=> 계정의 암호 관련 정보를 저장한 파일(관리자만 사용할 수 있다.)
※ /etc/shadow - shadow 프로그램에 의해 계정의 암호 관련 정보를 저장
(1):(2):(3):(4):(5):(6):(7):(8):
1) 계정명
2) 암호 - 암호 되어 저장 => !로 시작되는 암호는 사용할 수 없는 암호
(처음 생성된 계정은 !로 시작되는 암호를 가지고 있다. => 관리자는 반드시 계정 생성 후 암호를 변경해야 된다.)
3) 암호 변경날짜(일) - Unixtime 형식으로 표현된 날짜
(Unixtme 또는 Timestamp - 1970년 1월 1일을 기준으로 사용된 값)
4) 암호 최소지속시간(일) - 암호를 변경 후 최소 사용해야 되는 시간
5) 암호 최대지속시간(일) - 암호를 변경 후 최대 사용할 수 있는 시간 => 보안상 변경하는 것을 추천
6) 경고시간(일) - 암호 최대지속시간이 다가올 경우 경고메세지가 출력되도록 지정한 시간
7) 암호 비활성화(Inactive) 시간(일) - 암호 최대지속시간에 초과된 경우 암호를 변경할 수 있도록 제공하는 유효시간
=> 비활성화 시간도 초과되면 더 이상 암호를 사용할 수 없다.(암호최대지속시간을
변경한 경우 반드시 설정)
8) 계정 비활성화(Expire) 날짜(년-월-일) - 계정을 사용하지 못하도록 날짜를 지정
]# passwd kim => 계정의 비밀번호를 변경(계정명이 생성되면 현재 로그인 계정)
=> 비밀번호를 2번 입력(비밀번호 규칙 무시)
※ 일반계정은 관리자가 알려준 비밀번호로 최초 로그인 후 자신의 비밀번호를 반드시 변경해야 된다.
]$ passwd => 기존 비밀번호 입력 후 새로운 비밀번호 2번 입력
(비밀번호 규칙에 위배되면 재입력)
※ 가상콘솔 환경으로 이동
[ctrl] + [alt] +[f1]~[f6] => 6개의 가상콘솔 이동
[ctrl] + [alt] +[f7] => x-window 복귀
- 계정 생성 관련 파일 => useradd 명령시 참조하는 파일
]# vi /etc/login.defs => 암호 유효기간 및 홈디렉토리 생성 유무등의 기본정보를 저장한 파일
...
PASS_MAX_DAYS 99999 => 암호 최대지속시간 : 99999 >> 30 변경
PASS_MIN_DAYS 0 => 암호 최소지속시간
PASS_MIN_LEN 5 => 비밀번호 최소길이(5초과)
PASS_WARN_AGE 7 => 비밀번호 변경 관련 경고날짜
CREATE_HOME yes => 계정 생성시 홈디렉토리 자동 생성 유무
UMASK 077 => 계정 홈디렉토리의 기본 생성권한을 조절하기 위한 데이타
]# vi /etc/default/useradd => 홈디렉토리 생성 위치 및 사용 쉘등을 지정하는 파일
GROUP = 100 => 계정이 포함될 수 있는 최대 그룹수
HOME = /home => 홈디렉토리 생성 위치 지정
INACTIVE = -1 => 암호 최대지속시간 종료 후 암호 변경하도록 제공해 주는 시간(-1
>> 5 : 비밀번호 변경 기간 5일 제공)
EXPIRE = => 계정 사용 유효기간 지정("년-월-일" 형식)
SHELL = /bin/bash => 계정 사용 쉘 지정
SKEL = /etc/skel => 계정의 홈디렉토리 안에 붙여넣기 될 파일이 존재하는
디렉토리 지정
CREATE_MAIL_SPOOL=yes => 메일 스풀기능 사용 유무 지정
※ ]# useradd -D 명령으로 /etc/default/useradd 변경 가능
]# useradd lee
]# grep lee /etc/shadow
lee:!!:15952:0:30:7:5::
- useradd 옵션 => 기본 설정파일의 정보를 활용하지 않고 다른 값으로 계정을 생성할 경우 사용
ex) ]# useradd -u 1000 kim => -u : UID 지정
]# useradd -d /home/kkk kim => -d : 홈디렉토리 지정
]# useradd -M -s /bin/false kim => -M : 홈디렉토리 생성 불가
-s : 사용 쉘 지정(/bin/false : 로그인 불가)
=> 시스템 계정 생성 경우
]# useradd -g root kim => -g : 계정의 기본그룹을 지정
(kim 계정은 root 그룹(기본그룹)에 포함)
]# useradd -G root kim => -G : 기본그룹외에 다른 그룹에 추가적인 포함(kim 계정은 kim 그룹(기본그룹) 및 root 그룹에 포함)
]# useradd -f 3 -e 2013-12-31 kim => -f : inactive 시간 지정 -e : expire 날짜 지정
2. usermod => 계정의 정보를 변경하는 명령
형식) ]# usermod 옵션 계정명
=> 옵션은 useradd 옵션과 동일
ex) inactive 시간을 10일로 변경
]# usermod -f 10 kim
3. userdel => 계정 삭제 명령
형식) ]# userdel [-r] 계정명
ex) ]# userdel kim => kim 계정만을 삭제
]# userdel -r lee => lee 계정 및 lee 소유 파일 삭제
]# ls -l /home => kim 디렉토리 존재, lee 디렉토리 삭제
※ 파일(디렉토리)의 소유자(소유그룹)가 UID(GID)로 표시되는 경우 해당 소유자
(소유그룹) 가 존재하지 않기 때문
=> 소유자(소유그룹) 변경
※ chage : 계정의 암호 관련 정보를 확인하거나 변경하는 명령
형식) ]# chage 옵션 계정명
ex) ]# chage -l kim => -l : 암호 관련 정보를 확인
]# chage -M 30 kim => -M : 암호 최대지속시간 변경
]# chage -I 5 kim => -I(대문자 I) : inactive 시간 변경
]# chage -E 2013-12-31 kim => -E : Expire 날짜 변경
● 그룹 관리
- 그룹 : 계정들의 모임(집합)
- 그룹 사용 이유 : 파일 권한을 보다 쉽게 부여 하기 위해
계정을 보다 편리하게 관리 하기 위해
=> 그룹에 계정을 포함 또는 삭제하는 명령이 중요
1. groupadd - 그룹 생성 명령
형식) ]# groupadd [옵션] 그룹명
ex) ]# groupadd test
]# grep test /etc/group => Group 정보를 저장하고 있는 파일
test:x:501:
=> 그룹명:암호:GID:계정명,계정명,....
-------------
└ /etc/passwd에 표시된 기본그룹은 제외
※ 그룹암호 : 예전 그룹으로 로그인 할 경우 사용한 암호지만 현재는 사용되지 않는다.
=> shadow 프로그램에 의해 암호는 /etc/gshadow 파일에 저장
- 그룹은 useradd 명령에 의해 자동 생성 된다.
ex) ]# useradd kim
]# grep kim /etc/group
kim:x:502:
2. groupmod - 그룹 정보 변경(그룹명 또는 GID 변경)
형식) ]# groupmod 옵션 그룹명
3. groupdel - 그룹 삭제
형식) ]# groupdel 그룹명
ex) ]# groupdel test
]# groupdel root => root 그룹 삭제 불가 : 계정의 기본그룹은 삭제되지 않는다.
- userdel 명령을 사용하면 그룹이 자동으로 삭제된다.
ex) ]# userdel -r kim
]# grep kim /etc/group => kim 그룹은 존재하지 않는다.
● 계정과 그룹 관계
- 계정을 그룹에 포함 시키거나 없애는 방법
- useradd 명령, usermod 명령 또는 gpasswd 명령 사용
ex) ]# useradd aaa => aaa 계정 생성 후 aaa 그룹(자동생성)에 포함
- /etc/passwd 및 /etc/group를 확인
]# groups aaa => 계정이 포함된 그룹 확인
aaa : aaa 그룹명 : 계정명,계정명,...
]# id aaa => 계정이 포함된 그룹 확인
uid=502(aaa) gid=502(aaa) groups=502(aaa)
]# groupadd test => 그룹 생성(/etc/group 확인)
]# useradd -g test bbb => bbb 계정 생성 후 test 그룹에 포함
]# id bbb
uid=503(bbb) gid=503(test) groups=503(test)
]# useradd -G test ccc => ccc 계정 생성 후 ccc 그룹(자동생성), test 그룹에 포함
]# id ccc
uid=504(ccc) gid=504(ccc) groups=504(ccc),503(test)
]# usermod -G root,ccc aaa => aaa 계정을 root 그룹 및 ccc 그룹에 추가 포함
]# id aaa
uid=502(aaa) gid=502(aaa) groups=502(aaa),0(root),504(ccc)
]# gpasswd -a ccc root => root 그룹에 ccc 계정 추가(-a)
]# id ccc
uid=504(ccc) gid=504(ccc) groups=504(ccc),0(root),503(test)
]# gpasswd -d ccc test => test 그룹에서 ccc 계정 삭제(-d)
]# id ccc
uid=504(ccc) gid=504(ccc) groups=504(ccc),0(root)
]# gpasswd -M aaa,ccc test => test 그룹에 aaa,ccc 계정 모두 추가(-M)
]# id aaa
uid=502(aaa) gid=502(aaa) groups=502(aaa),0(root),503(test),504(ccc)
]# id ccc
uid=504(ccc) gid=504(ccc) groups=504(ccc),0(root),503(test)
]# gpasswd -A aaa test => test 그룹의 관리자로 aaa 계정을 임명
=> aaa 계정은 gpasswd 명령을 이용하여 test 그룹에 계정 추가 또는 삭제 가능
]# gpasswd test => 그룹에 암호를 변경
※ 그룹관리자 정보 및 그룹 암호는 /etc/gshadow 파일에서 확인 가능
※ /etc/passwd 및 /etc/group 파일을 수정하여 사용해도 된다.
'Dev > Dev:: Linux' 카테고리의 다른 글
[Day005] Linux 5일차 (0) | 2013.09.10 |
---|---|
[Day004] Linux - 원격 로그인, 계정, 권한 (0) | 2013.09.09 |
[Day003] Linux 3일차 - vi 문서편집기 (0) | 2013.09.05 |
[Day002] Linux 2일차 (0) | 2013.09.04 |
[Day001] Linux 1일차 - 기본명령어 실습하기 (0) | 2013.09.04 |