Saya pikir:
echo hello world > /usr/bin/firefox
akan menampilkan pesan di browser. Tidak ada yang terjadi. Lalu saya mencoba:
echo hello world > /usr/bin/kwrite
untuk melihat apakah kwrite terbuka dengan 'hello world' yang diketik di depan. Sekali lagi, tidak ada yang terjadi. Kemudian setelah mencoba menjalankan kedua perintah:
computer:~$ kwrite
/usr/bin/kwrite: line 1: hello: command not found
computer:~$ firefox
/usr/bin/firefox: line 1: hello: command not found
Perbuatan ls -l /usr/bin/
:
-rwxr-xr-x 1 root root 182576 2012-08-21 06:42 apt-ftparchive
-rwxr-xr-x 1 root root 116996 2012-08-21 06:41 apt-get
-rwxr-xr-x 1 root root 2151596 2011-10-20 21:45 aptitude
-rwxr-xr-x 1 root root 1939 2011-10-20 21:45 aptitude-create-state-bundle
-rwxr-xr-x 1 root root 3007 2011-10-20 21:45 aptitude-run-state-bundle
-rwxr-xr-x 1 root root 7336 2012-08-21 06:41 apt-key
lrwxrwxrwx 1 root root 20 2012-12-29 10:41 /usr/bin/firefox -> /opt/firefox/firefox
-rwxr-xr-x 1 root root 5476 2010-11-17 04:58 /usr/bin/kwrite
-rwxr-xr-x 1 root root 181104 2010-02-16 01:40 zip
-rwxr-xr-x 1 root root 1184 2011-01-21 23:49 zxpdf
File biner di /usr/bin
(dan folder nampan lainnya) di sistem saya, setidaknya pengguna menulis izin pada (?) Jadi apa yang saya lakukan secara efektif adalah menulis ke executable 'hello world', meskipun /usr/bin/kwrite
adalah binary exec sementara /opt/firefox/firefox
adalah skrip shell
Jadi jelas bahwa file yang dapat dieksekusi rentan terhadap jenis kecelakaan ini. Jadi saya ingin bertanya apakah izin menulis itu diperlukan. Saya ingin mematikannya namun saya ingin memastikan saya tidak melewatkan sesuatu di sini.
sumber
Jawaban:
Pertama, Anda pasti sudah mencoba
echo hello world > /usr/bin/kwrite
sebagai root sejak semuaw
atau menulis bitmati
-rwxr-xr-x
untuk pengguna dan grup. Untuk pertanyaan kedua Anda, hanya root yang memiliki izin untuk menuliskebanyakan file biner kecuali dikompilasi dan diinstal oleh pengguna normal.
Anda harus memoles notasi izin file Anda juga. ini bagus link
sumber
File biner memiliki izin menulis pengguna, karena pengguna adalah root . Hanya root yang bisa menulis
/usr/bin
.Anda harus benar-benar memoles tidak melakukan hal-hal sederhana (seperti menggunakan browser dan pengolah kata) sebagai root. Lihat Membatasi Kerusakan di sini: http://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-you-linux-system-as-root/
Juga, Anda mungkin akan melihat ada beberapa
.sh
file dalam/usr/bin
. Ini mungkin bisa diedit oleh root jika perlu.sumber