안녕하세요! 리눅스라는 멋진 운영체제를 다루다 보면 가장 먼저 마주하는 관문 중 하나가 바로 '사용자 관리'입니다. 왜 사용자마다 계정을 따로 만들고, 왜 복잡하게 그룹을 나누는 걸까요? 🤔
그 이유는 바로 보안과 권한 관리 때문입니다. 각자에게 꼭 필요한 권한만 부여하고 작업 내역을 명확히 추적함으로써, 시스템을 훨씬 더 안정적이고 안전하게 운영할 수 있습니다. 오늘은 리눅스 사용자 및 그룹 관리의 모든 것을 A to Z까지 쉽고 명확하게 알려드릴게요!

1. 새로운 사용자 초대하기 (useradd, adduser)
새로운 사용자를 시스템에 추가하는 명령어는 크게 두 가지입니다.
- useradd: 기본적인 로우레벨(low-level) 유틸리티. 옵션을 통해 모든 설정을 한 줄에 지정할 수 있어 스크립트에 자주 사용됩니다.
- adduser: useradd를 기반으로 만든 사용자 친화적인 스크립트. 대화형으로 진행되어 초보자가 사용하기 편리합니다.
여기서는 강력한 옵션을 가진 useradd를 중심으로 알아볼게요.
# 'harry'라는 사용자를 만들고, 기본 셸은 zsh, 보조 그룹은 sudo로 지정하는 예시
sudo useradd -m -s /bin/zsh -G sudo harry
- -m: 사용자의 홈 디렉토리를 생성합니다. (보통 /home/username)
- -s: 사용자가 로그인할 때 사용할 기본 셸(Shell)을 지정합니다. (예: /bin/bash, /bin/zsh)
- -g: 사용자의 주(Primary) 그룹을 지정합니다. (아래에서 자세히 설명!)
- -G: 사용자가 속할 보조(Secondary) 그룹들을 쉼표로 구분하여 지정합니다.
2. 사용자의 비밀번호 설정 (passwd, chpasswd)
사용자를 만들었다면 비밀번호를 설정해야겠죠?
- passwd [사용자명]: 가장 일반적인 방법. 관리자가 다른 사용자의 비밀번호를 설정할 때 사용합니다.
sudo passwd harry - chpasswd: 스크립트에서 비밀번호를 설정할 때 아주 유용한 명령어입니다.
# 'harry' 사용자의 비밀번호를 'supersecret'으로 설정 echo 'harry:supersecret' | sudo chpasswd
3. 그룹의 개념: 주 그룹 vs 보조 그룹 (가장 중요!)
리눅스에서 그룹은 권한 관리의 핵심입니다. 사용자는 반드시 하나의 '주 그룹'에 속해야 하고, 여러 개의 '보조 그룹'에 추가로 속할 수 있습니다.
🏢 주 그룹 (Primary Group)
- 사용자가 소속된 '메인 부서'와 같습니다.
- 사용자가 파일을 생성하면, 그 파일은 기본적으로 이 주 그룹의 소유가 됩니다.
- 사용자를 생성할 때 지정하지 않으면, 보통 사용자 이름과 동일한 이름의 그룹이 주 그룹으로 자동 생성됩니다.
🤝 보조 그룹 (Secondary Groups)
- 사용자가 참여하는 **'프로젝트 팀' 또는 '동아리'**와 같습니다.
- 사용자에게 특정 파일이나 디렉토리에 대한 추가적인 접근 권한을 부여할 때 사용됩니다.
- 가장 대표적인 예가 sudo나 wheel 그룹입니다. 이 그룹에 속한 사용자는 관리자 권한을 임시로 얻을 수 있습니다!
사용자의 그룹 정보는 id 명령어로 한눈에 파악할 수 있습니다.
id harry
# uid=1001(harry) gid=1001(harry) groups=1001(harry),27(sudo)
# ▲ 주 그룹(gid) ▲ 보조 그룹(groups)
4. 기존 사용자 정보 변경하기 (usermod)
이미 생성된 사용자의 정보를 변경하고 싶을 땐 usermod (User Modify) 명령어를 사용합니다.
주 그룹 변경하기
harry의 메인 부서를 sales 팀으로 옮겨볼까요?
# harry의 주 그룹을 sales로 변경
sudo usermod -g sales harry
- -g: 주 그룹을 변경하는 옵션입니다.
보조 그룹에 추가하기 (⚠️ 주의!)
harry를 developers 프로젝트 팀에도 참여시켜 봅시다.
# harry를 developers 그룹에 '추가'
sudo usermod -aG developers harry
- -aG: 사용자를 새로운 보조 그룹에 **추가(Append)**합니다. 여기서 -a 옵션이 정말 중요합니다!
- 만약 -a 없이 usermod -G developers harry 라고만 입력하면, 기존의 모든 보조 그룹(sudo 등)에서 탈퇴하고 오직 developers 그룹에만 속하게 되니 꼭 주의해야 합니다.
5. 그룹 자체를 관리하는 명령어
- groupadd [그룹명]: 새로운 그룹을 생성합니다. (예: sudo groupadd sales)
- groupdel [그룹명]: 기존 그룹을 삭제합니다.
결론: 권한 관리의 시작과 끝
useradd, passwd, usermod, id 이 네 가지 명령어와 '주 그룹/보조 그룹'의 개념만 확실히 이해하고 있어도 리눅스 권한 관리의 절반은 마스터한 것이나 다름없습니다.
사용자와 그룹을 체계적으로 관리하는 습관은 시스템의 보안을 강화하고 예기치 않은 실수를 방지하는 가장 기본적인 첫걸음입니다. 오늘 배운 내용으로 여러분의 서버를 더욱 견고하게 만들어보세요! 🚀
태그:
리눅스, 사용자관리, 그룹관리, useradd, usermod, passwd, chpasswd, sudo, 리눅스기초, 시스템관리
'일반IT > 리눅스' 카테고리의 다른 글
| 🐧 리눅스 파일 시스템 완전 정복: fstab 자동 마운트와 읽기 전용(Read-Only) 설정으로 데이터 지키기 (0) | 2025.10.10 |
|---|---|
| 🐧 리눅스 서버 성능 최적화: Swappiness 설정으로 메모리 관리 효율 높이기 (0) | 2025.10.10 |
| 내 서버를 지키는 보이지 않는 방화벽: 리눅스 사용자 자원 제한 (ulimit) 완벽 가이드 🛡️ (0) | 2025.10.10 |
| 아직도 백업에 cp 쓰세요? 똑똑한 관리자가 rsync를 쓰는 이유 🧙♂️ (0) | 2025.10.10 |
| 리눅스 자동화의 첫걸음: 셸 스크립트와 Cron 완벽 가이드 🤖 (0) | 2025.10.10 |