CodeGym /행동 /Docker SELF /현재 접근 권한 확인: `whoami`, `id` 명령어

현재 접근 권한 확인: `whoami`, `id` 명령어

Docker SELF
레벨 2 , 레슨 3
사용 가능

현재 접근 권한 확인: 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 명령어가 출력하는 건 뭐야?

  1. UID (User ID) — 사용자의 고유 식별자 (ID).
  2. GID (Group ID) — 사용자의 기본 그룹의 고유 식별자.
  3. 그룹 리스트 — 사용자가 속한 모든 그룹들 (기본 그룹 포함).

예제

$ 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)

사용자 user2developers 그룹에 속해 있는 것을 볼 수 있어.


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. 명령어 사용

이제 배운 지식을 확실히 하기 위해 약간의 실습을 해볼게.

현재 사용자 계정 확인

  1. 터미널을 열어줘.
  2. 아래 명령어를 실행해봐:

    whoami
    

    네 사용자 이름을 확인해봐.

  3. sudo su 명령어를 실행해 (비밀번호를 입력하라고 할 거야), 그리고 다시 whoami를 실행해서 현재 어떤 사용자로 작동 중인지 확인해봐.

사용자 정보 확인

  1. 아래 명령어를 실행해봐:

    id
    

    네 사용자 UID, GID 그리고 속한 그룹 목록을 확인해봐.

  2. 새로운 사용자를 생성해 (만약 sudo 명령어를 사용할 수 있는 권한이 있다면):

    sudo adduser testuser
    

    그리고 아래 명령어를 실행해봐:

    id testuser
    

그룹 소속 분석

  1. 아래 명령어를 실행해봐:

    groups
    

    네 사용자가 속한 그룹들을 확인해봐.

  2. 현재 사용자를 새로운 그룹에 추가해봐:

    sudo groupadd testgroup
    sudo usermod -aG testgroup $(whoami)
    

    그리고 결과를 확인해봐:

    groups
    

6. 자주하는 실수와 까다로운 점들

  1. 많은 초보자들이 whoamiid를 혼동해. 기억해: whoami는 현재 사용자 이름만 보여주고, id는 권한과 그룹에 대한 더 자세한 정보를 알려줘.

  2. 관리자 권한 (sudo 접근)이 없으면, 그룹에 사용자를 추가하거나 그들의 설정을 변경할 수 없을 수도 있어. 이런 경우 시스템 관리자에게 문의해야 해.

  3. 존재하지 않는 사용자를 지정하여 id 명령을 실행하면 오류가 나타나:

    $ id nonexistinguser
    id: ‘nonexistinguser’: no such user
    

이제 현재 어떤 사용자가 활성 상태인지, 어떤 권한과 접근으로 작업하는지 확인하는 방법을 알게 되었어. whoamiid 명령은 단순해 보일 수 있지만, Linux에서 사용자와 접근 권한 시스템을 이해하는 데 중요한 역할을 해. 실제 작업에서 문제를 진단하고, 권한을 확인하며, 사용자를 설정하기 위해 자주 사용하게 될 거야.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION