최적합 리눅스 마스터 1급(성안당 출판)을 참고하였고, CentOs 환경에서 실습하였다.
useradd [옵션] [사용자 계정]
옵션 | 설명 |
-u | 사용자 계정 UID |
-g | 사용자 계정 GID |
-G | 사용자 계정의 2차 그룹 GID |
-d | 사용자 홈 디렉토리 지정 |
-e | 사용자 계정 만료일 지정 |
-f | 사용자 계정 유효일자 지정 |
-s | 로그인 시 사용할 기본 셸(Shell) 지정 |
-M | 사용자 홈 디렉토리를 생성하지 않음 |
-c | 주석 |
useradd, adduser 명령을 사용하면 사용자 계정을 새로 만들 수 있다.
새로 만들어진 계정은 /etc/passwd 파일에 저장된다.
현재 리눅스에는 있는 계정의 목록들을 'cat /etc/passwd' 명령으로 확인해 보았다.
root부터 chrony까지가 현재 이 리눅스에 있는 계정들이다.
이제 useradd 명령으로 test라는 이름의 사용자를 추가해보겠다.
useradd 명령을 사용하고 다시 /etc/passwd를 확인해보니 맨 아래에 test 계정이 추가된 모습을 볼 수 있다.
여기서, /etc/passwd 파일에서 확인할 수 있는 부분이다.
test : x : 1000 : 1000 : : /home/test : /bin/bash
1) test | 2) x | 3) 1000 | 4) 1000 | 5) /home/test | 6) /bin/bash | |
사용자 계정 | 패스워드 | UID | GID | 주석 정보 | 홈 디렉토리 | 사용하는 Shell |
2) x 패스워드는 /etc/shadow 파일에 해쉬로 저장되어 있다.
4) useradd -c 옵션으로 계정 생성 시 설명을 추가할 수 있다.
5) useradd -d 옵션으로 계정 생성 시 설정할 수 있다.
6) useradd -s 옵션으로 계정 생성 시 설정할 수 있다.
/etc/shadow 파일을 확인해보면
test : !! : 18135 : 0 : 99999 : 7 : : :
내용 | 의미 |
1) test | 사용자 계정 |
2) !! | 패스워드 |
3) 18135 | 1970년 1월 1일 부터 패스워드가 수정된 날짜의 일수 |
4) 0 | 패스워드 변경 전 최소 사용기간 |
5) 99999 | 패스워드 변경 전 최대 사용기간 |
6) 7 | 패스워드 사용 만기일 전에 경고 메시지를 알려주는 일 수 |
7) | 로그인 접속 차단 일 수 |
8) | 예약 필드 |
2-1) 계정에 패스워드가 존재하는 경우에는 패스워드에 Salt값으로 해쉬 암호화된 해쉬 값이 있다.
2-2) 계정이 잠겨있는 계정이라면 '*'로 되어있다.
2-3) 계정 패스워드가 설정되어 있지 않으면 !!로 되어있다.
3) 계정을 생성하고 패스워드를 바꾸지 않았기 때문에 1970년 1월 1일부터 지금까지의 일 수이다.
4) 패스워드를 변경하고 사용되어야 하는 일 수. 0일이니 언제나 변경 가능하다는 뜻이다.
5) 패스워드를 변경하고 사용할 수 있는 기간. 99999일이라서 거의 무제한 사용 가능하다.
6) 패스워드를 바꿔야 할 때를 며칠 전부터 알려줄지이다. 7일이니 변경해야 하기 일주일 전부터 알려준다.
useradd 명령을 옵션 없이 test 사용자 계정을 만들었다. 그 뒤에 /etc/passwd를 통하여 계정의 정보를 확인하였을 때 UID, GID, 홈 디렉터리, 사용하는 Shell이 같이 설정된 것을 볼 수 있다.
이는 /etc/default/useradd 파일에 default 값이 저장되어 있다.
useradd default file에는
내용 | 의미 |
GROUP | GID 지정 |
HOME | 홈 디렉토리 지정 |
INACTIVE |
패스워드 사용기간 만료 시 계정 사용 여부 0 : 기능 사용 -1 : 기능 사용하지 않음 |
EXPIRE | 패스워드 만료일자 |
SHELL | 기본 Shell 지정 |
SKEL | 새로운 홈 디렉토리가 만들어 졌을 때 복사되는 초기 환경파일들이 저장되어 있는 디렉토리 |
CREATE_MAIL_SPOOL | 새로운 사용자에게 메일 저장 파일 여부 지정 |
/etc/login.defs는 사용자 계정의 설정과 관련된 기본 값을 정의한 파일이다.
본문이 길어서 전체 캡처는 하지 못하였다.
옵션 | 설명 |
MAIL_DIR | 메일 저장 디렉토리, /var/spool/mail |
PASS_MAX_DAYS, PASS_MAX_DAYS | 패스워드 변경 최소, 최대 일자 |
PASS_MIN_LEN | 패스워드 최소 길이 |
PASS_WARN_AGE | 패스워드 최대 일자 전에 경고 알려주는 일자 |
UID_MIN, UID_MAX | UID 최소, 최대 숫자 |
SYS_UID_MIN, SYS_UID_MAX | 시스템 계정 UID 최소, 최대 숫자 |
GID_MIN, GID_MAX | GID 최소, 최대 숫자 |
SYS_GID_MIN, SYS_GID_MAX | 시스템 계정 GID 최소, 최대 숫자 |
CREATE_HOME | 홈 디렉토리 생성 여부, YES |
UMASK | UMASK 값 설정 |
USERGROUPS_ENAB | 사용자 계정 삭제 시 그룹 삭제 여부 |
ENCRYPT_METHOD | 암호화 기법 |
이 설정을 바꿀 수 있는 명령어가 있다.
chage [옵션] [사용자 계정]
옵션 | 설명 |
-d | 마지막으로 패스워드를 변경한 일자 |
-E | 사용자 계정 종료 일자 |
-I |
지금 날짜로 패스워드 유효기간 종료 이후에 계정 비활성화 일 수 |
-m | 패스워드를 변경할 수 있는 최소 일 수 |
-M | 마지막 변경 이후의 패스워드 유효일 수 |
-W |
패스워드 만료기간 몇 일 전에 안내 메시지를 보내는 경고날짜 |
-I user | 현재 사용자 패스워드 만기정보를 출력 |
chage 명령을 통해서 test 계정의 만기정보를 출력해 보았다.
Last password change: 마지막으로 패스워드가 바뀐 날짜는 패스워드를 바꾼적이 없기 때문에 계정을 생성한 날짜가 된다.
'리눅스 마스터' 카테고리의 다른 글
[리눅스 마스터] 리눅스 사용자(User) 관리 - 2 (0) | 2019.08.31 |
---|