리눅스는 여러 명이 시스템을 사용하는 다중 사용자 시스템이기 때문에 사용자를 구별하고 사용자에게 적절한 자원을 할당하는 방법이 필요합니다. 리눅스에서는 사용자 계정이 사용자를 구별하는 역할을 하기 때문입니다.
사용자 계정은 사용자가 시스템에 접근할 수 있는 유일한 방법이고, 시스템 관리자의 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단입니다. 따라서 사용자 계정 관리는 시스템 관리자의 주요 업무 중 하나입니다.
사용자 계정 관리에는 사용자가 적절한 권한을 가지고 시스템에 접근할 수 있도록 사용자 계정을 새로 만들거나 사용자 정보를 수정하고, 계정 사용 기한 만료 등의 이유로 사용자 계정을 삭제하는 업무 등도 포함되어 있습니다.
리눅스에서 사용자 계정과 관련된 파일은 다섯가지로 나뉘는데,
/etc/passwd/etc/shadow/etc/login.defs/etc/group/etc/gshadow
가 되겠습니다. 해당 게시글에서는 관련 파일의 중요한 정보만 짚고 넘어가도록 하겠습니다.
/etc/passwd 파일
해당 파일은 사용자 계정 정보가 저장된 기본 파일입니다. 원래는 비밀번호까지 해당 경로에 저장됐으나, 해킹 위험도가 높아지면서 비밀번호는 /etc/shadow 경로에 따로 저장되도록 바뀌었습니다.
/etc/passwd 파일은 root 계정으로 수정이 가능하지만, 사용자의 계정 정보가 저장되는 파일이기 때문에 함부로 수정하려하면 안됩니다. 사용자 계정에 변동사항이 생기면 관련 명령으로만 작업하는 것이 바람직합니다.
/etc/passwd 파일의 구조는 다음과 같습니다.
로그인 ID : X : UID : GID : 설명 : 홈 디렉터리 : 로그인 셸
위 사진은 passwd 파일을 cat으로 읽어온 것중 일부입니다. 로그인 사용자의 정보를 알 수 있고, 이외에도 UID 번호 정보, GID 번호 정보, 해당 사용자에 대한 설명, 해당 사용자의 홈 디렉터리, 사용된 셸을 알 수 있습니다.
다만 X는 원래 사용자의 비밀번호 정보가 있던 곳인데, 해킹위험 우려 탓에 /etc/shadow 경로로 넘어갔습니다.
참고로 UID값 1로 설정되어 있는 daemon은 시스템의 백그라운드고 사용자가 필요하면 즉시 대응하는 기능을 합니다. 때문에 root 바로 뒤 계정으로 오는겁니다.
/etc/shadow 파일
/etc/passwd 파일에 있던 사용자 암호에 관한 정보는 모두 shadow로 넘어왔습니다. 둘의 보안적인 차이점은, passwd 파일은 누구나 읽을 수 있지만 shadow 파일은 root 사용자만 읽고, 쓸 수 있으며 shadow 그룹은 읽기만 가능하다는 점 입니다.
위 설명과 같이 접근 권한은 다음과 같이 설정되어 있습니다.
/etc/shadow 파일에는 사용자 암호 외에 사용자 계정과 관련된 부가적인 정보도 저장됩니다. 그리고 /etc/shadow의 백업파일인 /etc/shadow- 파일도 존재합니다. /etc/shadow 파일은 아래와 같이 구성되어 있습니다.
로그인 ID : 암호(패스워드) : 최종 변경일 : MIN : MAX : WARNING : INACTIVE : EXPIRE : Flag
구성 세번째에 해당하는 최종 변경일은 유닉스의 전통에 따른 기준일수인 1970년 1월 1일 으로부터 경과한 일수로 출력됩니다.
제 /etc/shadow중 일부를 가져온 것인데, 숫자가 19046이기 때문에 마지막 변경일은 22년도 2월 23일인 것을 알 수 있습니다.
MIN은 암호를 변경했을 때 최소한 MIN으로 정한 일수만큼은 사용해야 한다는 뜻입니다.
MAX는 지정한 암호를 사용할 수 있는 최대 일수로, 예를 들어 MAX 값이 30이라면 30일이 지나기 전에 암호를 새로 바꿔주어야 합니다.
WARNING은 암호가 만료되기 전 경고를 시작하는 일수입니다. 만약 값이 7이라면 일주일 전부터 경고가 뜰겁니다.
INACTIVE는 유예기간 입니다. 암호가 만료된 후에도 지정한 일수만큼은 사용할 수 있게 해줍니다.
EXPIRE은 실제 만료일입니다. 해당 날짜가 지나게 되면 해당 계정으로 로그인 하는 것이 불가능합니다. 해당 항목도 최종 변경일처럼 1970년 1월 1일을 기준으로 해서 표시됩니다.
/etc/group 파일
/etc/group 파일은 그룹의 정보가 저장된 파일입니다. 리눅스에서 사용자는 기본적으로 하나 이상의 그룹에 속해 있습니다. 사용자가 속한 그룹 중 /etc/passwd 파일의 GID 항목에 지정된 그룹이 기본 그룹이며, 사용자가 속한 2차 그룹은 /etc/group 파일에 지정됩니다.
/etc/group 파일은 아래와 같은 구조로 되어 있습니다.
그룹 이름 : x : GID : 그룹 멤버
x는 그룹 암호인데, /etc/passwd와 같이 해킹우려로 /etc/gshadow 파일에 저장되어 있습니다.
위 사진은 /etc/group 파일입니다. 리눅스의 경우, 사용자 계정을 생성할 때 특별하게 지정하지 않으면 사용자 이름과 같은 이름으로 그룹을 생성합니다.
'Ubuntu Linux' 카테고리의 다른 글
사용자 계정 설정하기 (2) (0) | 2022.06.02 |
---|---|
사용자 계정 생성하기 (1) (0) | 2022.06.02 |
파일 압축하기, 풀기 (0) | 2022.05.31 |
APM을 이용한 웹서버 구축 (0) | 2022.05.30 |
파일 아카이브와 압축 (0) | 2022.05.27 |