
chown
따라서 파일 및/또는 디렉터리의 소유자와 그룹을 변경할 수 있는 기능이 있습니다 . 하지만 chgrp
그룹만 변경하는 경우 도 있습니다 . 왜 chgrp
만들어졌나요? 중복되지 않나요?
답변1
chown
처음에는 그룹을 설정할 수 없었습니다. 나중에 일부 구현에서는 이를 로 추가했고 chown user.group
, 일부는 chown user:group
결국 처럼 추가했습니다.표준화된(강조):
4.3 BSD 지정 방법소유자와 그룹 모두이 POSIX.1-2008 볼륨에는 다음과 같은 이유로 포함되었습니다.
chgrp 및 chown(사용자 ID만 변경) 유틸리티를 사용하여 원하는 종료 조건을 달성할 수 없는 경우가 있습니다. (현재 소유자가 원하는 그룹의 구성원이 아니고 원하는 소유자가 현재 그룹의 구성원이 아닌 경우 소유자와 그룹이 동시에 변경되지 않으면 chown() 함수가 실패할 수 있습니다.)
독립적으로 변경할 수 있더라도 둘 다 변경되는 경우 두 유틸리티를 모두 호출해야 하므로 성능이 100% 저하됩니다.
지금도:
chown :group
그룹만 변경하는 것은 이식 가능하거나 표준이 아닙니다.chown user:
사용자 데이터베이스 의 기본 그룹을 할당하는 것도user
표준이 아닙니다.
답변2
파일의 사용자-소유자*를 변경하려면 루트 권한이 필요합니다.
일반 사용자는 파일의 그룹 소유자를 자신이 속한 다른 그룹으로 변경할 수 있습니다.
아마도 이러한 특권의 관점에서 특히 Sudo 이전 시대에는 이를 별도로 유지하는 것이 합리적이었을 것입니다. 'admin' 그룹을 chown
사용하여 setuid
'admin' 그룹의 구성원이 파일의 사용자 소유자를 변경할 수 있도록 허용할 수도 있습니다.
* ugo와의 일관성을 위해 "user-owner", "group-owner" 및 "others"를 사용합니다. "o"를 "소유자"로 혼동하는 것은 흔한 실수입니다.