권한을 조절하기 전에 우리는 구성에 대해 먼저 알아야 할 필요가 있다. 각 파일의 특징을 알아보고 이 중 passwd와 shadow에 대해 알아보도록 하자. 임의의 a 라는 사용자를 만들어 확인해 보았다.
사용자와 그룹의 정보를 담고 있는 파일
1. /etc/passwd : 계정 관련
id:password:UID:GID:comment:홈디렉토리:login shell
2. /etc/group : 그룹 관련
id:password:GID:그룹에 속하는 사용자 계정
3. /etc/shadow : 암호 관련
id:암호화된 password:마지막으로 패스워드 수정한 날짜(기준 1970년 1월 1일):패스워드 최소사용일:패스워드 최대 사용일: 경고메세지출력일:유예기간:계정만료일(패스워드 설정에 우선한다.)
> 계정 만료일은 기한이 정해져 있는 프로젝트에 참여하는 외부 인력에 주로 설정
4. /etc/default/useradd : 내용 참조 id, password 설정
기본그룹,유예기간,계정만료일,login shell, 메일사서함 생성여부
5. /etc/loing.defs :내용 참조 id, password 설정
메일사서함위치,패스워드최소사용일,패스워드최대사용일,패스워드길이,경고메시지출력일,UID와 GID범위지정,사용자홈디렉토리생성여부\사용자ID와 동일한 그룹 생성여부
(> 해당 파일은 내용이 길고 조금 복잡할 수 있어 나중에 따로 다루도록 하겠다)
6. /etc/skel : 사용자 홈디렉토리에 생성되는 파일과 디렉토리
분석하기
1. /etc/passwd 에서 user a의 구성 분석하기
[ a :x :1002 :1002 : :/home/a :/bin/bash ]
이 구성은 다음과 같이 나눌 수 있다. : 이것을 경계로 나누면 훨씬 수월할 것이다. 각 성분의 특징을 알아보자.
a | ID 계정 |
:x | 패스워드 |
:1002 | UID |
:1002 | GID |
: | comment |
:/home/a | 홈디렉토리 위치 |
:/bin/bash | login shell |
* shell은 명령어 해석기라고도 하고(종류: sh, bash, zsh, csh), 이게 없다면 로그인 할 수 있는 방법은 없다.
* 리눅스는 명령어를 적용하고 껏다키면 초기화된다. 따라서 영구 수정하고 싶다면 설정파일을 수정해야한다.
2. /etc/shadow 에서 user a의 구성 분석하기
[ a :$6$~~~~~~~~~~XV70 :19424 :0 :99999 :7 : : : ]
a | 계정명 |
:$6$...XV70 | 패스워드 (비밀번호 없으면 !!, 암호화된 패스워드 /etc/login.defs SHA512 |
:19419 | 패스워드 마지막으로 수정한 날짜 (1970년 1월 1일 + 19419 = 오늘날짜) |
: | 패스워드 최소 사용 가능일(기간 동안은 패스워드 변경 불가) |
:99999 | 패스워드 최대 사용일 (ex.30 ) |
:7 | 경고 메세지 출력일, 패스워드 만료전 7일전 부터 경고 메세지 출력 |
: | 유예기간 (패스워드 만료 후 일정기간 동안 유예, 접속해서 패스워드 변경하면 사용이 가능) |
: | 계정의 만료(모든 패스워드 설정에 우선) |
: | 사용안함 |
공백 자리는 맨 마지막을 제외하고 명령어나 vi 편집기를 이용해 부여해 줘야 한다. 이는 나중에 따로 다뤄보도록 하겠다.
* 추가
UID : user ID
GID : group ID
이는 권한 부여하거나 제거할 때 중요하게 작용하니 알아두면 조금은 더 편해질지도 모르겠다.
'Linux > Linux 이론' 카테고리의 다른 글
[Linux 이론] File system [2] (Linux 용) (0) | 2023.03.12 |
---|---|
[Linux 이론] 서버와 클라이언트(+ DHCP) (2) | 2023.03.11 |
[Linux 이론] 다운로드 명령어 (yum, dnf) (0) | 2023.03.11 |
[Linux 이론] 디렉토리, 파일의 속성 분석하기 (0) | 2023.03.07 |
[Linux 이론] 초기 /(root) 디렉토리 구성 (0) | 2023.03.07 |