'chmod g+s' 명령

'chmod g+s' 명령

chmod g+s안녕하세요. Unix에서 명령어의 기능을 알고 싶습니다.

또한 이 특정한 경우에 어떤 역할을 하는지 알고 싶습니다.

cd /home/canard;
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;

을 제외한 모든 명령의 역할을 이해하고 있으며 , 이 일련의 명령에 의해 생성된 파일 과 결과 chmod g+s의 차이점을 알고 싶습니다 .undeux

답변1

chmod g+s .;

이 명령은 다음과 같이 작성된 현재 디렉터리의 "set group ID"(setgid) 모드 비트를 설정합니다...

이것은 모든 것을 의미합니다새로운현재 디렉터리에 생성된 파일 및 하위 디렉터리는 파일을 생성한 사용자의 기본 그룹 ID가 아닌 해당 디렉터리의 그룹 ID를 상속합니다. 이는 현재 디렉터리 내에 생성된 새 하위 디렉터리에도 전달됩니다.

g+s파일의 그룹 ID에는 영향을 주지만 소유자 ID에는 영향을 주지 않습니다.

이는 다음에만 적용됩니다.새로 만들어진문서. 파일은 움직이는 ( mv) 디렉토리 진입은 setgid 설정의 영향을 받지 않습니다. 복사된 파일 cp -p도 영향을 받지 않습니다.

touch un;
chgrp canard .;
chmod g+s .;
touch deux ;

이 경우 은( deux는) 그룹에 속 canard하지만 un해당 그룹이 무엇이든 해당 그룹을 만든 사용자의 그룹에 속하게 됩니다.

셸 명령에서 세미콜론 사용에 대한 빠른 참고 사항

C나 Perl과 달리 쉘 명령 뒤에 다른 쉘 명령이 오는 경우 해당 명령 뒤에는 세미콜론만 추가하면 됩니다.동일한명령줄. 따라서 다음 명령줄을 고려하십시오.

chgrp canard .; chmod g+s .;

마지막 세미콜론은 중복되므로 제거할 수 있습니다.

chgrp canard .; chmod g+s .

또한 두 명령을 서로 다른 줄에 배치하면 나머지 세미콜론이 필요하지 않습니다.

chgrp canard .
chmod g+s .

문서

자세한 내용은 다음을 참조하세요.수동 chmod. 게다가 위키피디아에는테이블명령 옵션을 요약합니다 chmod.

답변2

chmod 명령을 사용하여 파일 권한을 변경할 수 있습니다. Unix에서는 파일 권한에 따라 액세스 범주 및 액세스 유형에 따라 파일에 대해 다양한 유형의 액세스 권한을 가질 수 있는 사람이 결정됩니다. 액세스 범주는 사용자 그룹으로, 각 그룹에는 특정 유형의 액세스가 할당될 수 있습니다.

할당 가능한 파일 액세스 권한이 있는 Unix/Linux 사용자 및 그룹

g+s 옵션은 다음과 같습니다:

g - 파일 그룹의 다른 사용자가 해당 파일에 대해 갖는 권한

s - 실행 시 사용자 또는 그룹 ID를 설정합니다.

사용 예는 다음과 같습니다.

chmod =rwx,g+s filename

(누구나 특정 파일을 읽고, 쓰고, 실행할 수 있으며, 설정된 그룹 ID를 열 수 있습니다)

파일에 대한 권한을 설정/수정하려면 chmod 프로그램을 사용해야 합니다. 물론, 파일의 소유자만이 chmod를 사용하여 파일의 권한을 변경할 수 있습니다. chmod의 구문은 다음과 같습니다. chmod [옵션] 모드 파일 "모드" 부분은 인수로 뒤에 오는 파일에 대한 새 권한을 지정합니다. 스키마는 변경해야 하는 사용자의 권한과 이후에 변경해야 하는 액세스 유형을 지정합니다. 예: chmod ax socktest.pl

이는 모든 사용자에 대해 실행 비트(-)를 지워야 함을 의미합니다. (소유자, 그룹 및 기타 국가) 권한은 변경으로 인해 영향을 받아야 하는 사용자를 지정하는 문자로 시작하며 다음 중 하나일 수 있습니다.

u the owner user
g the owner group
o others (neither u, nor g)
a all users

다음에는 +(비트 설정) 또는 -(비트 지우기)와 변경해야 하는 비트에 해당하는 문자로 구성된 변경 명령이 옵니다. 몇 가지 예를 살펴보겠습니다.

$ ls -l socktest.pl 
-rwxr-xr-x   1 nick     users         1874 Jan 19 10:23 socktest.pl*

