1. 소개
Ubuntu는 개인 환경부터 기업 서버 시스템에 이르기까지 많은 사용자가 사용하는 인기 있는 Linux 배포판입니다. Ubuntu 시스템을 관리할 때 사용자 계정 관리가 필수적입니다. 특히 등록된 사용자 목록을 검토하는 것은 보안 관리와 계정 정리에 도움이 됩니다.
이 문서는 Ubuntu에서 사용자를 나열하는 방법을 설명합니다. 기본 명령부터 상세 정보를 가져오는 방법까지 다루므로 초보자와 숙련된 관리자 모두에게 유용합니다.
2. Ubuntu에서 사용자 목록 확인 방법
Ubuntu에서는 특정 파일과 명령을 사용하여 사용자 정보를 쉽게 가져올 수 있습니다. 다음 방법을 통해 사용자 목록을 확인할 수 있습니다.
2.1 /etc/passwd를 사용해 사용자 목록 표시
Ubuntu에서는 모든 사용자 정보가 /etc/passwd 파일에 저장됩니다. 이 파일을 표시하면 등록된 모든 사용자를 확인할 수 있습니다.
명령 예시
cat /etc/passwd
이 명령을 실행하면 다음 형식으로 정보가 표시됩니다:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash
각 행은 콜론(:)으로 구분된 필드로 구성되며 다음 정보를 포함합니다:
- 사용자 이름
- 비밀번호 (현재는 x 로 표시)
- 사용자 ID (UID)
- 그룹 ID (GID)
- 사용자 정보 (코멘트 필드)
- 홈 디렉터리
- 기본 로그인 쉘
이 파일에는 시스템 사용자도 포함되어 있으므로, 아래 방법을 사용해 일반 로그인 사용자만 추출할 수 있습니다.
2.2 사용자 이름만 나열하기
사용자 이름만 나열하려면 다음 명령을 사용합니다:
cut -d: -f1 /etc/passwd
또는 awk 명령을 사용할 수도 있습니다:
awk -F':' '{ print $1 }' /etc/passwd
예시 출력:
root
user1
user2
2.3 특정 사용자 검색하기
특정 사용자가 존재하는지 확인하려면 grep 명령을 사용합니다:
grep 'user1' /etc/passwd
이 명령은 user1과 관련된 항목만 표시합니다.
2.4 /etc/group을 통해 그룹 나열하기
사용자가 속한 그룹을 확인하려면 /etc/group 파일을 참조합니다:
cat /etc/group | cut -d: -f1
특정 사용자가 속한 그룹을 나열하려면 다음을 사용합니다:
groups user1
예시 출력:
user1 : user1 sudo
이는 user1이 sudo 그룹에도 속해 있음을 나타냅니다.
3. 현재 로그인한 사용자 확인 방법
Ubuntu는 현재 로그인한 사용자를 확인할 수 있는 여러 명령을 제공합니다. 이러한 명령은 세션 및 로그인 정보를 가져오는 데 도움이 됩니다.
3.1 who를 사용해 로그인 사용자 확인
who 명령은 현재 로그인한 모든 사용자를 나열합니다.
명령 예시
who
예시 출력
user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30
필드 설명
- 사용자 이름 (로그인한 사용자)
- 터미널 이름 (예: 로컬은
tty1, SSH는pts/0) - 로그인 시간
who 명령은 간단하고 빠르게 로그인 상태를 확인하고 싶을 때 유용합니다.
3.2 w를 사용해 상세 정보 확인
w 명령은 who보다 더 자세한 정보를 제공합니다.
명령 예시
w
예시 출력
11:35:25 up 2:15, 2 users, load average: 0.03, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty1 10:05 1:30m 0.10s 0.10s -bash
user2 pts/0 192.168.1.10 11:30 0.00s 0.05s 0.02s sshd
필드 설명
- 시스템 가동 시간
- 로그인한 사용자 수
- CPU 평균 부하
- 사용자 이름
- 터미널
- 원격 호스트
- 로그인 시간
- 유휴 시간
- CPU 사용량
- 실행 중인 프로세스
FROM 필드에 표시된 IP 주소를 통해 원격 SSH 로그인 여부를 확인할 수 있어 모니터링 및 보안 관리에 유용합니다.
3.3 users를 사용해 로그인 사용자 표시
If you want a simplified list showing only the usernames of logged-in users, the users command is useful.
명령 예시
users
예시 출력
user1 user2
This command is a simplified version of who and shows only the logged-in usernames.
3.4 현재 사용자 확인 whoami 사용
To check which user is executing the current session, use the whoami command.
명령 예시
whoami
예시 출력
user1
This command simply displays the username of the current session’s user, making it helpful for verifying the execution context.
3.5 last를 사용하여 로그인 기록 확인
The last command allows you to review the login history of users.
명령 예시
last
예시 출력
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user2 tty1 Mon Feb 15 09:30 - 10:00 (00:30)
root tty1 Sun Feb 14 22:15 - 23:45 (01:30)
- 사용자 이름
- 사용된 터미널
- 원격 IP 주소
- 로그인 시작 시간
- 로그아웃 시간(또는 아직 로그인 중)
- 전체 세션 지속 시간
This command helps administrators monitor previous access and detect suspicious logins.
4. 상세 사용자 정보 확인 방법
Ubuntu는 등록된 사용자에 대한 상세 정보를 가져오는 여러 명령을 제공합니다. UID, 그룹 멤버십, 로그인 쉘과 같은 세부 정보를 검토하면 관리자가 권한을 정확히 관리하는 데 도움이 됩니다. 이 섹션에서는 id, groups, finger, chage를 사용하는 방법을 설명합니다.
4.1 id를 사용하여 UID, GID 및 그룹 확인
The id command displays the user’s UID (User ID), GID (Group ID), and group membership.
명령 예시
id user1
예시 출력
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
uid→ 사용자 식별자gid→ 기본 그룹 식별자groups→ 사용자가 속한 모든 그룹
현재 사용자 정보 확인
id
4.2 groups를 통해 그룹 멤버십 확인
The groups command quickly lists the groups a user belongs to.
명령 예시
groups user1
예시 출력
user1 : user1 sudo docker
groups는 상세 ID 없이 그룹 이름만 보고 싶을 때 유용합니다.
4.3 finger를 사용하여 사용자 상세 정보 가져오기
The finger command provides detailed user information such as full name, login directory, and shell type.
설치 명령
sudo apt install finger
명령 예시
finger user1
예시 출력
Login: user1 Name: User One
Directory: /home/user1 Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
- Login → 사용자 이름
- Name → 전체 이름(선택 사항)
- Directory → 홈 디렉터리
- Shell → 기본 쉘
- Last login → 마지막 로그인 시간

