GID는 무슨 뜻인가요?

GID는 무슨 뜻인가요?

GID는 실제로 무엇을 의미합니까?

구글링해봤는데 이거다linux.about.com설명하다:

프로세스의 그룹 식별 번호입니다. 유효한 그룹 번호는 /etc/group파일의 및 GID 필드에 제공됩니다 /etc/passwd. 프로세스가 시작되면 해당 GID는 상위 프로세스의 GID로 설정됩니다.

  • 그런데 이것이 무엇을 의미하는가?

폴더에 대한 내 권한은 현재 다음과 같습니다.0755

소유자의 UID를 설정하면4755

그룹의 GID를 설정하면2755

내가 다른 사람을 위해 고정 비트를 설정하면1755

  • 이러한 권한을 설정하는 것이 중요합니까?

답변1

모든 파일과 마찬가지로 UNIX 계열 시스템 의 모든 프로세스에는 소유자(실제 사용자 또는 시스템 "의사 사용자"일 수 있는 사용자 )와 그룹 소유자가 daemon있습니다 . 사용자 파일의 그룹 소유자는 일반적으로 해당 사용자의 기본 그룹이며, 비슷한 방식으로 시작하는 모든 프로세스는 일반적으로 사용자 ID와 기본 그룹 ID가 소유합니다.binman

그러나 특정 명령을 실행하려면 높은 권한이 필요한 경우도 있지만 전체 관리 권한을 부여하는 것은 바람직하지 않습니다. 예를 들어, passwd명령이 비밀번호를 업데이트하려면 시스템의 섀도우 비밀번호 파일에 액세스해야 합니다. 분명히 모든 사용자에게 비밀번호를 재설정할 수 있도록 루트 권한을 부여하고 싶지는 않을 것입니다. 이는 의심할 여지 없이 혼란을 초래할 것입니다! 대신, 특정 작업을 수행하기 위해 사용자에게 더 높은 권한을 일시적으로 부여하는 다른 방법이 필요합니다. 이것이 바로 SETUID 및 SETGID 비트의 용도입니다. 이는 표시된 명령을 실행하는 동안 일시적으로 사용자 권한을 높이도록 커널에 지시하는 방법입니다. SETUID 바이너리는 root(보통) 실행 파일 소유자의 권한으로 실행되는 반면, SETGID 바이너리는 실행 파일 그룹 소유자의 그룹 권한으로 실행됩니다. SETUID 명령 passwd의 경우 root일반 사용자는 루트 권한으로 실행하여 제어되고 예측 가능한 방식으로 비밀번호 파일의 내용에 직접 영향을 미칠 수 있습니다. UNIX 계열 시스템( , , 등 ) SETUID에는 다른 많은 명령이 있으며 , 모두 올바르게 작동하려면 높은 권한이 필요합니다. 로그 파일 등에 대한 액세스를 허용하기 위해 커널이 프로세스의 GID를 일시적으로 변경하는 프로그램 도 있습니다 . 이것이 그러한 유틸리티 중 하나입니다.chshscreenpingsuSETGIDsendmail

sticky bit목적은 약간 다릅니다. 가장 일반적인 용도는 파일을 생성한 사용자 계정만 해당 파일을 삭제할 수 있도록 하는 것입니다. /tmp목차를 생각해 보세요 . 매우 자유로운 권한을 갖고 있어 누구나 파일을 생성할 수 있습니다. 이는 좋은 기능이며 사용자 프로세스가 임시 파일( 등을 생성 screen하여 ssh상태 정보를 /tmp)에 저장할 수 있게 해줍니다. 사용자의 임시 파일을 보호하기 위해 /tmp내 파일은 본인만 삭제할 수 있고, 본인 파일은 본인만 삭제할 수 있도록 고정 비트가 설정되어 있습니다. 물론 루트는 무엇이든 할 수 있지만 시스템 관리자가 제정신이 아니기를 바라야 합니다!

