본문 바로가기
리눅스,네트워크

리눅스 계정 관리 - 사용자(user), 그룹(group), 패스워드

by 데이널 2023. 12. 19.

이번 포스팅에서는 리눅스의 계정 관리에 대해 알아보도록 하겠습니다. 계정 관리는 사용자(user), 그룹(group)이라는 두가지 구성 요소로 나누어 이야기 해볼 수 있는데요. 저번 포스팅에서 살펴 봤던 리눅스 권한(Permission) 관리도 사용자, 그룹으로 관리한다는 것을 배웠습니다. 

 

 

사용자(user) 관리

Linux에서는 시스템과 상호 작용하는 각 개인에게 사용자 계정을 만들어 줄 수 있습니다. useradd 명령은 새 사용자를 추가하는 데 사용되며 passwd라는 명령어로 비밀번호를 설정합니다. 이때 생성하는 user는 root유저라고 super user입니다.

 

그래서 리눅스에서는 크게 super user와 일반 유저가 있다고 할 수 있습니다. 보통 계정 생성시 sudo라는 명령어를 사용하는데요. 이 명칭은 슈퍼유저로서의 실행에 사용된다는 의미에서  “superuser do”에서 유래했습니다. 

1. 사용자 생성/삭제 useradd, userdel 

  • $ sudo useradd newuser
  • $ sudo passwd newuser
  • $ sudo userdel newuser

 

2. 사용자 속성 usermod

명령을 사용하면 사용자의 홈 디렉터리나 기본 셸 변경과 같은 사용자 속성을 수정할 수 있습니다.

  • $ sudo usermod -s /bin/bash newuser
  • $ sudo usermod -L newuser <- 계정 잠그기

 

3. /etc/passwd

etc/passwd를 조회하면 아래와 같은 리눅스에서 관리하는 계정들의 정보를 볼 수 있습니다. 0~6번까지 아래 표와 같은 의미를 가지고 있습니다.  

/etc/passwd
/etc/passwd

Index Field Description 예시
0 사용자 계정   root
1 패스워드 사용자 계정의 패스워드. X로 암호화되어 표시.
패스워드는 /etc/shadow에 저장
x
2 UID (사용자 식별자) 사용자의 유저 ID. [ UID 0 : 관리자 계정(root) ] : 로그인 가능
[ UID 1 ~ 999/ 65534~ : 시스템 유저 ]
: 로그인 불가능
[ UID 1000 ~ 65535 : 일반 유저 ] : 로그인 가능
0
3 GID (그룹 식별자) 사용자의 그룹 ID. 0
4 comment 사용자와 관련한 기타 정보. 일반적으로 사용자 이름을 나타냄 root
5 홈 디렉토리 사용자의 홈 디렉토리. [ 관리자 계정(root) ] : /root
[ 일반 사용자 ] : /home/하위 계정
/root
6 로그인 쉘 사용자가 로그인 시 사용할 쉘. 보통 사용자의 쉘은 성능이 우수한 bash쉘을 사용  

 

그룹(group) 관리

그룹은 사용자들의 공통점을 바탕으로 구성합니다. 같은 그룹 권한을 가져야 하는 user들을 하나로 묶으는 의미가 있습니다. 모든 리눅스 user는 Primary 그룹을 가집니다. 그 외 다른 그룹을 여러 개 가지는 것도 가능합니다.

 

예를 들어, A라는 그룹과 B라는 그룹을 동시에 속해 있을 수 있습니다. 그룹에 대한 정보는 /etc/group에서 확인할 수 있습니다. 아래와 같이 0~3까지 의미는 표와 같습니다. 

 

1. 그룹 생성/삭제 groupadd, groupdel

  • $sudo groupadd newgroup
  • $sudo groupdel newgroup

2. 그룹에 사용자 추가 usermod

usermod 명령을 사용하여 그룹에서 사용자를 추가하거나 제거할 수도 있습니다. 

  • sudo usermod -aG newgroup newuser

 

/etc/group
/etc/group

 

Index Field Description 예시
0 그룹 이름   root
1 패스워드 사용자 계정의 패스워드. X로 암호화되어 표시.
패스워드는 /etc/shadow에 저장
x
2 GID (그룹 식별자) 사용자의 그룹 ID. 0
4 그룹에 소속된 사용자 계정 그룹에 소속된 사용자 계정 리스트. hpedf

 

패스워드 관리

사용자의 패스워드는 /etc/passwd에서 두번째 필드에 x라고 모두 표시됩니다. x라고 저장되면 암호화된 패스워드를 /etc/shadow에 옮겨 놓습니다. 

  • *와 !문자는 패스워드 암호화에서 나올수없는 문자
  • *는 시스템어카운트의 로그인 불가
  • !는 일반유저 로그인 불가

사용자의 패스워드를 설정할 때 'passwd -e newuser' 라고 설정하면 무조건 다음 접속시 패스워드 변경하게 유도합니다.

 

1. 패스워드 변경 chage 명령어  

비밀번호 정책은 'chage' 명령을 사용하여 비밀번호 만료와 같은 매개변수를 설정하여 정의할 수 있습니다.

  • $ chage -l newuser
  • $ chage -M 90 -m 0 -W 7 -I 20 newuser

2. 패스워드 락 걸기 usermod 명령

  • $ usermod -L = passwd -l      유저 락 걸기
  • $ usermod -U = passwd -u   유저 언락 

Linux 계정 관리는 시스템 관리의 기본적인 측면이 있습니다. 사용자 및 그룹 관리를 잘 해야 시스템을 안전하고 체계적이인 서버  환경을 보장할 수 있습니다. 그리고 패스워드 정책까지 수립하면 리눅스이 보안 수준을 높일 수 있습니다.