따라서 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 이전 시대에는 별도로 유지하는 것이 합리적일 수 있습니다. chown
"관리자" 그룹으로 수행할 수 있는 것과 마찬가지로 setuid
"관리자" 그룹의 구성원이 파일의 사용자 소유자를 변경할 수 있도록 허용합니다.
* ugo와 일관성을 유지하기 위해 "사용자 소유자", "그룹 소유자" 및 "기타"를 사용합니다. "o"와 "owner"를 혼동하는 것은 흔한 실수입니다.