UID 와 GID에 대하여

JH공원·2025년 1월 18일

즉석노트

목록 보기
13/32
post-thumbnail

컴퓨터는 기본적으로 여러사람이 같이 사용할 수 있게 설계가 되어있다.

그렇기 때문에 컴퓨터 안에는 각각의 계정이 있고 계정마다 각기 다른 권한을 가지고있다.

그리고 이번 포스트는 리눅스라는 운영체제의 권한 시스템에 대한것이다.

우리가 만약 root 즉 최상위 권한 계정으로 접속을 한다면 컴퓨터는 어떻게 root 계정임을 인식할까? r-o-o-t 이렇게 문자 하나하나로 인식하진 않을것이다.

컴퓨터는 숫자로 해당 계정을 분별하고 관리한다.

그렇기에 우리는 그 숫자를 UID라고 부른다 이는 User ID의 약자이다.

id를 확인 하기위한 명령어는 id이다

보이다 싶이 root 계정의 아이디는 0이다

그 옆에 보이는 gid(GID) 는 Group ID 이다.

그룹아이디는 유저별로 파일에 대한 접근 권한이 다르기에 이를 하나하나 설정하는 번거로움을 줄이기 위한 아이디이다. 즉 어떤 파일에 대한 접근 권한이 있는지 알려주는 id라고 생각하면 된다.

즉 비슷한 역할을 가진 사람들을 그룹으로 묶어서 해당 그룹의 사람들에게 해당 그룹만 접글할 수 있는 디렉토리 권한을 주는것이다.

그리고 마찬가지로 GID 또한 숫자로 표현된다.

즉 root 계정의 아이디는 0 그룹아이디 또한 0 인것이다.

그리고 root 는 한 컴퓨터의 최고 관리자 권한을 가진 계정이며 그 어떤 계정도 root의 권한을 넘어설 수 없다. 그렇기에 최초이자 최고의 계정인 root가 숫자 0을 가지게 되는것이다.

이제 우리는 유저를 하나더 생성할 것이다.

유저를 생성하는 명령어는 useradd (유저이름) 이다.

그리고 유저를 바꾸는 명령어는 su (switch user) 이다.

정상적으로 계정이 변경된것을 확인 할 수 있다.

하지만 유저를 바꾸니 shell이 변경된것을 확인 할 수 있다.

이는 유저를 바꿈으로서 zshell 로 변경된것이니 신경쓰지 않아도 된다. 모든 명령어가 정상작동하니 걱정 할 필요없다.

위에 보다싶이 Jun 이라는 유저와 그룹이 생성되었다.

원래 유저를 생성할때는 본래 어떤그룹에 속할지도 정할 수 있는데

이를 설정하지않고 유저를 생성할 경우 위와같이 유저 고유의 그룹이 생성된다.

그리고 해당 계정에서 나가고 싶을때는 exit를 입력하면된다.

그리고 옆의 $와 #의 차이는 zshell과 root shell의 차이이다. $zshell #rootshell 인것이다.

즉 일반사용자와 root를 문자로 분리해서 보여주는것이다.

profile
개발&해킹 일지 작성

0개의 댓글