目次
- 1 1. 소개
- 2 2. Ubuntu에서 사용자 목록을 확인하는 방법
- 3 3. 현재 로그인 중인 사용자를 확인하는 방법
- 4 4. 사용자 상세 정보를 확인하는 방법
- 5 5. Ubuntu에서의 사용자 관리(추가·삭제·편집)
- 6 6. 시나리오별 활용 예
- 7 7. FAQ(자주 묻는 질문)
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
및 원격 연결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
각 필드 설명- 시스템 가동 시간 (up 2:15)
- 현재 로그인 중인 사용자 수 (2 users)
- CPU 부하 (load average)
- 사용자 이름 (USER)
- 연결 터미널 (TTY)
- 원격 연결 원본 (FROM)
- 로그인 시각 (LOGIN@)
- 유휴 시간 (IDLE)
- CPU 사용 상황 (JCPU, PCPU)
- 실행 중인 프로세스 (WHAT)
FROM
필드에 표시되므로, 원격 접근 관리 및 감시에도 도움이 됩니다.3.3 users
명령을 사용하여 간단히 로그인 사용자를 확인
로그인 중인 사용자 이름만 간단히 목록으로 표시하고 싶을 때는 users
명령이 편리합니다. 명령 예users
출력 예user1 user2
이 명령은 who
의 간략 버전이며, 사용자 이름만을 간단히 표시합니다.3.4 whoami
명령을 사용하여 현재 사용자를 확인
현재 세션에서 실행 중인 사용자를 확인하고 싶을 때는 whoami
명령을 사용합니다. 명령 예whoami
출력 예user1
이 명령은 현재 터미널에서 동작하고 있는 사용자 이름을 표시할 뿐이므로, 특정 사용자로 명령을 실행하고 있는지 확인하는 데 도움이 됩니다.3.5 last
명령을 사용하여 최근 로그인 기록을 확인
last
명령을 사용하면 과거에 로그인한 사용자의 기록을 확인할 수 있습니다. 명령 예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)
각 필드 설명- 사용자 이름
- 연결 터미널 (tty1, pts/0 등)
- 원격 연결 원본 (IP 주소)
- 로그인 시작 시각
- 로그아웃 시각 (still logged in 은 현재도 로그인 중)
- 로그인 시간 총합 (00:30 = 30분)
4. 사용자 상세 정보를 확인하는 방법
Ubuntu에서는 등록된 사용자의 상세 정보를 얻기 위한 명령어가 몇 가지 제공됩니다. 특정 사용자의 UID와 그룹, 로그인 쉘 등을 확인함으로써 적절한 권한 설정 및 관리가 가능해집니다。 여기에서는id
、finger
、chage
등 명령어를 사용한 상세 정보 확인 방법을 설명합니다。4.1 id
명령으로 사용자의 UID·GID·그룹 확인
id
명령을 사용하면 사용자의 UID(사용자 ID)、GID(그룹 ID)、및 소속 그룹을 확인할 수 있습니다。명령 예시
id user1
출력 예시
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
각 항목 설명
uid=1001(user1)
→ 사용자 ID(시스템 내 사용자 식별 번호)gid=1001(user1)
→ 그룹 ID(주 그룹)groups=1001(user1),27(sudo),1002(docker)
→ 소속 그룹 목록
현재 사용자의 정보를 확인하는 경우
id
이 명령을 실행하면 현재 사용자의 ID 정보가 표시됩니다。4.2 groups
명령으로 사용자의 소속 그룹 확인
특정 사용자가 어떤 그룹에 속해 있는지 간단히 조사하려면 groups
명령을 사용합니다。명령 예시
groups user1
출력 예시
user1 : user1 sudo docker
id
명령으로도 그룹 정보를 얻을 수 있지만, 그룹 이름만 간단히 확인하고 싶을 때는 groups
명령이 편리합니다。현재 사용자의 그룹을 확인하는 경우
groups
이 명령을 실행하면 현재 사용자가 속한 그룹 목록이 표시됩니다。4.3 finger
명령으로 상세 사용자 정보 얻기
finger
명령을 사용하면 사용자의 전체 이름, 로그인 정보, 쉘 종류 등 보다 상세한 정보를 얻을 수 있습니다。설치 방법
finger
는 기본적으로 설치되어 있지 않으므로, 먼저 아래 명령으로 설치합니다。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 → 마지막 로그인 일시
finger
명령을 활용하여 어떤 사용자가 어떤 쉘을 사용하고 있는지 등을 쉽게 확인할 수 있습니다。4.4 chage
명령으로 비밀번호 유효 기간 확인
시스템 관리자는 chage
명령을 사용하여 특정 사용자의 비밀번호 유효 기간 및 최종 변경일을 확인할 수 있습니다。명령 예시
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
각 항목 설명
- Last password change → 마지막으로 비밀번호를 변경한 날짜
- Password expires → 비밀번호 유효 기간
- Password inactive → 비밀번호가 비활성화될 때까지 기간
- Account expires → 계정이 비활성화되는 날짜
- Minimum number of days between password change → 비밀번호 변경 최소 간격(일)
- Maximum number of days between password change → 비밀번호 유효 기간(일)
- Number of days of warning before password expires → 비밀번호 유효 기간 전에 경고를 표시하는 일수
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
명령은 adduser
와 달리 보다 간단하고 스크립트용으로 설계되었지만, 홈 디렉터리 생성 등이 자동으로 수행되지 않습니다。명령 예시
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
5>옵션 설명-m
→ 홈 디렉터리를 생성-s /bin/bash
→ 로그인 셸을/bin/bash
으로 설정
5.2 사용자 삭제
불필요해진 사용자 계정을 삭제하려면deluser
또는 userdel
명령을 사용합니다。5.2.1 deluser
명령(권장)
deluser
는 adduser
의 삭제 버전으로, 간단하게 사용자를 삭제할 수 있습니다。명령 예시
sudo deluser newuser
홈 디렉터리도 삭제하는 경우
sudo deluser --remove-home newuser
이 명령을 실행하면 사용자의 홈 디렉터리(/home/newuser
)도 삭제됩니다。5.2.2 userdel
명령(고급 사용자용)
userdel
명령을 사용하면 보다 세밀한 제어가 가능합니다。명령 예시
sudo userdel newuser
홈 디렉터리까지 삭제
sudo userdel -r newuser
userdel
은 deluser
보다 직접적인 방법이지만, 사용할 때 주의가 필요합니다。5.3 사용자 편집
기존 사용자 정보를 변경하려면usermod
명령을 사용합니다。5.3.1 사용자 이름 변경
명령 예시
sudo usermod -l newname oldname
이 명령을 실행하면 oldname
이 newname
으로 변경됩니다。5.3.2 홈 디렉터리 변경
사용자의 홈 디렉터리를 변경하려면-d
옵션을 사용합니다。명령 예시
sudo usermod -d /new/home/path user1
현재 홈 디렉터리를 새로운 위치로 이동
sudo usermod -d /home/newuser -m user1
5.3.3 사용자의 소속 그룹 변경
특정 사용자를 다른 그룹에 추가하거나 소속 그룹을 변경하려면usermod -aG
를 사용합니다。사용자를 sudo
그룹에 추가
sudo usermod -aG sudo user1
현재 그룹 확인
groups user1
5.3.4 사용자의 비밀번호 변경
관리자가 특정 사용자의 비밀번호를 변경하려면passwd
명령을 사용합니다。명령 예시
sudo passwd user1
출력 예시
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
이 명령으로 user1
의 비밀번호가 변경됩니다。6. 시나리오별 활용 예
Ubuntu의 사용자 관리는 단순히 목록을 확인하거나 추가·삭제를 하는 것에 그치지 않고, 특정 상황에 맞는 관리 방법을 아는 것이 중요합니다. 이 섹션에서는 자주 발생하는 시나리오에 맞는 명령 활용 예시를 소개합니다.6.1 특정 조건에 맞는 사용자를 검색
6.1.1 관리자(sudo 권한을 가진 사용자)의 목록 표시
시스템 관리자가 sudo 권한을 가진 사용자를 확인하고 싶을 때는,getent
명령으로 /etc/group
파일을 검색할 수 있습니다.명령 예시
getent group sudo
출력 예시
sudo:x:27:user1,user2
출력 결과 설명sudo:x:27:
→ sudo 그룹 정보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
을 가진 사용자만 표시됩니다nologin
이 설정된 사용자(예: 시스템 계정)는 제외됩니다
6.1.3 시스템 사용자(로그인 불가) 목록 표시
시스템 사용자는 보통/usr/sbin/nologin
이나 /bin/false
가 설정되어 있기 때문에, 아래 명령으로 확인할 수 있습니다.명령 예시
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 마지막으로 로그인한 사용자 목록 표시
오랫동안 로그인하지 않은 사용자를 삭제하려면,last
명령을 사용해 로그인 기록을 확인합니다.명령 예시
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
Never logged in
→ 한 번도 로그인한 적 없는 사용자
계정 삭제 명령
sudo deluser user2 --remove-home
6.2.2 비밀번호 최종 변경일 확인
chage
명령을 사용하면, 사용자가 마지막으로 비밀번호를 변경한 날짜를 확인할 수 있습니다.명령 예시
sudo chage -l user1
출력 예시
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : never
비밀번호가 장기간 변경되지 않은 경우, 보안 대책으로 강제로 변경을 요구할 수도 있습니다.비밀번호 강제 변경
sudo passwd --expire user1
이렇게 하면, 다음 로그인 시 사용자는 새 비밀번호를 설정해야 합니다.6.3 SSH를 통해 접속 중인 사용자 확인
원격 관리 시, 현재 SSH로 접속 중인 사용자를 확인하는 것이 중요합니다.명령 예시
who | grep pts
출력 예시
user1 pts/0 192.168.1.10 11:30
이를 통해, 원격으로 접속 중인 사용자와 그 IP 주소를 확인할 수 있습니다.6.4 일괄적으로 모든 사용자의 정보를 CSV로 출력
시스템 관리자가 전체 사용자의 정보를 리스트화하여 저장하고 싶을 때,getent
명령을 활용하면 편리합니다.명령 예시
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, 홈 디렉터리를 CSV 형식으로 출력
- Excel이나 스프레드시트에서 분석 가능
7. FAQ(자주 묻는 질문)
Ubuntu 사용자 관리에 관한 자주 묻는 질문을 정리했습니다. 트러블슈팅 및 관리 시 유용한 정보를 제공하고 있습니다.7.1 /etc/passwd
를 직접 편집해도 괜찮나요?
답변
직접 편집은 비권장입니다./etc/passwd
는 시스템의 중요한 파일이며, 실수로 편집하면 로그인할 수 없게 될 가능성이 있습니다.권장되는 방법
usermod
명령어나 vipw
명령어를 사용하면 안전하게 편집할 수 있습니다.안전한 편집 방법
sudo vipw
이를 통해 잠금이 걸린 안전한 환경에서 /etc/passwd
를 편집할 수 있습니다.7.2 who
와 users
명령의 차이는 무엇인가요?
답변
명령 | 설명 |
---|---|
who | 현재 로그인 중인 사용자를 상세히 표시(로그인 시간·터미널) |
users | 로그인 중인 사용자 이름만 간단히 표시 |
실행 예시
who
출력 예시user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30
users
출력 예시user1 user2
who
가 더 상세한 정보를 제공합니다.7.3 특정 사용자의 로그인 기록을 확인하려면?
답변
last
명령을 사용하면 특정 사용자의 로그인 기록을 확인할 수 있습니다.명령 예시
last user1
출력 예시
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user1 tty1 Mon Feb 10 09:30 - 10:00 (00:30)
이를 통해 어떤 터미널·IP 주소에서 로그인했는지를 확인할 수 있습니다.7.4 사용자의 비밀번호를 변경하려면?
답변
관리자는passwd
명령을 사용하여 특정 사용자의 비밀번호를 변경할 수 있습니다.명령 예시
sudo passwd user1
출력 예시
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
비밀번호를 변경한 사용자는 다음 로그인 시 새로운 비밀번호를 사용해야 합니다.7.5 사용자를 일시적으로 비활성화하는 방법이 있나요?
답변
usermod
명령을 사용하여 일시적으로 사용자를 비활성화할 수 있습니다.계정 잠금
sudo usermod -L user1
이 명령을 실행하면 user1
의 계정이 일시적으로 잠기고 로그인할 수 없게 됩니다.계정 잠금 해제
sudo usermod -U user1
이 명령으로 user1
의 로그인을 재개할 수 있습니다.7.6 특정 사용자를 sudo 그룹에 추가하려면?
답변
usermod
명령을 사용하여 특정 사용자를 sudo
그룹에 추가할 수 있습니다.명령 예시
sudo usermod -aG sudo user1
추가 후, 사용자 user1
은 sudo 명령을 사용할 수 있게 됩니다.7.7 사용자의 홈 디렉터리를 변경하려면?
답변
usermod -d
를 사용하면 사용자의 홈 디렉터리를 변경할 수 있습니다.명령 예시
sudo usermod -d /new/home/path -m user1
출력 예시
user1 home directory has been moved to /new/home/path
이 명령으로 user1
의 홈 디렉터리가 새로운 경로로 변경됩니다.7.8 사용자를 완전히 삭제하고, 그 데이터도 제거하려면?
답변
deluser
또는 userdel
을 사용하여 사용자와 그 홈 디렉터리를 삭제할 수 있습니다.명령 예시
sudo deluser --remove-home user1
또는,sudo userdel -r user1
이 명령을 실행하면 사용자 user1
와 그 홈 디렉터리 /home/user1
가 완전히 삭제됩니다.7.9 현재 로그인 중인 사용자의 상세 활동을 확인하려면?
답변
w
명령을 사용하면 로그인 사용자의 상세 활동을 확인할 수 있습니다.명령 예시
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
- 로그인 사용자
- 원격 연결 IP
- 현재 프로세스(WHAT 열)
- 시스템 부하 상황(load average)