SLOW but STEADY

리눅스 계정 생성할 때 알아둬야 할 파일들 본문

2020 AWS기반 아키텍처 설계 전문가 양성 과정/리눅스

리눅스 계정 생성할 때 알아둬야 할 파일들

ㅁ윤지ㅁ 2020. 3. 1. 14:51

1. /etc/passwd

계정의 정보에 대해 담고 있는 파일입니다.

 

tail -1 /etc/passwd

* itbank부분은 사용자 계정명 부분입니다.
* x부분은 사용자에게 부여된 패스워드 부분입니다. 현재는 보안상 좋지 않아서 이 필드를 쓰지 않습니다.
* 앞에 1000부분은 UID(숫자로 표현되는 사용자 id)입니다. 다음 UID를 생성할 때마다 숫자가 1씩 늘어납니다. -u옵션을 통해 지정해 줄 수도 있습니다.
*뒤에 1000부분은 GID(숫자로 표현되는 그룹 id)입니다. 따로 부여해주지 않으면 UID와 똑같이 적용됩니다. -g옵션을 통해 지정해 줄 수 있습니다.
* itbank부분은 코멘트 부분입니다. 계정의 표시 이름입니다. -c옵션을 통해 지정해 줄 수 있습니다.
* /home/itbank부분은 계정의 홈 디렉터리 위치를 나타냅니다. 홈 디렉터리는 -d옵션을 통해 지정해 줄 수 있습니다.
* /bin/bash부분은 계정이 사용하고 있는 쉘종류를 표시합니다. 

** 쉘이란?
하드웨어(장치들) 위에 커널(소프트웨어, 장치를 다루는데 필요한 기능들이 들어가 있습니다. 운영체제 자체라고 보면 됩니다. 쉘을 통해 명령어를 입력받습니다.) 이 있고 커널 위에 쉘(명령어를 입력하는 곳)이 있습니다. 리눅스의 기본 쉘은 bash쉘입니다.

 

 

2. /etc/shadow

사용자의 암호를 저장하고 있는 파일입니다.

 

ls -ld /etc/shadow

/etc/shadow파일의 허가권이 없는 것을 확인하실 수 있습니다. 이 말은 root계정만 볼 수 있다는 말입니다. root계정은 허가권을 상관하지 않고 모든 파일을 볼 수 있습니다.

 

tail -1 /etc/shadow

* itbank부분은 사용자 계정명 부분입니다.
*$6$ipOA8VnsyXocy20a$GREDHoryogimzaTouOwSx2HfG/X8xULAwfPiqpCfSnh9NT8kYybxRDS17WeaScor39Oeb1XWhjZXS2vpfec7M 부분은 사용자의 패스워드 값을 암호화시킨 것입니다. sha511이라는 **암호화 방식을 사용합니다.
* NULL부분은 현재는 비어있지만 원래는 암호 생성일자가 들어가는 부분입니다. passwd명령어를 통해 itbank계정의 비밀번호를 바꾸면 암호를 바꾼 날짜가 들어갑니다.
* 0부분은 암호를 변경할 수 있는 최소기간입니다. 저 부분이 0이 아니라 1이라고 되어 있다면 비밀번호를 바꾼 뒤 1일 뒤에 또 바꿀 수 있다는 뜻입니다.
* 99999부분은 암호를 사용할 수 있는 기간입니다. 지금 설정한 암호를 99999일 동안 사용할 수 있다는 뜻입니다.
* 7부분은 암호 만료일 지정 시 만료 경고일 수를 나타냅니다. 암호를 99999일 동안 사용할 수 있는데 99999일이 다 돼가기 7일 전에 암호를 변경하라는 경고를 받게 되는 것입니다.
* NULL부분은 계정 만료일자와 비활성화 일수입니다.
* 그 다음 NULL부분은 계정 만료일입니다.

** 암호화
복호화가 가능한 암호화 알고리즘 - DES, 3DES, AES
복호화가 불가능한 암호화 알고리즘 - hash(128비트의 문자열을 사용해서 암호화하는 방식)

 

 

3. /etc/group

그룹에 대한 정보를 담고있는 파일입니다.

 

tail -1 /etc/group

* itbank부분은 사용자 계정이 들어가는 부분입니다.
* x부분은 그룹의 패스워드가 들어가는 부분입니다.
* 1000부분은 GID가 들어가는 부분입니다.
* itbank부분은 구성원 즉, 그 그룹에 속해있는 계정들을 보여주는 부분입니다.

 

 

4. /etc/gshadow

그룹의 패스워드 정보가 담긴 파일입니다. 그룹에 패스워드를 거는 일이 거의 없기 때문에 잘 쓰이지는 않습니다.

 

 

5. /etc/login.defs

사용자 계정의 설정과 관련된 기본 값을 정의한 파일입니다.


vi /etc/login.defs

파일 안을 살펴보면, PASS_MAX_DAYS(패스워드 최대 사용날짜), PASS_MIN_DAYS(패스워드 최소 사용 날짜), PASS_MIN_LEN(패스워드 최소 길이), PASS_WARN_AGE(패스워드 만료 경고일) 등의 내용이 적혀있고 우리가 원하는 대로 수정도 할 수 있습니다. 

UID에 대한 부분도 볼 수 있습니다. UID가 가질 수 있는 최솟값은 1000이고 최댓값은 60000이라고 나와있습니다. 앞에서 제가 UID는 사용자 임의로 지정해 줄 수 있고 다음 UID를 생성할 때마다 1이 추가돼서 생성된다고 했습니다. 따라서 임의로 UID를 5402라고 지정해주었으면 그다음 UID는 5403이 됩니다. 이렇게 계속 추가가 되다가 60000이 되고 또 그다음 UID를 생성하면 1000과 5402 사이에 비어있는 숫자를 찾아서 UID값이 생성됩니다.

UMASK값은 기본으로 77로 지정되어 있습니다. 허가권이 가질 수 있는 최댓값 777에서 UMASK값 77을 뺸 700이 기본 허가권이 됩니다.

 

 

6. /etc/default/useradd

계정을 생성할 때 안에 있는 내용을 참고해서 생성합니다.


vi /etc/default/useradd

* HOME=/home -> 홈 디렉터리가 자동으로 만들어질 위치 정보가 나와있습니다.
* SKEL=/etc/skel -> 계정을 생성할 때 뼈대가 되는 파일이 skel 파일입니다. 이 파일들은 /etc/skel디렉터리 안에 있습니다. 파일들은 계정을 생성할 때 자동으로 홈 디렉터리 안에 생성이 됩니다.

 

 

7. /etc/skel


ls -la /etc/skel

/etc/skel안에 있는 파일들은 다 숨김처리 되어 있는 파일들이기 때문에 a옵션을 사용해서 확인해 줘야 합니다.