4.4 chage로 비밀번호 만료 확인
The chage command allows administrators to review the password expiration period and last password change.
명령 예시
sudo chage -l user1
예시 출력
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
- 마지막 비밀번호 변경 → 비밀번호가 마지막으로 변경된 날짜
- 비밀번호 만료 → 비밀번호 만료 날짜
- 비밀번호 비활성 → 비밀번호가 무효화되기 전 비활성 기간
- 계정 만료 → 계정 만료 날짜
- 비밀번호 변경 사이 최소 일수
- 비밀번호 변경 사이 최대 일수
- 비밀번호 만료 전 경고 일수
관리자는 이 정보를 사용하여 비밀번호 정책을 적용하고 시스템 보안을 강화할 수 있습니다.
5. Ubuntu에서 사용자 관리 (추가, 삭제, 수정)
적절한 사용자 관리는 시스템 안정성과 보안을 향상시킵니다. Ubuntu는 adduser, deluser, usermod와 같은 여러 관리 명령을 제공합니다. 이 섹션에서는 사용자를 추가, 삭제 및 수정하는 방법을 설명합니다.
5.1 사용자 추가
Ubuntu에서는 adduser 또는 useradd 명령을 사용하여 새 사용자를 추가할 수 있습니다.
5.1.1 adduser 명령 (권장)
adduser 명령은 대화형 방식으로 사용자를 추가합니다.
sudo adduser newuser
대화형 프롬프트 예시:
Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
- 사용자 계정
- 전용 그룹
- 홈 디렉터리 (
/home/newuser) - 로그인 비밀번호
- 기본 계정 정보
5.1.2 useradd 명령 (고급)
useradd 명령은 스크립트에 적합하고 더 세밀한 제어가 가능하지만 모든 설정을 자동으로 수행하지는 않습니다.
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
-m→ 홈 디렉터리 생성-s /bin/bash→ 로그인 셸 지정
이 명령을 사용할 경우 비밀번호는 별도로 설정해야 합니다.
5.2 사용자 삭제
deluser 또는 userdel 명령을 사용하여 사용자를 삭제할 수 있습니다.
5.2.1 deluser 명령 (권장)
deluser 명령은 사용자 계정을 삭제합니다.
sudo deluser newuser
홈 디렉터리도 함께 삭제
sudo deluser --remove-home newuser
이 명령은 계정과 /home/newuser 디렉터리를 모두 삭제합니다.
5.2.2 userdel 명령 (고급)
userdel 명령은 더 많은 제어 옵션을 제공합니다.
sudo userdel newuser
sudo userdel -r newuser
5.3 기존 사용자 수정
usermod 명령을 사용하여 기존 사용자 정보를 수정합니다.
5.3.1 사용자 이름 변경
sudo usermod -l newname oldname
5.3.2 홈 디렉터리 변경
sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1
5.3.3 그룹 멤버십 수정
sudo usermod -aG sudo user1
groups user1
5.3.4 비밀번호 변경
sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
6. 사용자 관리 실전 시나리오
Ubuntu에서 사용자 관리는 단순히 계정을 나열하고 수정하는 것을 넘어섭니다. 실제 상황에서 명령을 어떻게 적용할지 이해하는 것이 안전하고 효율적인 환경을 유지하는 데 필수적입니다. 이 섹션에서는 일반적인 사용 사례와 해결 방법을 소개합니다.
6.1 특정 기준에 맞는 사용자 검색
6.1.1 관리자 권한( sudo )을 가진 사용자 표시
sudo 권한이 있는 사용자를 나열하려면 getent 명령을 사용해 /etc/group 파일을 확인합니다:
getent group sudo
예시 출력
sudo:x:27:user1,user2
sudo:x:27:→ 그룹 정보user1,user2→ sudo 그룹에 속한 사용자
6.1.2 로그인 가능한 사용자 표시
/etc/passwd 파일에는 시스템 계정이 포함되어 있습니다. 로그인할 수 있는 사용자만 추출하려면:
grep '/bin/bash' /etc/passwd
예제 출력
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
/bin/bash또는/bin/sh와 같은 셸을 가진 사용자만 포함됩니다/usr/sbin/nologin또는/bin/false를 사용하는 시스템 계정은 제외됩니다
6.1.3 시스템 사용자 표시 (로그인 불가능 계정)
grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd
예제 출력
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false
이것은 관리자들이 실수로 제거하지 말아야 할 계정을 식별하는 데 도움이 됩니다.
6.2 사용하지 않는 사용자 주기적 정리
6.2.1 모든 사용자의 마지막 로그인 시간 표시
lastlog
예제 출력
Username Port From Latest
root tty1 Mon Feb 12 14:02:08 +0000 2025
user1 pts/0 192.168.1.10 Mon Jan 15 10:30:12 +0000 2025
user2 pts/1 192.168.1.20 Never logged in
- 로그인한 적 없음 → 사용자가 한 번도 로그인하지 않았습니다
sudo deluser user2 --remove-home
6.2.2 마지막 비밀번호 변경 확인
sudo chage -l user1
sudo passwd --expire user1
사용자가 다음에 로그인할 때 보안상의 이유로 비밀번호 재설정이 필요합니다.
6.3 SSH를 통해 연결된 사용자 확인
who | grep pts
예제 출력
user1 pts/0 192.168.1.10 11:30
이것은 원격 사용자와 그들의 IP 주소를 식별하는 데 도움이 됩니다.
6.4 모든 사용자 정보를 CSV로 내보내기
getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv
예제 users.csv
root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
- 사용자 이름, UID, GID 및 홈 디렉토리를 내보냅니다
- 데이터를 Excel 또는 스프레드시트로 분석할 수 있습니다
7. 자주 묻는 질문
7.1 /etc/passwd를 직접 편집할 수 있나요?
답변: 직접 편집은 권장되지 않습니다. 잘못된 수정으로 인해 로그인이 불가능해지거나 시스템이 손상될 수 있습니다.
더 안전한 방법:
sudo vipw
7.2 who와 users 명령어의 차이
| Command | Description |
|---|---|
who | Displays detailed login information |
users | Displays only usernames of logged-in users |
7.3 특정 사용자의 로그인 기록 확인 방법
last user1
7.4 사용자 비밀번호 변경 방법
sudo passwd user1
7.5 사용자를 일시적으로 비활성화하는 방법
sudo usermod -L user1
sudo usermod -U user1
7.6 사용자를 sudo 그룹에 추가하기
sudo usermod -aG sudo user1
7.7 사용자의 홈 디렉토리 변경
sudo usermod -d /new/home/path -m user1
7.8 사용자와 그들의 데이터를 완전히 제거하기
sudo deluser --remove-home user1
또는
sudo userdel -r user1
7.9 로그인된 사용자의 상세 활동 확인
w
- 로그인된 사용자
- 원격 IP 주소
- 현재 프로세스
- 시스템 부하
이것은 관리자들이 사용량을 모니터링하고 무단 액세스를 감지할 수 있게 합니다.
