리눅스에서 특정 사용자의 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 {} \;
'System Engineering' 카테고리의 다른 글
| MSSQL system db data 경로 변경 방법 (1) | 2023.04.16 |
|---|---|
| SQL DB 경로 확인(MSSQL - user, system db) (0) | 2023.04.16 |
| 리눅스 ext4, xfs 파일시스템 체크 및 복구 방법 (0) | 2023.04.16 |
| 리눅스 root 계정 원격 접속 차단 방법 (0) | 2023.04.16 |
| 리눅스 tune2fs 명령어 사용법 (0) | 2023.04.14 |
댓글