Skrip Shell memerlukan izin baca untuk dijalankan, tetapi file biner tidak:
$ cat hello.cpp
#include<iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
$ g++ -o hello hello.cpp
$ chmod 100 hello
$ ./hello
Hello, world!
$ file hello
hello: executable, regular file, no read permission
Menampilkan konten file dan mengeksekusinya adalah dua hal yang berbeda. Dengan skrip shell, hal-hal ini terkait karena mereka "dieksekusi" dengan "membacanya" menjadi shell baru (atau yang sekarang), jika Anda akan memaafkan penyederhanaan. Inilah sebabnya mengapa Anda harus bisa membacanya. Biner tidak menggunakan mekanisme itu.
Untuk direktori, izin eksekusi sedikit berbeda; itu berarti Anda dapat melakukan hal-hal pada file di dalam direktori tersebut (misalnya membaca atau menjalankannya). Jadi katakanlah Anda memiliki seperangkat alat /tools
yang Anda inginkan agar orang dapat menggunakannya, tetapi hanya jika mereka mengetahuinya. chmod 711 /tools
. Maka hal-hal yang /tools
dapat dieksekusi di dapat dijalankan secara eksplisit (misalnya /tools/mytool
), tetapi ls /tools/
akan ditolak. Demikian pula, dokumen dapat disimpan di /private-docs
mana dapat dibaca jika dan hanya jika nama file diketahui.
cd
melakukannya.stdio.h
sini. Saya sarankan menghapusnya.ls
dan penyelesaian tab bekerja membuat pemeliharaan pekerjaan mengganggu, dan memberikan sedikit jika ada manfaat keamanan yang sebenarnya. Sebagian besar file yang penyerang mungkin tertarik berada di lokasi standar yang diketahui, atau lokasi mereka dapat ditemukan secara tidak langsung dari data dalam file lain (selain itu bagaimana program yang secara sah menggunakan file-file itu tahu di mana menemukannya?).Di Gentoo, program yang dapat dieksekusi yang disetuid (disetel untuk dijalankan dengan izin pemiliknya alih-alih penyerbunya) ditolak akses baca (mode 4711). Ini untuk menambahkan lapisan perlindungan terhadap eksploitasi bug untuk membantu eskalasi hak istimewa.
Jika penyerang yang tidak memiliki hak pribadi dapat membaca file setuid, dan mengetahui bug yang memungkinkan serangan gaya kembali ke libc , mereka mungkin dapat menggunakan konten file untuk memprediksi di mana fungsi atau pustaka tertentu yang berguna kemungkinan akan ditempatkan di memori ketika program dipanggil.
Sistem modern sering menyertakan perlindungan tambahan yang lebih efektif, seperti ASLR , tetapi pembatasan yang ada dalam platform 32-bit mungkin membuat mereka lebih mudah dieksploitasi.
sumber
Sepertinya nilai "eksekusi saja" tidak memiliki banyak kegunaan untuk file, tetapi dapat digunakan untuk mencegah seseorang dari membaca isi direktori.
sumber
Anda harus membaca dan menjalankan izin untuk menjalankan skrip. Membaca isi skrip adalah apa yang memungkinkannya untuk dieksekusi, jadi Anda harus bisa
read and execute
. Kalau tidak, Anda tidak dapat menjalankan skrip tanpanya.Keamanan. Beberapa mungkin ingin melindungi file mereka dan menghentikan orang lain dari mengeksekusi atau menggunakannya.
sumber
chmod 000
Akan menganggap izin kepada siapa pun kecualiroot
. Terkadang Anda tidak perlu bertindak terlalu luas hanya untuk perlindungan - itu tergantung pada niat pengguna. Untuk itu, katakanlah "re-chmod" file kembali ke izin yang dapat dibaca dan ditulis Anda harus melakukan ini melaluiroot
. Jika Anda tidak dapat mengaksesroot
, maka itu akan terbukti sulit./tools
yang Anda inginkan agar orang dapat menggunakannya, tetapi hanya jika mereka mengetahuinya.chmod 711 /tools
. Maka hal-hal yang dapat dieksekusi di/tools
dapat dijalankan secara eksplisit, tetapils /tools/
akan ditolak.