파일은 기본적으로 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
.0666
creat()