C에 "hello world"프로그램이있는 hello.c 파일이 있습니다. 쉘 (UNIX)에서도 다음을 수행했습니다.
$ ls > 1
$ chmod 0 1
$ cc -o hello hello.c
$ chmod 400 hello
$ ./hello > 1
그리고 1에 대한 허가가 거부되었습니다.
Hello에서 권한 거부 오류가 발생하지 않은 이유는 무엇입니까?
셸에 명령에 대한 출력 리디렉션을 수행하도록 요청 하면 명령을 호출 하기 전에 쓰기 대상 파일이 셸에 의해 열립니다 .
쉘은 다음을 수행합니다.
1
쓰기 위해 열기./hello
stdout
에1
./hello
1
권한 0o000
이 있으므로 첫 번째 작업이 실패합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다