계정 정보 관련 파일
passwd 파일
① 정의: 사용자 계정 정보를 저장하고 있는 파일
② 경로: /etc/passwd
③ 형식: 콜론(:)을 구분자로 7개의 필드로 구성
cat /etc/passwd
username:password:UID:GID:GECOS:homedir:shell
사용자 계정명 | 사용자 패스워드 | UID | GID | 설명 | 홈디렉터리 | 로그인쉘 |
root | x | 0 | 0 | root | /root | /bin/bash |
사용자 패스워드
- x 의 의미 : 비밀번호를 설정하지 않았다는 의미가 아니라 'shadow 패스워드 정책'을 사용한다는 의미
UID(User ID)
시스템 내에서 사용자를 고유하게 식별하기 위한 ID
- 같은 UID가 서로 다른 사용자 계정에 설정될 수 있다.(윈도우와 다른점) 이 경우 시스템은 서로 다른 사용자 계정명을 사용하는 같은 사용자로 판단
- root 계정(슈퍼 유저 계정, 관리자 계정)의 UID는 0으로 예약(cf.윈도우:Administrator) -> 일반사용자 UID를 0 이라고 설정하면 그 계정은 root 권한을 갖게 된다. -> 주기적으로 부적절하게 UID가 0으로 설정된 일반 사용자 계정이 있는지 점검 필요
기본 그룹 GID(Group ID)
리눅스의 경우 모든 사용자는 하나의 기본그룹을 필수적으로 가지며, 필요 시 보조그룹을 가질 수 있다. 이 중, 기본그룹에 해당하는 그룹 ID가 이 필드에 설정
- 기본 그룹: 사용자의 자원 생성 시 자원의 소유그룹 결정
- 보조 그룹: 기본 그룹 이외에 추가 그룹 권한 필요 시 다른 그룹에 소속될 수 있는데 이를 보조그룹이라고 칭함.
설명
사용자 관련 추가 설명(주석)
홈 디렉터리
사용자가 로그인에 성공한 후 위치할 홈 디렉터리
로그인쉘
사용자가 로그인에 성공한 후에 동작할 쉘 프로그램
- *쉘: 사용자와 커널 간 인터페이스 역할을 하는 프로그램. 사용자가 입력한 명령어를 해석해 커널에 전달. (리눅스 기본 쉘:bash)
- 로그인 쉘 필드에 반드시 로그인 쉘만 설정할 수 있는 것은 아니다. 필요시 별도의 실행파일을 설정해, 로그인 이후 실행파일이 동작하게 할 수 있음. 공격자가 이를 악용해 사용자 로그인 시 악성 쉘(악성 프로그램)이 실행되도록 설정하는 예도 있으므로 주기적 점검 필요
shadow 파일
cat /etc/shadow
username:password:lastchg:min:max:warn:inactive:expire
계정명 | 패스워드 | 마지막 패스워드 변경일자 |
패스워드 최소사용기간 |
패스워드 최대사용기간 |
경고 일수 | 비활성 일수 | 계정만료일 |
root | $t$...$.... | 18437 | 0 | 빈값 | 빈값 | 빈값 | 빈값 |
계정명
사용자 계정명
패스워드
의미: 암호화된 패스워드
구성방식: $ID$Salt$encrypted_password
① $ID : 암호화에 적용된 일방향 해시 알고리즘 식별 (1:MD5, 2:BlowFish, 5:SHA-256, 6:SHA-512)
MD5: 취약, SHA-256 이상 권장
② $Salt : 패스워드 암호화 강도를 높이기 위한 랜덤값. 사용자가 지정한 패스워드에 서로 다른 솔트를 추가해 암호화된 패스워드(해시값) 생성
복호화해도 해당 패스워드는 실제 패스워드가 아님 (즉, 레인보우 테이블 공격에 효과적으로 대응)
③ $encrypted_password: 사용자 패스워드에 솔트를 조합하여 해시한 해시값. 다음과 같은 기호로 표시될 수 있다.
[리눅스]
[UNIX(SunOS)]
기호 설명 * 패스워드가 잠긴 상태.
패스워드 로그인 불가.
별도인증방식(ssh같은)사용해 로그인!! 패스워드가 잠긴 상태. 모든 로그인 불가.
사용자 계정 생성 후 패스워드 설정 안하면 !! 상태*빈값 패스워드가 설정되지 않은 상태.
패스워드 없이 로그인 가능
기호 설명 NP No Password
로그인 할 수 없는 계정
시스템 및 애플리케이션 계정 용도로 주로 사용*LK* Lock
로그인 할 수 없는 계정
잠긴상태빈값 패스워드가 설정되지 않은 상태
로그인 시 패스워드 설정 과정이 진행
마지막 패스워드 변경일자
- 마지막으로 패스워드를 변경한 날(1970년 1월 1일 기준으로 지난 일수 표시)
패스워드 최소 사용기간
- 패스워드를 마지막으로 변경하고 최소 ~만큼은 사용해야된다
- 1일(1주) 사용 권장
- 왜필요하냐면, 패스워드 바꿔놓고 바로 원래 패스워드로 바꿀 수 있어서
패스워드 최대 사용기간
- 패스워드를 마지막으로 변경한 날짜 기준 ~일 후에 패스워드가 만료된다
- 90일(12주) 사용 권장
경고일수
- 패스워드 만료 이전 경고일수
- if, 7 : 7일 후 패스워드 만료
비활성일수
- 패스워드가 만료된 이후 계정이 잠기기 전까지 비활성 일수.
- Linux같은 경우 해당 비활성 기간 안에 패스워드를 변경하지 않으면 계정 잠김.
- UNIX같은 경우 마지막 로그인 이후 해당 일수동안 로그인하지 않으면 계정 잠긴다는 의미
계정만료일
- 1970년 1월 1일 기준으로 계정 만료일 지정
group 파일
① 정의: 그룹 정보를 저장하고 있는 파일로 '콜론(:)을 구분자로 4개의 필드로 구성
② 경로: /etc/group
③ 형식: 콜론(:)을 구분자로 4개의 필드로 구성
root | x | 0 | root |
그룹명 | 그룹 패스워드(사용x) | 그룹ID(GID) | 그룹에 소속된 사용자 |
- root계정과 마찬가지로 root 그룹은 GID=0으로 예약
계정정보 관련 명령어
명령어 | 의미 |
id [user_account] | 사용자 id와 사용자가 속한 그룹 id정보 확인 |
passwd [user_account] | 패스워드 변경 |
'정보보안 > 시스템 보안' 카테고리의 다른 글
[UNIX/Linux 기본학습] 시스템 시작과 종료 (1) | 2024.11.10 |
---|---|
[UNIX/Linux 기본학습] 프로세스 응용 (1) | 2024.11.10 |
[UNIX/Linux 기본학습] 파일 시스템 응용 (1) | 2024.11.10 |
[UNIX/Linux 기본학습] 입출력 재지정(I/O Redirection) 기능 (0) | 2024.11.09 |
[윈도우 기본학습] 윈도우 인증 (0) | 2024.11.09 |