그룹 권한 관리 방법
Linux 는 파일을 그룹과 연결하여 협업적인 접근 제어를 가능하게 합니다. 이 단계에서는 그룹을 생성하고, 파일의 그룹 소유권을 변경하고, 적절한 그룹 권한을 설정하는 방법을 배우게 됩니다.
먼저, 새 그룹을 생성해 보겠습니다. 실제 시나리오에서는 부서 또는 프로젝트 팀을 나타낼 수 있습니다.
sudo groupadd developers
이제 이 그룹과 공유할 파일을 생성해 보겠습니다.
touch shared_config.txt
echo "## Development configuration settings" > shared_config.txt
echo "debug_mode=true" >> shared_config.txt
echo "log_level=verbose" >> shared_config.txt
현재 이 파일은 사용자와 기본 그룹에 속해 있습니다. 확인해 보겠습니다.
ls -l shared_config.txt
다음과 유사한 출력을 볼 수 있습니다.
-rw-rw-r-- 1 labex labex 61 Oct 25 13:00 shared_config.txt
파일의 그룹 소유권을 developers 그룹으로 변경하려면 chown 명령어를 사용합니다.
sudo chown labex:developers shared_config.txt
구문은 chown user:group filename입니다. 여기서는 사용자를 labex로 유지하면서 그룹을 developers로 변경합니다.
이제 소유권을 확인합니다.
ls -l shared_config.txt
다음과 같은 출력을 볼 수 있습니다.
-rw-rw-r-- 1 labex developers 61 Oct 25 13:00 shared_config.txt
그룹이 developers로 변경되었지만 권한은 여전히 동일합니다. 그룹 구성원이 읽을 수 있지만 쓰기는 할 수 없도록 수정하고, 다른 사용자의 접근을 방지해 보겠습니다.
chmod 640 shared_config.txt
이렇게 설정됩니다.
- 소유자: 읽기 및 쓰기 (
6 = 4+2)
- 그룹: 읽기 전용 (
4)
- 기타 사용자: 권한 없음 (
0)
권한을 다시 확인합니다.
ls -l shared_config.txt
이제 다음을 볼 수 있습니다.
-rw-r----- 1 labex developers 61 Oct 25 13:00 shared_config.txt
이제 developers 그룹의 구성원은 이 구성 파일을 읽을 수 있지만 수정할 수는 없습니다. developers 그룹에 속하지 않은 사용자는 파일에 전혀 접근할 수 없습니다.
기호 모드를 사용하여 동일한 결과를 얻을 수도 있습니다.
chmod u=rw,g=r,o= shared_config.txt
이 명령은 명시적으로 다음을 설정합니다.
- 사용자/소유자: 읽기 및 쓰기
- 그룹: 읽기 전용
- 기타 사용자: 권한 없음
사용자를 developers 그룹에 추가하려면 일반적으로 다음을 사용합니다.
sudo usermod -a -G developers username
그러나 이는 추가 사용자 계정을 생성해야 하므로 이 특정 랩의 범위를 벗어납니다.