기본적으로 소유자가 파일을 실행 가능하게 만들 수 있습니까?

기본적으로 소유자가 파일을 실행 가능하게 만들 수 있습니까?

umask에 대한 파일 기본 권한이 666이므로 파일 생성 시 750 권한을 갖도록 할 수 있습니까?

답변1

일반적으로 그렇지 않습니다. 사실상 모든 프로그램은 mode 를 사용하여 호출 open()하므로 무엇을 적용하든 결코 얻을 수 없습니다 . 실행 파일을 생성하는 링커도 모드로 출력 파일을 열고 나중에 엽니다.creat()0666umask07500666chmod

strace -f -e file gcc bla.c 2>&1 | fgrep a.out 
...
[pid 14096] open("a.out", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
...
[pid 14096] chmod("a.out", 0755)        = 0

다른 동작을 원할 경우 의도한 모드 변경을 수행하는 기존 도구에 대한 자체 도구나 래퍼를 작성해야 합니다.

관련 정보