"chgrp 0"은 무엇을 합니까?

"chgrp 0"은 무엇을 합니까?

스크립트를 분석 중인데 온라인에서 chgrp 0다음 줄의 의미를 찾을 수 없습니다.

find $1 -follow -exec chgrp 0 {}

그래서

find $1매개변수를 수락하고,

-followfind가 심볼릭 링크를 따르도록 합니다.

-exec주문을 실행하고,

chgrp 0그룹 소유권 변경,그런데 0은 무엇을 하는가?,

{}find 명령으로 찾은 모든 항목에 적용됩니다.

제가 틀린 부분이 있다면 바로잡아주세요.

답변1

chgrp 0 file파일의 그룹 소유권을 fileGID가 있는 그룹으로 변경합니다 0. 이는 거의 항상 rootLinux의 그룹입니다(BSD에서는 거의 항상 그렇습니다 wheel). 따라서 명령은 find첫 번째 위치 인수( )가 제공하는 경로에 $1포함된 모든 파일 시스템 개체를 검색하고 해당 대상에 대한 기호 링크를 추적하며 이러한 개체의 그룹 소유자를 GID 0( root또는 wheel)로 만듭니다.

답변2

기본적으로 Linux의 모든 파일/디렉토리에 대한 소유권은 다음 위치에 저장됩니다.인덱스 노드. 정수(사용자는 정수, 그룹은 두 번째 정수)로 저장됩니다. ls에 표시되는 이름은 NSS(예: /etc/passwd 파일 또는 ldap)에 따라 다릅니다. 시스템처럼 수행하면 chgrp root file"루트" 그룹의 GID(제 경우에는 0)를 얻고 해당 0을 inode에 씁니다. 다음과 같이 할 수도 있습니다.

# touch testfile
# chgrp 135543 testfile
# ls -l testfile
-rw-r--r--. 1 root 135543 0 Aug 21 18:05 testfile
# groupadd -g 135543 testgroup
# ls -l testfile
-rw-r--r--. 1 root testgroup 0 Aug 21 18:05 testfile

답변3

0은 루트의 UID 및 GID입니다. 따라서 chgrp 0을 수행하면 파일/디렉토리의 그룹 소유권이 루트로 변경됩니다.

관련 정보