본문 바로가기
System Engineering

리눅스 gid, uid 값 변경하기

by 낫싱 2023. 4. 16.
728x90
반응형

리눅스에서 특정 사용자의 UID 와 GID 를 변경한 후 반드시 해당 사용자에게 속한 모든 파일들의 UID 와 GID 도 변경해줘야 함.

기존 UID 와 GID 값으로 계속 남게되어 일종의 누구 소유인지 모르는 미아 파일(?)이 됨.

 

여기서 UID 란 User Identifer 의 약자로 특정 사용자를 나타내는 고유 숫자이며 GID 는 Group Identifer 의 약자로 특정 그룹을 나타내는 고유 숫자임.

일종의 민증과 같은 역할인데 /etc/passwd 에서 확인할 수 있음.

리눅스 버전마다 다르지만 보통 16 bit 로 구성되며 0 ~ 65530 | 65535 범위의 값을 가짐.

이것도 리눅스 버전마다 다르지만 보통 0 ~ 100 | 1000 까지 OS 에서 사용하는 UID, GID 임.

0 은 root 이고 관습적으로 가장 큰 번호는 nobody 임.

/etc/passwd 형식 : <계정><패스워드><UID><GID><계정위치><쉘>

 

 

변경 순서

1. usermod 명령어을 사용하여 사용자에게 새로운 UID 를 할당함.

2. groupmod 명령어을 사용하여 사용자에게 새로운 GID 를 할당함.

3. chown 명령어와 chgrp 명령어를 사용하여 각각 이전 UID 와 GID 를 변경함.

   find 명령어와 조합하여 자동화시킴.

 

예를 들어 mysql 계정을 아래와 같이 변경한다면

(기존 UID : 101, GID : 103 -----> 변경 UID : 1004, GID : 1945)

 

mysql 계정의 변경 전 UID, GID 확인

cat /etc/passwd | grep mysql

 

mysql 계정이 소유한 파일의 변경 전 UID, GID 확인

ls -al /var/lib | grep mysql

 

mysql 계정의 UID, GID 변경

usermod -u 1004 mysql

groupmod -g 1945 mysql

 

mysql 계정이 소유한 파일의 변경 후 UID, GID 확인

(mysql 계정의 기존 UID, GID 로 되어 있는 걸 확인)

ls -al /var/lib | grep mysql

 

mysql 계정이 소유한 파일의 UID, GID 일괄적으로 변경

(chown, chgrp 명령어의 -h 옵션은 심볼릭 링크의 소유권을 변경하는 옵션임)

find / -user 101 -exec chown -h mysql {} \;

find / -group 103 -exec chgrp -h mysql {} \;

728x90
반응형

댓글