4 개의 숫자 chmod 인수에서 첫 번째 숫자는 무엇입니까 (예 :`chmod 4555`)?


20

프로그램을 설치할 때 수행 할 것을 권장합니다 chmod 4555. 좋아, 난 단지 세 개의 숫자를 사용하면 값에 대해 알고 있습니다. 예를 들어

chmod 555 test-file

줄게

-r-xr-xr-x

쓰기 4, 읽기 2, 실행 1 그러나 내가 이것을 할 때 :

chmod 4555 test-file

그것은 나를 준다

-r-sr-xr-x

그래서로 x변경되었습니다 s. 그게 무슨 뜻이야?


1
또한 여기에 설명되어 있습니다 : askubuntu.com/a/550947/72216 ( "기호에 대하여")
Jacob Vlijm

@JacobVlijm은 아래의 다른 "특별한"비트들에 대해 더 깊이 설명했습니다
Thomas Ward

답변:


29

via로 작업 할 수있는 속성 세트는 실제로 4 가지가 있습니다 chmod.

Special, User/Owner, GroupOthers그 제 수가 설정 될 수있는 특별한 비트 인 상태 네 번호 chmods 작업 순서,이다.

chmod 4555 다음과 같습니다 :

  • Set UID bit-파일을 실행중인 사용자에 관계없이 파일을 소유자로 실행
  • 사용자 / 소유자 : Read, Execute
  • 그룹: Read, Execute
  • 기타 : Read, Execute

s권한에 대한 '인간이 읽을 수있는'문자열이 있음을 나타냅니다 SetUID비트가 (아래 설명)으로 설정됩니다.


효과적으로 4 개의 chmod권한 인수를 다음과 같이 특정 설명 자로 분류하고 수학을 수행 4하여 첫 번째 섹션의 5내용, 다음 섹션의 내용 등 을 결정할 수 있습니다 .

명심 ####입니다 Special User/Owner GroupOthers순서에.

대한 Special특성 (네 번호의 첫 번째 숫자 chmod인수) :

  • Set UID-파일을 실행하는 사용자에 관계없이 파일을 소유자로 실행합니다 ( 섹션 s의 사람이 읽을 수있는 권한 문자열에 User표시됨) = +4 ( --s아래 User/Owner)
  • Set GID-파일을 실행하는 사용자 / 그룹에 관계없이 파일을 그룹으로 실행합니다 ( 섹션 s의 사람이 읽을 수있는 권한 문자열에 Group표시됨) = +2 ( --s아래 Group)
  • Sticky Bit-디렉토리에만 적용-설정 한 경우 디렉토리의 소유자 만 디렉토리 root를 삭제할 수 있으며 파일 소유자 만 또는 root그 안의 파일을 삭제할 수 있습니다. ( 섹션 t에 대한 사람이 읽을 수있는 권한 문자열 Others과 같이 표시됨) = +1 ( --t아래 Others)

를 들어 User/Owner, GroupOthers특성 (네 번호의 마지막 세 개의 숫자 chmod인수) :

  • Read= +4 ( r--)
  • Write= +2 ( -w-)
  • Execute(파일의 경우) 또는 '입력 / 목록 항목'(디렉토리의 경우) = +1 ( --x)

7

SETUID비트 라고합니다 . chmod 4555 test-file(귀하의 경우)에 의해 설정 test-file되면 사용자가 파일의 소유자 인 것처럼 모든 사용자가 실행할 수 있습니다.

SETUID비트가 다음 유효 사용자 ID (설정 EUID(표준 권한 예에 의해 그렇지 않으면 파일을 실행할 수있는 권한이없는 사용자를) 0744), 파일 소유자의 EUID를 받아 파일을 실행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.