umask XXX(권한 비트)는 파일 실행 권한을 제공합니다.

umask XXX(권한 비트)는 파일 실행 권한을 제공합니다.

파일은 기본적으로 666 권한으로 생성되고 umask이 권한에서 비트 단위로(권한 비트 단위로) 빼기 때문에 execute권한 문자(r,w,x)를 사용하지 않고 권한을 부여할 수 있습니까?

나는 다음과 같은 비트 마스크를 사용하는 것을 언급하고 있습니다.

umask 002

권한 문자가 설정되지 않았습니다.

umask u+x
umask u=rwx

답변1

이건 불가능 해. umask권한을 차단하기만 하고 추가하지는 않습니다. 따라서 생성된 시스템 호출에 실제로 실행 권한이 포함된 경우 open()에만 실행 권한을 얻습니다 . 컴파일러가 실행 파일을 생성하는 경우가 이에 해당합니다.

답변2

새 파일의 권한은 호출에 사용된 권한을 기반으로 계산됩니다 creat().

결과 umask는 다음과 같습니다.

$ umask 002
$ umask -S
u=rwx,g=rwx,o=rx

따라서 creat()파일 권한 0777을 사용 하면 rwxrwxrx.0666creat()

관련 정보