답변:
기본 마스크를 0666으로 가정합니다. umask
0022는 새 마스크를 0644 (0666-0022 = 0644)로 만들어 그룹 및 다른 사람들이 읽기 (쓰기 또는 실행 권한 없음) 권한을 갖도록합니다.
"추가"숫자 (첫 번째 숫자 = 0)는 특수 모드가 없음을 지정합니다.
모드가 숫자로 시작하면 8 진수로 해석되고 그렇지 않으면 기호를 의미합니다.
0은 1 (스티커 비트의 경우) 또는 6 (SGID의 경우) 인 숫자입니다. 사용자 및 그룹에 읽기 및 쓰기 권한을 추가하는 위치 chmod
와 같은 다른 방법 으로 명령을 호출 할 수 있습니다 chmod ug+rw mydir
. 이 경우 (ug + rw) 모드는 숫자로 시작하지 않으므로 8 진수로 해석되는 것이 아니라 기호로 해석됩니다.
특수 모드에 대한 내용은 www.lifeaftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/ 와 기호에 대해서는 en.wikipedia.org/wiki/Chmod#Symbolic_examples 를 참조하십시오 .
나는 당신이 첫 비트를 마스크 해제한다는 것을 umask
모르지만 기술적으로는 가능합니다. 거의 항상 0으로 보는 이유를 설명합니다.
마스크의 첫 번째 숫자는 소유자 / 그룹 / 다른 모델에 잘 맞지 않는 특수 권한을 처리합니다. 파일 권한에 네 자리 숫자가 제공되면 첫 번째 숫자는 해당 특수 값을 나타냅니다.
4000 = SUID
2000 = SGID
1000 = sticky bit
set-user-ID의 약자 인 SUID 비트는 실행 프로그램이 소유자의 유효 사용자 ID (uid)로 실행되도록합니다. 즉, 누가 실행하더라도 프로그램은 소유자의 권한으로 실행됩니다. 루트 권한이 필요한 작업을 수행하지만 일반 사용자가 실행해야하는 프로그램에서 흔히 볼 수 있습니다 passwd
.
set-group-ID의 약자 인 SGID 비트는 매우 유사하지만 소유자 의 유효 그룹 ID (gid)로 실행됩니다 .
스티커 비트는 조금 더 복잡합니다. 더 많은 정보를 원하면에 대한 맨 페이지를 읽으십시오 sticky
.
이 비트는 디렉토리와 함께 사용할 수도 있지만 그 의미는 변경됩니다.
umask
기본적으로 이러한 추가 비트를 활성화 할 수 있도록를 설정할 수 있다고는 생각하지 않지만 어쨌든 그렇게하고 싶지는 않을 것입니다.
에 신용 user470379
chmod 6777 dropbox
. 그리고 chmod ug+s
0666-0022
, 그건 0666 & ~0022
.
man 2 umask
(해당 시스템 호출) 에 따르면 "파일 권한 비트 만mask
사용됩니다". 이어bash
, umask에 1000에서 오류가 발생하는 경우를 "범위 밖의 8 진수". 그렇다면 왜 여분의 0입니까? 숫자가 8 진수임을 보여주기 위해서 일뿐입니다.