● 계정 관리
- 계정 : 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
※ 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 날짜 변경
3. userdel => 계정 삭제 명령
형식) ]# userdel [-r] 계정명
ex) ]# userdel kim => kim 계정만을 삭제
]# userdel -r lee => lee 계정 및 lee 소유 파일 삭제
]# ls -l /home => kim 디렉토리 존재, lee 디렉토리 없음
※ 파일(디렉토리)의 소유자(소유그룹)가 UID(GID)로 표시되는 경우
해당 소유자(소유그룹)가 존재하지 않기 때문
=> 소유자(소유그룹) 변경