이미 생성된 계정의 uid, gid 변경하기
※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!
ο 목차
※ 코드 보는 방법 참고
ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력
ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력
ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력
ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력
안녕하세요~ 네모입니다 :)
업무하다보면 자주는 아니지만 특정 계정의 uid, 혹은 gid를 변경해야 할 일이 생기는데요~
그냥 uid, gid만 변경하면 끝나는게 아니라 함께 신경써야 할 부분들이 있어 정리해두려고 합니다
어떤 작업을 할때 단순히 그 하나만 생각하는게 아니라 관련된 일련의 작업들의 하나의 프로세스로 알아두시면 추후 업무 하실 때 도움이 많이 됩니다! 생각지 못한 곳에서 발생하는 휴먼 에러를 줄일 수 있어요
암튼 잡설은 줄이고 바로 시작할게요 :)
-------------------------------------------------
| 계정명/그룹명 = nemo/engineer
| 기존 uid/gid = 500/500
| * 변경할 uid/gid = 1000/1000
--------------------------------------------------
1. uid, gid 변경 방법
1) uid 변경하기
(명령어 개요)
usermod -u [변경할 uid] [계정명]
(예시)
$ sudo usermod -u 1000 nemo
2) gid 변경하기
(명령어 개요)
groupmod -g [변경할 gid] [그룹명]
(예시)
$ groupmod -g 1000 engineer
3) 변경된 uid 확인
$ cat /etc/passwd |grep nemo
4) 변경된 gid 확인
$ cat /etc/group |grep engineer
2. 소유자 및 그룹 변경
** usermod, groupmod를 사용해서 uid와 gid를 새로 부여한다고 해도 기존에 소유자가 nemo, 그룹이 engineer 로 설정되어 있던 파일들의 uid와 gid가 바뀌는 것이 아니기 때문에 기존에 nemo, engineer로 설정되어 있던 파일의 소유자와 그룹을 변경해주어야 합니다. 기존에 nemo:engineer로 소유 권한이 있던 파일들은 500:500 이런 식으로 변경되어 있을 거예요(더 이상 uid 500과 gid 500을 쓰는 계정과 그룹이 없기 때문). 기존에 nemo와 engineer에 속해있던 파일들은 찾아서 권한을 다시 설정을 해줍니다. 그래서 uid와 gid를 변경할 때에는 소유 권한이 서비스에 영향을 미치는 정도를 사전에 파악 한 후 안전한 방식으로 작업하는 걸 권장드려요 :) 계정 종류에 따라 운영 중인 서비스에 영향이 있을 수 있습니다
1) 기존 nemo 계정에 속해있던 파일의 소유자 설정
(명령어 개요)
find [검색할 경로] -user [기존 uid] -exec chown [소유자명] {} +
(예시)
$ sudo find / -user 500 -exec chown nemo {} +
2) 기존 engineer 그룹에 속해있던 파일의 그룹 설정
(명령어 개요)
find [검색할 경로] -group [기존 gid] -exec chgrp [그룹명] {} +
(예시)
$ sudo find / -group 500 -exec chgrp engineer {} +
uid, gid 변경 작업은 사용자 계정이나 서비스 계정 등 임의로 생성된 계정에 한해서만 진행하는걸 권장드리며 작업 전 항상 안전에 유의하세요! :)
※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다.