나는 흥미로운 사실을 발견했습니다. BSD 시스템에서 새 파일은 디렉토리 그룹으로 설정된 그룹을 갖게 됩니다. System V 시스템에서는 파일을 생성한 사용자의 기본 그룹을 갖습니다. BSD 시스템의 경우 이러한 동작의 목적은 무엇이며 이는 다음을 의미합니까?SGID조금은 쓸모가 없나요?
답변1
이는 OS 종속 기능일 수도 있고 아닐 수도 있습니다. 설명할 세부 정보가 충분하지 않습니다.
실행 파일의 sgid 비트는 실행 중인 사용자가 해당 그룹에 속하지 않더라도 파일 그룹에서 실행되도록 합니다. (그룹 ID 설정) 실행 가능하지 않은 경우 sgid 비트는 대부분 문제가 됩니다.
디렉토리에서 sgid 비트는 디렉토리 내의 그룹 상속을 제어하기 위해 용도가 변경되었습니다. sgid 비트가 디렉토리에 설정된 경우 디렉토리에 생성된 파일은 그룹을 상속하지만 그룹 권한은 상속하지 않습니다. 요점은 그룹의 사용자가 사용하는 공유 디렉터리가 있는 경우 모두 umask를 022 대신 002로 설정할 수 있고 그룹 권한을 지속적으로 수정할 필요 없이 디렉터리의 파일을 모두 편집할 수 있다는 것입니다. (umask를 변경하지 않으면 유용성이 떨어집니다.)
따라서 아마도 당신이 보고 있는 두 시스템에서 하나는 테스트 중인 디렉토리에 sgid 비트가 설정되어 있고 하나는 그렇지 않았을 것입니다. 이 기능은 영원히 존재하지 않으므로 시스템 중 하나가 충분히 오래된 경우 sgid 디렉터리 상속을 지원하지 않을 수 있습니다. (하지만 이미 주변에 있었어거의영원히 그럴 가능성은 거의 없습니다.)
이것은 결코 sgid를 쓸모 없게 만들지 않습니다. 왜 그렇게 생각하는지 잘 모르겠습니다. 당신은 쓸모 없다고 생각하는 것을 설명하지 않았습니다. 파일에 자신이 속하지 않은 그룹에 대한 그룹 소유자가 있는 경우 먼저 그룹 소유자를 변경하지 않으면 파일을 sgid로 만들 수 없으며 루트가 아닌 사용자가 파일을 복사하면 sgid가 삭제됩니다.