Jawaban:
File dengan -rwx-wx-wx
izin telah membaca / menulis / mengeksekusi izin untuk pemilik, dan menulis / mengeksekusi (tetapi tidak membaca) izin untuk semua orang.
Jika itu skrip (biasanya file teks dengan a #!
di baris pertama), maka skrip tidak dapat dieksekusi oleh orang lain, karena mengeksekusi skrip benar-benar mengeksekusi penerjemah, yang harus dapat membaca skrip. (Penerjemah harus berupa biner, bukan skrip lain.) (Sebenarnya, itu tidak benar untuk semua sistem; Ubuntu, dengan kernel Linux 3.2.0, memungkinkan penafsir itu sendiri menjadi skrip yang ditafsirkan. Tampaknya ada batas sekitar 4 level. Itu tidak mungkin relevan dengan pertanyaan ini.)
Jika ini adalah biner yang dapat dieksekusi, ia dapat dieksekusi secara langsung, tetapi isinya tidak dapat dibaca. Ini berarti, misalnya, bahwa orang lain selain pemilik dapat menjalankannya sebagai perintah, tetapi tidak dapat mengambil salinan yang dapat dieksekusi.
Tentu saja eksekusi membutuhkan pembacaan, tetapi dibaca oleh kernel, bukan oleh pengguna. Anda mungkin bisa mendapatkan beberapa informasi tentang isi file yang dapat dieksekusi dengan memeriksa memori proses yang sedang berjalan, tetapi saya ragu Anda bisa merekonstruksi file executable biner. Dan jika executable adalah setuid, Anda tidak dapat memeriksa memori proses (kecuali Anda memiliki akses ke akun yang menjalankannya).
Secara kebetulan, -rwx-wx-wx
adalah seperangkat izin yang sangat aneh; melindungi file agar tidak dibaca oleh siapa pun selain pemiliknya, tetapi memungkinkan siapa pun untuk memodifikasinya. Saya tidak bisa memikirkan kasus di mana itu masuk akal.
chmod 111 hello ; gdb ./hello
mengatakan ./hello: Permission denied.
; r
kataNo executable file specified.
Dengan izin itu, hanya pemilik file yang dapat menjalankannya.
Pengguna lain dapat menulis kepadanya, tetapi tidak mengeksekusinya (karena eksekusi dalam kasus ini menyiratkan kemampuan untuk membacanya) tetapi mereka dapat menulis kepadanya sebagai semacam kotak hitam:
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
Tentu saja file apa saja dapat dibaca oleh pengguna root.
Juga, pemuat sistem, manajemen memori, swapper, dll .... akan membaca file dengan izin 'x', jika tidak maka tidak dapat dijalankan.
Kemungkinan lubang dalam pengungkapan konten yang dapat dieksekusi dapat berupa file / proc untuk proses, file inti, atau dengan menggunakan debugger.
chmod
| chown
telah dilakukan