현재 접근 권한 확인: whoami, id 명령어
1. 내가 시스템에서 누구인지? whoami 명령어
Linux에서 각각의 사용자는 특정 계정으로 작업하는데, 이 계정은 고유의 권한, 제한 및 그룹 소속을 가지고 있어. 이 강의에서는 현재 어떤 계정에서 작업 중인지, 어떤 권한을 가지고 있는지, 그리고 어떤 그룹에 속해 있는지 확인하는 방법을 배울 거야. 현재 사용자의 설정을 아는 건 일상적인 작업뿐만 아니라 보안, 관리, 디버깅 등에서도 중요해.
Linux 시스템에서 작업할 때, 현재 어떤 계정으로 작업하는지 아는 건 유용해. 예를 들어, 실수로 관리자 권한 (root) 계정으로 시스템에 접속하면 시스템 파일에 돌이킬 수 없는 변경을 할 수도 있어. 이런 상황을 피하기 위해, whoami 명령어가 있어.
사용법
whoami
명령어가 하는 일
whoami 명령어는 시스템에서 현재 어떤 사용자로 작업 중인지의 이름을 출력해. 가장 중요한 질문인 "내가 누구인가요?"에 답해주는 거지.
예시
$ whoami
student
이 경우 출력된 student는 현재 student라는 이름의 사용자로 시스템에 로그인했다는 걸 의미해. 만약 관리자 권한이 있는 계정(예: root)으로 작업 중이었다면 출력은 다음과 같을 거야:
$ whoami
root
왜 중요한가요?
예를 들어, 어떤 디렉토리의 모든 파일을 삭제하는 명령어 (예: rm -rf /important_directory)를 사용했다고 가정해봐. 일반 사용자 계정으로는 적절한 권한이 없으면 시스템이 제한할 수 있어. 하지만 root 사용자로는 시스템이 망설임 없이 명령을 실행할 거야. whoami 명령어는 이런 불쾌한 상황에 처하지 않도록 도와줘.
2. 사용자 정보에 대한 자세한 조사: 명령어 id
사용자 이름을 아는 건 좋은 일이지만, 시스템에서의 권한과 특권을 깊이 이해하기엔 부족해. 더 자세한 정보를 위해서 id 명령어가 있어.
구문
id [사용자]
사용자 이름을 지정하지 않으면, id 명령어는 현재 사용자에 대한 정보를 보여줄 거야. 다른 사용자의 이름을 지정하면, 그 사용자의 계정 세부 정보를 확인할 수 있어.
id 명령어가 출력하는 건 뭐야?
- UID (User ID) — 사용자의 고유 식별자 (ID).
- GID (Group ID) — 사용자의 기본 그룹의 고유 식별자.
- 그룹 리스트 — 사용자가 속한 모든 그룹들 (기본 그룹 포함).
예제
$ id
uid=1001(student) gid=1001(student) groups=1001(student),27(sudo),1002(developers)
- UID=1001: 현재 사용자(student)의 고유 식별자 (ID)야. Linux 시스템에서
root사용자의 UID는 항상 0이야. - GID=1001: 사용자의 기본 그룹 (student)의 식별자야.
- groups=1001(student), 27(sudo), 1002(developers): 이 항목은 사용자가 속한 추가 그룹들을 나열해. 예를 들어,
sudo그룹은 student에게 권한 사용자로 명령어를 실행할 수 있는 권한을 부여해.
다른 사용자에 대해 명령어를 실행하면:
$ id user2
uid=1002(user2) gid=1002(user2) groups=1002(user2),1001(developers)
사용자 user2가 developers 그룹에 속해 있는 것을 볼 수 있어.
3. 실무에서 UID와 GID 사용
모든 사용자와 그룹은 고유한 숫자 ID (UID 및 GID)를 부여받아. 이 값들은 시스템 내부에서 굉장히 중요한 역할을 하며, 종종 사용자명이나 그룹명을 대체하기도 해. 이게 왜 필요할까?
- 일부 시스템 프로세스는 효율성을 위해 숫자 ID를 직접 사용해.
- 파일 및 폴더의 접근 권한은 사용자명이나 그룹명이 아니라 UID와 GID로 결정돼.
- 설정 파일과 로그 파일 (예:
/etc/passwd)에서 사용자 이름 대신 UID가 표시될 수 있어.
4. groups로 그룹 탐색하기
추가적으로, groups 명령어를 사용하여 현재 사용자가 속한 그룹을 확인할 수 있어.
구문
groups [사용자]
사용자 이름을 생략하면, 현재 계정의 그룹 목록을 받을 수 있어. 사용자 이름을 지정하면 해당 사용자의 그룹을 확인할 수 있어.
예제:
$ groups
student developers sudo
$ groups user2
user2 developers
5. 명령어 사용
이제 배운 지식을 확실히 하기 위해 약간의 실습을 해볼게.
현재 사용자 계정 확인
- 터미널을 열어줘.
아래 명령어를 실행해봐:
whoami네 사용자 이름을 확인해봐.
sudo su명령어를 실행해 (비밀번호를 입력하라고 할 거야), 그리고 다시whoami를 실행해서 현재 어떤 사용자로 작동 중인지 확인해봐.
사용자 정보 확인
아래 명령어를 실행해봐:
id네 사용자 UID, GID 그리고 속한 그룹 목록을 확인해봐.
새로운 사용자를 생성해 (만약
sudo명령어를 사용할 수 있는 권한이 있다면):sudo adduser testuser그리고 아래 명령어를 실행해봐:
id testuser
그룹 소속 분석
아래 명령어를 실행해봐:
groups네 사용자가 속한 그룹들을 확인해봐.
현재 사용자를 새로운 그룹에 추가해봐:
sudo groupadd testgroup sudo usermod -aG testgroup $(whoami)그리고 결과를 확인해봐:
groups
6. 자주하는 실수와 까다로운 점들
많은 초보자들이
whoami와id를 혼동해. 기억해:whoami는 현재 사용자 이름만 보여주고,id는 권한과 그룹에 대한 더 자세한 정보를 알려줘.관리자 권한 (
sudo접근)이 없으면, 그룹에 사용자를 추가하거나 그들의 설정을 변경할 수 없을 수도 있어. 이런 경우 시스템 관리자에게 문의해야 해.존재하지 않는 사용자를 지정하여
id명령을 실행하면 오류가 나타나:$ id nonexistinguser id: ‘nonexistinguser’: no such user
이제 현재 어떤 사용자가 활성 상태인지, 어떤 권한과 접근으로 작업하는지 확인하는 방법을 알게 되었어. whoami와 id 명령은 단순해 보일 수 있지만, Linux에서 사용자와 접근 권한 시스템을 이해하는 데 중요한 역할을 해. 실제 작업에서 문제를 진단하고, 권한을 확인하며, 사용자를 설정하기 위해 자주 사용하게 될 거야.
GO TO FULL VERSION