$ chmod a-x socktest.pl 
$ ls -l socktest.pl 
-rw-r--r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

$ chmod g+w socktest.pl 
$ ls -l socktest.pl 
-rw-rw-r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

$ chmod ug+x socktest.pl 
$ ls -l socktest.pl 
-rwxrwxr--   1 nick     users         1874 Jan 19 10:23 socktest.pl*

$ chmod ug-wx socktest.pl 
$ ls -l socktest.pl 
-r--r--r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

이상한 숫자... chmod 755 somefile과 같은 것을 접했을 수도 있으며 물론 그것이 무엇인지 궁금할 것입니다. 문제는 단일 숫자(이 예의 숫자와 같은)를 사용하여 파일의 전체 권한 모드를 한 번에 변경할 수 있다는 것입니다. 각 모드에는 해당 코드 번호가 있으며, 앞으로 살펴보겠지만 모든 모드에 해당하는 번호를 찾는 매우 간단한 방법이 있습니다. 모드 번호의 세 자리 숫자는 각각 세 개의 권한 트리플 중 하나에 해당합니다. (u, g, o) 삼중항의 각 허용 비트는 값(r의 경우 4, w의 경우 2, x의 경우 1)에 해당합니다. 권한 비트가 설정된 경우 이 값은 권한 삼중항의 수에 추가됩니다. 지워지면 아무것도 추가하지 않습니다. (3중항의 숫자가 실제로 3개의 비트 패턴에 해당하는 8진수 값이라는 것을 여러분 중 일부는 알 수 있습니다. 8진수 값이 무엇인지 모르더라도 괜찮습니다. 지침을 따르십시오.) 파일 rwxr-xr-x 권한을 사용하여 다음 계산을 수행합니다.

당신의 세 쌍둥이:rwx => 4 + 2 + 1 = 7

g의 삼중항:r-x => 4 + 0 + 1 = 5

o의 삼중항:r-x => 4 + 0 + 1 = 5

이것은 만든다:755

따라서 755는 "다른 사람이 이 파일을 읽거나 실행해도 괜찮지만 나만 수정할 수 있어야 합니다"를 간결하게 표현한 것이며 777은 "모든 사람이 이 파일에 대한 전체 액세스 권한을 갖습니다"를 의미합니다.

완벽한 참조

답변3

이 주제는 종종 명확하게 이해되지 않기 때문에 여기에 답변을 추가하고 싶습니다. Linux 파일/폴더 권한 비트는 총 16비트로 구성되며 다음과 같이 분류됩니다.

  • 4비트 설명 파일(일반, 폴더, 소켓, FIFO, 링크 등)
  • 12비트(사용자용 4비트, 그룹용 4비트, 기타용 4비트)

파일이나 폴더에 이 및 user속성 이 있습니다 . 이 속성의 각 속성에는 및 하위 속성 이 포함되어 있습니다 .groupotherreadwriteexecutemodifier

그것은 우리가 보는 것과 user일치하는 3개의 비트를 가지고 있습니다 . rwxgroup가능성도 존재하므로 rwxother자체의 가능성도 있습니다 rwx. 그러나 실제로 그 아래에는 is 수정자 rwx?비트가 있습니다 ?. 따라서 일반적으로 user, 또는 group의 4번째 비트인지에 따라 이름이 지정되는 세 개의 수정자 비트가 있습니다 other.

  • 사용자 수정자 비트(setuid라고도 함)
  • 그룹 수정자 비트(일명 setgid)
  • 기타 수정 비트(고정 비트)

이러한 비트의 암시적 시스템 의미는 파일, 폴더 또는 실행 파일인지에 따라 변경됩니다. 결과적으로 일부 파일은 읽기 전용이 되거나, 실행 가능한 바이너리가 오랫동안 RAM에 남아 있거나, 파일이 실행되는 동안 프로세스의 유효 사용자/그룹 ID가 변경됩니다.

따라서 다음 명령은 유효하지 않으며 아무런 효과도 없습니다.

  • chmod u+t
  • chmod o+s

user및 수정자 group비트는 및 를 통해 설정할 수 +s있으며 어떤 이유로든 또는 단순을 통해 수정자를 other설정할 수 있습니다.o+t+t

답변4

ls 명령의 결과는 umask에 따라 달라집니다.

g+s는 sgid를 파일로 설정합니다. 확인하다여기SUID SGID에 대한 자세한 정보

따라서 umask가 022인 경우 결과는 다음과 같습니다.

-rw-r--r--    1 romeo    canard     0 Jan 31 20:58 deux
-rw-r-Sr--    1 romeo    UsersGrp   0 Jan 31 20:58 un

관련 정보