답변:
-rwx-wx-wx
권한이 있는 파일 에는 소유자에 대한 읽기 / 쓰기 / 실행 권한이 있으며 다른 모든 사람에 대한 쓰기 / 실행 (읽기는 안 됨) 권한이 있습니다.
스크립트 (보통 #!
첫 번째 줄에 텍스트 파일이있는 ) 인 경우 스크립트를 실행하면 실제로 인터프리터가 실행되므로 스크립트를 읽을 수 있어야하기 때문에 다른 사람이 실행할 수 없습니다 . (인터프리터는 다른 스크립트가 아닌 바이너리 여야합니다.) (실제로 모든 시스템에 해당되는 것은 아닙니다. 3.2.0 Linux 커널을 사용하는 Ubuntu는 인터프리터 자체가 해석 된 스크립트가 될 수 있습니다. 이 질문과 관련이없는 것으로 보입니다.)
이 바이너리 실행 파일이 있다면, 그것은 수 있습니다 직접 실행할 수 있지만, 그 내용은 읽을 수 없습니다. 예를 들어, 소유자 이외의 사람이 명령으로 명령을 실행할 수 있지만 실행 파일의 사본을 가져올 수는 없습니다.
물론 실행에는 읽기가 필요하지만 사용자가 아니라 커널에서 읽습니다. 실행중인 프로세스의 메모리를 검사하여 실행 파일의 내용에 대한 정보를 얻을 수는 있지만 바이너리 실행 파일을 재구성 할 수는 없을 것입니다. 실행 파일이 setuid이면 프로세스의 메모리를 검사 할 수 없습니다 (실행중인 계정에 액세스 할 수없는 경우).
덧붙여 말하자면, -rwx-wx-wx
매우 이상한 권한 집합입니다. 소유자 이외의 다른 사람이 파일을 읽지 못하도록 보호하지만 누구나 수정할 수 있습니다. 나는 그것이 의미가있는 경우를 생각할 수 없다.
chmod 111 hello ; gdb ./hello
말한다 ./hello: Permission denied.
; r
말한다No executable file specified.
이러한 권한이 있으면 파일 소유자 만 파일을 실행할 수 있습니다.
다른 사용자는 쓸 수는 있지만 실행할 수는 없지만 (이 경우에는 읽을 수 있음을 의미하므로) 일종의 블랙 박스로 쓸 수 있습니다.
user1:~$ cd /tmp
user1:/tmp$ echo "hostname" > testfile.sh
user1:/tmp$ chmod +x testfile.sh
user1:/tmp$ ./testfile.sh
server.example.com
user1:/tmp$ chmod 733 testfile.sh
user1:/tmp$ ls -l testfile.sh
-rwx-wx-wx 1 user1 user1 9 Jan 19 21:09 testfile.sh
user1:/tmp$ sudo su - user2
user2:~$ cd /tmp
user2:/tmp$ ./testfile.sh
./testfile.sh: Permission denied
user2:/tmp$ cat testfile.sh
cat: testfile.sh: Permission denied
user2:/tmp$ echo 'echo hello' >> testfile.sh
user2:/tmp$ ./testfile.sh
./testfile.sh: Permission denied
user2:/tmp$ logout
user1:/tmp$ ./testfile.sh
server.example.com
hello