본문 바로가기

Ubuntu Linux

리눅스 사용자 관리

리눅스는 여러 명이 시스템을 사용하는 다중 사용자 시스템이기 때문에 사용자를 구별하고 사용자에게 적절한 자원을 할당하는 방법이 필요합니다. 리눅스에서는 사용자 계정이 사용자를 구별하는 역할을 하기 때문입니다.

 

사용자 계정은 사용자가 시스템에 접근할 수 있는 유일한 방법이고, 시스템 관리자의 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단입니다. 따라서 사용자 계정 관리는 시스템 관리자의 주요 업무 중 하나입니다.

 

사용자 계정 관리에는 사용자가 적절한 권한을 가지고 시스템에 접근할 수 있도록 사용자 계정을 새로 만들거나 사용자 정보를 수정하고, 계정 사용 기한 만료 등의 이유로 사용자 계정을 삭제하는 업무 등도 포함되어 있습니다.

 

리눅스에서 사용자 계정과 관련된 파일은 다섯가지로 나뉘는데,

 

/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