사용자 계정 관련 파일
- 리눅스는 다중 사용자 시스템이므로 사용자를 구별하고 사용자에게 적절한 자원을 할당해주는 방법 필요
- 사용자에게 사용자 계정은 시스템에 접근할 수 있는 유일한 방법
- 시스템 관리자에게 사용자 계정은 사용자의 접근 권한을 통제할 수 있는 중요한 수단
/etc/passwd
- 사용자 계정 정보가 저장된 기본 파일
- 한 행에 사용자 한 명에 대한 정보가 기록
- 로그인ID:x:UID:GID:설명:홈디렉터리:로그인셸
- 로그인ID가 다르더라도 UID가 같으면 같은 사용자로 인식
- 예전에는 x에 암호를 저장했으나 요즘은 /etc/shadow 파일에 별도 저장
/etc/shadow
- 사용자 암호에 관한 정보를 별도로 관리하는 파일
- root 계정으로만 내용을 볼 수 있음
- 로그인ID:암호:최종변경일:MIN:MAX:WARNING:INACTIVE:EXPIRE:Flag
- MIN: 암호 변경 후 사용해야 하는 최소 기간
- MAX: 암호를 사용할 수 있는 최대 기간
/etc/login.defs
항목 | 기본값 | 의미 |
MAIL_DR | /var/spool/mail | 기본 메일 디렉터리 |
PASS_MAX_DAYS | 99999 | 패스워드 에이징 |
PASS_MIN_DAYS | 0 | |
PASS_WARN_AGE | 7 | |
MASS_MIN_LEN | 5 | 패스워드 최소 길이 |
UID_MIN, UID_MAX | 1000~60000 | 사용자 계정의 UID 범위 |
SYS_UID_MIN, SYS_UID_MAX | 201~999 | 시스템 계정의 UID 범위 |
GID_MIN, GID_MAX | 1000~60000 | 사용자 계정의 GID 범위 |
SYS_GID_MIN, SYS_GID_MAX | 201~999 | 시스템 계정의 GID 범위 |
CREATE_HOME | Yes | 홈 디렉터리 생성 여부 |
UMASK | 077 | umask 값 설정 |
USERGROUPS_ENAB | Yes | 사용자 계정 삭제 시 그룹 삭제 여부 |
ENCRYPT_METHOD | SHA512 | 암호화 기법 |
/etc/groups
- 그룹에 대한 정보 저장
- /etc/passwd/ 파일의 GID 항목에 지정된 그룹이 기본 그룹
- 사용자가 속한 2차 그룹은 /etc/groups 파일에 지정
- 그룹이름:x:GID:그룹멤버
- x에 암호화된 그룹 암호를 저장하거나 /etc/gshadow 파일에 그룹 암호 저장
/etc/gshadow
- 그룹 암호가 저장된 파일
- 원래 유닉스에는 없는 파일로 리눅스에서 별도로 만든 파일
- 그룹이름:그룹암호:관리자:그룹멤버
사용자 계정 관리 명령
useradd
- useradd [옵션] [로그인ID]
- -u uid: UID 지정
- -o: UID의 중복 허용
- -g gid: 기본 그룹의 GID 지정
- -G gid: 2차 그룹의 GID 지정
- -d 디렉터리명: 홈 디렉터리 지정
- -D: 기본 설정 값 확인, /etc/default/useradd 파일에 기본 설정 항목 저장
- 사용자 계정 생성
- 생성 후에는 암호를 설정해줘야 함
- su - 로그인ID 명령어로 계정 전환 가능
- 사용자 계정의 홈 디렉터리에 공통으로 배포해야 할 파일을 /etc/skel 디렉터리에 만들어 놓으면 계정 생성 시 자동으로 복사
adduser
- adduser [옵션] [로그인ID]
- --uid UID: UID 지정
- --gid GID: 기본 그룹의 GID 지정
- --home 디렉터리: 홈 디렉터리 지정
- --shell 셸: 기본 셸 지정
- --gecos 설명: 사용자의 이름 등 부가적인 설명 지정
- 사용자 계정 정보 생성
- 우분투에서는 adduser를 권장
usermod
- usermod [옵션] [로그인ID]
- -u UID: UID 수정
- -o: UID의 중복 허용
- -g GID: 기본 그룹 수정
- -G GID: 2차 그룹 수정
- -d 디렉터리: 홈 디렉터리 수정
- -s 셸: 기본 셸 수정
- -c 설명: 부가적인 설명 수정
- -f 비활성화일: 계정 비활성화일를 수정
- -e 만료일: 계정 만료일을 수정
- -1: 계정 이름 변경
- UID, GID, 홈 디렉터리, 기본 셸, 설명, 로그인 ID 등 계정과 관련된 모든 정보 수정 가능
- 패스워드 에이징 정보 중 INACTIVE와 EXPIRE 값 지정 가능
패스워드 에이징 관련 명령
항목 | useradd, usermod, passwd | chage |
MIN | passwd -n | chage -m |
MAX | passwd -x | chage -M |
WARNING | passwd -w | chage -W |
INACTIVE | useradd -f usermod -f |
chage -I |
EXPIRE | useradd -e usermod -e |
chage -E |
userdel
- userdel [옵션] [로그인ID]
- -r: 홈 디렉터리도 삭제
- -f: 사용자가 로그인 중이어도 강제로 삭제
- 사용자 계정 삭제
- 홈 디렉터리가 아니라 다른 곳의 사용자 계정 소유 파일도 같이 삭제하는 것이 좋음
- find / -user UID -exec rm -r {} \;
그룹 관리 명령
groupadd
- groupadd [옵션] [그룹명]
- -g GID: 그룹의 GID 지정
- -o: GID의 중복 허용
- 그룹 생성
- GID를 지정하지 않을 경우 가장 마지막 번호의 다음 번호로 자동 설정
addgroup
- addgroup [옵션] [그룹명]
- --gid GID: 그룹의 GID 지정
- 그룹 생성
- GID를 지정하지 않을 경우 /etc/adduser.conf에 지정된 시작 GID(FIRST_GID=1000)를 기준으로 가장 마지막 번호의 다음 번호로 자동 설정
groupmod
- groupmod [옵션] [그룹명]
- -g GID: 그룹의 GID 수정
- -o: GID의 중복 허용
- -n 그룹명: 그룹명 변경
- 그룹 정보 수정
groupdel
- groupdel [그룹명]
- 그룹 삭제
gpasswd
- gpasswd [옵션] [그룹명]
- 옵션 없을 경우 그룹 암호 설정
- -a 사용자계정: 사용자 계정을 그룹에 추가
- -d 사용자계정: 사용자 계정을 그룹에서 삭제
- -r: 그룹 암호 삭제
- /etc/group, /etc/gshadow 파일 관리
newgrp
- newgrp [그룹명]
- 소속 그룹 변경