Linux에서 setgid가 설정된 디렉터리 안에 새 파일을 만들면, 파일의 그룹은 보통 생성자의 기본 그룹이 아니라 부모 디렉터리의 그룹을 상속합니다. 하지만 setgid는 그 그룹에 쓰기 권한을 자동으로 주지 않습니다.
협업 가능 여부는 새 파일의 그룹뿐 아니라 mode 또는 ACL, 생성자의 실제 그룹 소속을 함께 확인해야 합니다. 아래 그룹명과 권한은 직접 만든 교육 예시이며 실제 운영 명령을 실행하라는 뜻이 아닙니다.
setgid 디렉터리의 핵심은 그룹 상속입니다
일반 파일에서 setgid는 실행 시 그룹 ID에 영향을 줄 수 있지만, 디렉터리에 설정된 setgid는 그 안에서 만들어지는 파일의 그룹 소유권을 정하는 단서가 됩니다. 협업 폴더를 audit 그룹으로 소유하고 setgid를 둔 경우, 새 파일 그룹이 생성자의 개인 기본 그룹이 아니라 부모 디렉터리 그룹인 audit로 정해질 수 있습니다. 이것은 파일의 mode 비트와는 다른 축입니다.
두 사용자가 만든 결과에서 그룹과 쓰기를 나눕니다
| 객체 | 소유자 | 그룹 | mode | 해석 |
|---|---|---|---|---|
| /srv/reports | owner | audit | 2775 | 디렉터리 setgid와 그룹 쓰기·검색 가능 |
| jan.log | jan | audit | 0640 | 소유자가 아닌 동료는 그룹 경로로 읽기만 가능 |
| min.log | min | audit | 0660 | 소유자가 아닌 동료에게 그룹 쓰기 비트가 있음 |
가상 조건에서 두 파일 그룹은 부모의 audit를 상속했습니다. 하지만 첫 파일의 소유자 jan은 rw- 권한을 가지므로 파일에 쓸 수 있습니다. 파일 소유자가 아닌 audit 그룹 동료는 첫 파일에 그룹 권한 r--을 적용받아 쓸 수 없습니다. 둘째 파일에서는 같은 조건의 동료가 그룹 rw-로 쓸 수 있습니다. 이 비교는 확장 ACL이 없는 경우이며, 실제 접근에는 상위 경로 검색 권한과 마운트·보안 정책도 영향을 줍니다.
새 파일을 점검할 때 세 속성을 한 줄씩 확인합니다
- 부모 디렉터리의 소유 그룹과 setgid 표시를 확인합니다.
- 새 파일의 owner와 group을 부모 디렉터리와 비교합니다.
- 파일 mode의 그룹 권한과 ACL mask를 따로 읽습니다.
- 협업 사용자 계정이 해당 그룹에 속하는지 확인합니다.
- 경로 중간의 디렉터리마다 검색 권한이 있는지 살핍니다.
이 절차는 ‘그룹이 맞으니 공유된다’는 빠른 결론을 방지합니다. 권한을 변경해야 한다면 요청자와 시스템 담당자가 업무 필요성과 영향 범위를 확인한 뒤 승인된 절차를 따릅니다. 이 글은 디렉터리를 chgrp하거나 chmod하는 운영 가이드가 아니라, 문제에 제시된 상태를 판독하는 연습입니다.
umask와 ACL은 상속 뒤의 권한을 바꿀 수 있습니다
파일 그룹이 audit로 상속됐더라도 생성자의 umask가 그룹 쓰기를 가리거나 프로그램이 파일에 더 좁은 mode를 요청할 수 있습니다. default ACL이 설정돼 있다면 새 파일의 권한은 상속 ACL과 생성 mode를 함께 따라갑니다. 따라서 setgid는 ‘파일 그룹 이름이 무엇이 되는가’에 답하고, umask·요청 mode·ACL은 ‘그 그룹이 어떤 권한을 가지는가’에 답합니다. 두 질문을 한 단어인 협업 권한으로 뭉치지 마세요.
setgid가 그룹 쓰기 비트를 켠다고 착각하지 않습니다
대표적인 오답은 공유 디렉터리에 setgid가 있으니 누구나 파일을 편집할 수 있다고 말하는 것입니다. setgid는 그룹을 이어 주지만 새 파일의 그룹 rw 권한까지 보장하지 않습니다. 또 파일 소유자는 소유자 권한으로 검사하고, 확장 ACL에서 사용자가 named-user 항목에 일치하면 해당 경로를 먼저 검사합니다. audit 그룹에 속했다는 사실만으로 모든 사용자에게 그룹 권한을 적용하면 안 됩니다.
그룹 이름과 권한 숫자를 따로 회상합니다
답안을 쓸 때 ‘새 파일의 그룹은 audit로 상속될 수 있다’와 ‘그룹 쓰기는 mode·ACL에 달려 있다’를 두 문장으로 분리하세요. 가상 표에서 jan.log의 정답은 그룹 audit, 그룹 권한 r--입니다. 같은 그룹 안에서도 min.log의 mode 0660은 다른 결과를 냅니다. 이 차이를 설명할 수 있으면 setgid 비트와 rwx 권한을 한 개념처럼 외우지 않은 것입니다.
정답을 가리고 확인해 보세요
이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.
setgid가 있는 audit 디렉터리에서 새 파일의 그룹은 audit, mode는 0640입니다. 확장 ACL이 없을 때 파일 소유자가 아닌 audit 그룹 동료는 그룹 권한으로 파일을 수정할 수 있나요?
정답과 해설 확인
아니요. 그룹 권한은 r--이므로 읽기만 가능하고 쓰기는 허용되지 않습니다.소유자가 아닌 동료에게 적용되는 그룹 권한은 r--입니다. 소유자는 별도 rw- 권한으로 검사하므로 같은 audit 그룹 소속이어도 결과를 동일하게 단정하지 않습니다.