Linux에서 umask는 어떻게 계산됩니까?

Linux에서 umask는 어떻게 계산됩니까?

umask따라서 이 형식을 사용하여 권한 있는 사용자를 제한하는 것이 가능하다는 것을 알고 있습니다 umask ugo.

나는 읽기 = 4, 쓰기 = 2, exec = 1이라는 것을 알고 있습니다. 그런데 을 입력하면 umask4자리 숫자가 나오는데, 이는 0022OR 입니다 0073. 추가 숫자가 있기 때문에 이것이 어떻게 작동하는지 지금은 이해할 수 없습니다. 그 여분의 숫자는 무엇입니까? 무슨 0022뜻인가요?

답변1

기본 마스크 0666.0022가 umask새 마스크 0644(0666-0022=0644)를 만든다고 가정하면 이 그룹과 다른 그룹에는 읽기(쓰기 또는 실행 없음) 권한이 있음을 의미합니다.

"추가" 숫자(첫 번째 숫자 = 0)는 특별한 패턴을 지정하지 않습니다.

패턴이 숫자로 시작하면 8진수로 해석되고, 그렇지 않으면 기호로 해석됩니다.

0은 1(고정 비트의 경우) 또는 6(SGID의 경우)과 마찬가지로 숫자입니다. 이와 같은 명령은 사용자 및 그룹에 읽기 및 쓰기 권한을 추가하는 chmod등의 다른 방법을 통해 호출할 수 있습니다 . chmod ug+rw mydir이 예의 패턴(ug+rw)은 숫자로 시작하지 않으므로 8진수로 해석되지 않고 기호로 해석됩니다.

바라보다en.wikipedia.org/wiki/Chmod#Symbolic_examples기호뿐만 아니라www.lifeaftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/몇 가지 특별한 패턴에 대해 알아보세요.

당신이 discover 를 먼저 사용할지는 모르겠지만 umask기술적으로는 가능합니다. 이는 거의 항상 0으로 표시되는 이유를 설명합니다.

~에 귀속됨핑크 플로이드 x33

마스크의 첫 번째 숫자는 소유자/그룹/기타 모델에 잘 맞지 않는 특수 권한과 관련이 있습니다. 파일 권한에 4자리 숫자가 제공되면 첫 번째 숫자는 다음과 같은 특수 값을 나타냅니다.

4000 = SUID
2000 = SGID
1000 = sticky bit

set-user-ID의 약자인 SUID 비트는 실행 가능한 프로그램이 소유자의 유효 사용자 ID(uid)로 실행되도록 합니다. 즉, 프로그램은 누가 실행하든 소유자의 권한으로 실행됩니다. 이는 루트 권한이 필요하지만 일반 사용자가 실행하는 프로그램을 실행할 때 일반적입니다. passwd이것이 그러한 예 중 하나입니다.

SGID 비트는 set-group-ID의 약자이며 매우 유사하지만 유효한그룹소유자의 ID(gid)입니다.

끈끈한 부분은 약간 복잡합니다. 더 자세히 알고 싶다면 맨페이지를 읽어보세요 sticky.

이 비트는 디렉토리에도 사용할 수 있지만 의미가 변경됩니다.

기본적으로 이러한 추가 비트를 활성화할 수 있는 설정을 실제로 구성할 수 있다고는 생각하지 않지만 umask아마 그렇게 하고 싶지 않을 것입니다.

~에 귀속됨사용자 470379

관련 정보