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

Google에서 검색 한 결과 linux.about.com 메시지 :

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

  • 하지만 그게 무슨 뜻일까요?

내 폴더에 대한 권한은 현재 0755

입니다.

소유자에 대한 UID를 설정하면 4755

그룹의 GID를 설정하면 2755

다른 사용자를 위해 고정 비트를 설정했습니다. 1755

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

답변

모든 파일과 마찬가지로 UNIX 계열 시스템의 모든 프로세스에는 소유자 (실제 또는 시스템 “의사 -user “(예 : daemon, bin, man 등) 및 그룹 소유자. 사용자 파일의 그룹 소유자는 일반적으로 해당 사용자의 기본 그룹이며 유사한 방식으로 시작하는 모든 프로세스는 일반적으로 사용자 ID와 기본 그룹 ID가 소유합니다.

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

sticky bit는 약간 다른 용도로 사용됩니다. 가장 일반적인 용도는 파일을 만든 사용자 계정 만 파일을 삭제할 수 있도록하는 것입니다. /tmp 디렉토리를 생각해보십시오. 누구든지 파일을 만들 수있는 매우 자유로운 권한이 있습니다. 이는 사용자의 프로세스가 임시 파일 (screen, ssh 등)을 만들고 상태 정보를 /tmp). 사용자의 임시 파일을 보호하기 위해 /tmp에 고정 비트가 설정되어있어 나만 내 파일을 삭제할 수 있으며 사용자 만 당신의 것을 삭제하십시오. 물론 루트는 무엇이든 할 수 있지만 sysadmin이 “정상적이지 않았 으면합니다!

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

댓글

  • 아, 감사합니다. 따라서 Sticky Bit는 개인 (사용자) 권한과 같습니다. 그 대답은 말이 잘되어 있고 이해할 수있었습니다.
  • 감사합니다. sticky 비트는 디렉토리에있는 파일에 대해 약간의 보호 기능을 제공합니다. 소유자가 누구인지에 관계없이 모든 파일에 동일한 수준의 보호가 제공되므로 ' 특정 사용자에게만 해당되지 않습니다. ' 누구나 파일을 만들 수 있고 소유자 만 파일을 삭제할 수 있도록하는 방법입니다.
  • +1, D_bye, 디렉토리에 설정된 setgid 비트에 대한 예제를 공유해 주시겠습니까?감사합니다
  • @Ankit Under Solaris (그리고 거의 확실하게 다른 것-저는 * BSD와 Solaris 만 사용합니다), setgid 비트가 디렉토리에 설정되어 있으면 해당 디렉토리에서 생성 된 모든 새 파일은 동일합니다. 그룹 소유자를 디렉토리 자체로 지정하고 생성 프로세스 (실행중인 사용자)의 기본 그룹을 상속하지 않습니다.

Answer

파일의”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– : 소유자가 아닌이 파일이 속한 그룹의 구성원 (예제에서 “사용자”)은이 파일을 읽을 수 있지만 쓰거나 실행할 수는 없습니다.

(d) — : A 다른 사람은 “이 파일에 전혀 액세스 할 수 없습니다 (물론 루트 제외).

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

당신의 설명에 따르면 아마도 당신이 의미했던 필드는 SGID 비트이며, 여기에 “제가 생각할 수있는 것보다 더 나은 설명이 있습니다.

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

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

예를 들어, 인쇄 스풀러 디렉토리에서 파일을 읽고 쓸 수있는 “spool”그룹이있는 경우 t 누군가가이 디렉토리를 엉망으로 만들고 파일을 인쇄 할 수 있기를 원합니다. 일부 인쇄 프로그램 또는 스크립트에 그룹 “스풀”을 지정하고 SGID 비트를 설정할 수 있으며, 누군가이 프로그램을 실행하면 프로그램이 이제 실행중인 사람없이 스풀러 디렉터리에 쓰기 전체 액세스 권한을 얻습니다.

댓글

  • 좋습니다. 감사합니다. 나는 권한 부분 (abbcccddd 부분)을 이해합니다.하지만 당신은 🙂
  • tmp 폴더에 대한 나의 권한이 drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp 인 것을 방금 보았습니다. abbbcccddt (문자 ' t ')는 무엇을 의미합니까? -" d = directory ", " rwx = read, 쓰기, 실행 "; 하지만 마지막에 ' t '를 본 적이 없습니다. tmp 폴더에 대한 특별 권한입니까?
  • Small t는 " 실행 가능 (x) 및 고정 비트 세트입니다. ". / tmp에서 이것이 일반적인 이유에 대한 설명은 위를 참조하십시오.

답변

GID는 다음과 같습니다. 그룹의 ID 번호를 찾았습니다. 이는 OS가 무언가 (프로세스, 파일 등)와 관련된 (사용자) 그룹을 표현하는 편리한 방법입니다. 긴 문자열 식별자 대신 고정 된 크기의 숫자로 표현할 수 있습니다.

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

두 개념은 서로 관련이 있지만 매우 다른 용도로 사용됩니다.

귀하의 질문은 “이러한 권한을 설정하는 것이 중요합니까?”; 항상 something 으로 설정되지만 대부분의 경우 초기 숫자는 0 ( “특수 없음”)이므로 간결성을 위해 생략하는 경향이 있습니다. 다른 값을 지정해야하는지 여부는 전적으로 해당 파일 또는 디렉토리의 사용 패턴

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다