그룹 정보 및 권한 이해
이제 그룹 소유권을 변경하는 방법을 알았으니, 그룹 정보를 확인하고 그룹 권한이 중요한 이유를 살펴보겠습니다.
Linux 에서 그룹에 대한 정보는 /etc/group 파일에 저장됩니다. getent 명령을 사용하여 시스템에 존재하는 그룹을 볼 수 있습니다:
getent group
이렇게 하면 시스템의 모든 그룹의 긴 목록이 표시됩니다. 우리가 작업해 온 그룹만 보려면 출력을 필터링할 수 있습니다:
getent group | grep -E 'defenders|strategists'
다음과 유사한 출력을 볼 수 있습니다:
defenders:x:1001:
strategists:x:1002:
현재 사용자가 속한 그룹을 보려면 groups 명령을 사용합니다:
groups
출력은 사용자가 멤버로 있는 모든 그룹을 보여줍니다:
labex adm cdrom sudo dip plugdev lpadmin sambashare
이제 그룹 권한이 중요한 이유를 이해해 보겠습니다. Linux 에서 파일 권한은 소유자 (owner), 그룹 (group), 기타 (others) 세 가지 범주로 정의됩니다. 새 파일을 만들고 권한을 수정하여 이를 시연해 보겠습니다:
touch ~/project/group_example.txt
ls -l ~/project/group_example.txt
출력은 기본 권한을 보여줍니다:
-rw-r--r-- 1 labex labex 0 Jan 12 16:40 group_example.txt
권한 문자열 -rw-r--r--는 다음과 같이 나눌 수 있습니다:
- 첫 번째 문자: 파일 유형 (-는 일반 파일을 의미)
- 다음 세 문자 (rw-): 소유자 권한 (읽기, 쓰기, 실행 안 함)
- 다음 세 문자 (r--): 그룹 권한 (읽기 전용)
- 마지막 세 문자 (r--): 기타 권한 (읽기 전용)
그룹 권한을 변경하여 쓰기 액세스를 허용해 보겠습니다:
chmod g+w ~/project/group_example.txt
ls -l ~/project/group_example.txt
이제 출력은 다음과 같이 표시됩니다:
-rw-rw-r-- 1 labex labex 0 Jan 12 16:40 group_example.txt
그룹 권한이 r--에서 rw-로 변경된 것을 확인하세요.
마지막으로, 그룹 소유권과 그룹 권한을 모두 변경하여 배운 내용을 결합해 보겠습니다:
sudo chgrp defenders ~/project/group_example.txt
chmod g+x ~/project/group_example.txt
ls -l ~/project/group_example.txt
결과는 다음과 같아야 합니다:
-rw-rwxr-- 1 labex defenders 0 Jan 12 16:40 group_example.txt
이제 파일은 defenders 그룹에 의해 소유되고 해당 그룹의 멤버에 대해 읽기, 쓰기 및 실행 권한을 갖습니다.