![umask XXX(권한 비트)는 파일 실행 권한을 제공합니다.](https://linux55.com/image/81112/umask%20XXX(%EA%B6%8C%ED%95%9C%20%EB%B9%84%ED%8A%B8)%EB%8A%94%20%ED%8C%8C%EC%9D%BC%20%EC%8B%A4%ED%96%89%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
파일은 기본적으로 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()