일반 파일(즉, 실행 불가능한 파일)의 경우 SETUID/SETGID 비트 설정은 거의 의미가 없습니다. 일부 시스템의 디렉토리에 있는 SETGID는 해당 디렉토리에 생성된 새 파일의 기본 그룹 소유자를 제어합니다.

답변2

아시다시피 GID는 그룹 ID 번호입니다. 이는 운영 체제가 무언가(프로세스, 파일 등)와 관련된 (사용자) 그룹을 표현하는 편리한 방법일 뿐이며 잠재적으로 긴 문자열 식별자가 아닌 고정 크기 숫자로 표시될 수 있습니다.

4진수 파일 권한 값(예: 0755)에서 세 번째 숫자는 파일에 대한 그룹의 권한을 지정합니다. 첫 번째 숫자가 생략되면 두 번째 숫자는 그룹의 권한을 지정합니다. 이와 관련하여 파일과 디렉터리는 동일하게 취급되지만 디렉터리의 경우 각 권한 비트의 정확한 의미는 다소 직관적이지 않습니다.

두 개념은 서로 관련되어 있지만 용도가 매우 다릅니다.

"이러한 권한을 설정하는 것이 중요합니까?"라는 질문은 항상 다음과 같이 설정되어 있습니다.무엇, 그러나 대부분의 경우 초기 숫자는 0("특별한 사항 없음")이므로 간결함을 위해 종종 생략됩니다. 다른 값을 지정해야 하는지 여부는 전적으로 해당 파일이나 디렉터리의 사용 패턴에 따라 다릅니다.

답변3

파일의 "SGID" 비트를 의미하는 것 같은데, 이는 GID와 다릅니다.

다음은 내 컴퓨터에 있는 일반적인 파일입니다(ls -l의 출력).

-rw-r----- 1 bristol    users 16 2012-07-23 11:36 file.txt
abbbcccddd <-- See explanation below.

처음 10개의 기호를 보면,

(a) - : 이것은 단지 평범한 오래된 파일입니다(디렉토리, 심볼릭 링크, 파이프 등과는 반대...).

(b) rw-: 소유자는 파일을 읽고 쓸 수 있지만 파일을 실행할 수는 없습니다. 나중에 대기열에서 볼 수 있듯이 소유자는 "Bristol"입니다.

(c) r-- : 소유자가 아닌 파일이 속한 그룹의 구성원(예: "user")은 파일을 읽을 수는 있지만 파일을 쓰거나 실행할 수는 없습니다.

(d) --- : 다른 누구도 이 파일에 접근할 수 없습니다(물론 루트는 제외).

GID 필드는 파일이 속한 그룹(이 경우 "사용자")을 알려줍니다.

설명에 따르면 아마도 참조하는 필드는 SGID 비트일 것입니다. 제가 생각하는 것보다 더 나은 설명은 다음과 같습니다.

http://www.codecoffee.com/tipsforlinux/articles/028.html

짧은 버전은 다음과 같습니다. 실행 파일에 SGID 비트가 설정된 경우 해당 그룹에 속하지 않지만 파일을 실행할 수 있는 사람은 프로그램이 실행되는 동안 일시적으로 해당 그룹의 권한을 얻습니다.

예를 들어, 인쇄 스풀러 디렉터리에서 파일을 읽고 쓸 수 있는 "spool" 그룹이 있고 누구도 이 디렉터리를 조작하는 것을 원하지 않지만 파일을 인쇄할 수 있게 하려는 경우 다음을 사용할 수 있습니다. 일부 인쇄 프로그램 또는 스크립트에는 "스풀" 그룹이 있고 SGID 비트가 설정되어 있으며 누구든지 프로그램을 시작하면 이제 프로그램을 실행하는 사람이 전체 액세스 권한을 갖지 않고도 프로그램이 스풀러 디렉토리에 쓸 수 있습니다.

관련 정보