Tidak masalah jika file di /bin
(atau direktori standar lainnya di mana file executable disimpan) dapat ditulis oleh root atau tidak. Pada server Linux yang saya gunakan, mereka dapat ditulis oleh root, tetapi pada mesin OpenBSD saya, mereka tidak.
Selama mereka tidak dapat ditulis oleh grup atau oleh "lainnya"!
Tidak ada masalah keamanan, misalnya
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Jika seseorang ingin menimpanya, mereka harus menjadi root, dan jika mereka root
menimpanya, maka mereka juga
- menginstal versi baru, atau
- kikuk, atau
- seorang penyerang dengan izin root sudah .
Hal lain yang perlu dipertimbangkan adalah bahwa root dapat menulis ke file tidak peduli apakah itu dilindungi atau tidak, karena ... root.
Perhatikan juga bahwa "skrip" adalah file biner yang dapat dieksekusi. Sebuah skrip tidak perlu ditulis "karena ini adalah file teks". Jika ada, itu mungkin harus hanya memiliki izin yang sama dengan executable lainnya di direktori yang sama.
Jangan mengubah izin untuk semuanya sekarang! Itu dapat mendatangkan segala macam malapetaka dan berpotensi membingungkan manajer paket yang mungkin memverifikasi bahwa izin diatur dengan benar. Ini juga dapat membuat sistem rentan jika Anda secara tidak sengaja mengubah izin dengan cara yang salah pada aplikasi yang kritis terhadap keamanan.
Asumsikan saja bahwa izin pada executable diatur dengan benar, kecuali Anda menemukan sesuatu yang terlihat sangat aneh, dalam hal ini Anda mungkin harus menghubungi pengelola paket yang relevan untuk memverifikasi daripada mulai mengubah barang.
Dari komentar dan obrolan , ada panggilan untuk beberapa riwayat.
Sejarah izin pada binari di Linux bukanlah sesuatu yang saya ketahui. Mungkin berspekulasi bahwa mereka hanya mewarisi izin dari direktori, atau hanya dari default umask
Linux, tetapi saya benar-benar tidak tahu.
Yang saya tahu adalah OpenBSD menginstal binari di sistem dasar 1 dengan mode izin 555 secara default ( -r-xr-xr-x
). Ini ditentukan dalam fragmen Makefile /usr/share/mk/bsd.own.mk
yang menetapkan BINMODE
ke 555 (kecuali jika sudah ditetapkan). Ini kemudian digunakan ketika menginstal executable selama make build
di /usr/src
.
Saya telah melihat log CVS beranotasi untuk file ini , dan menemukan bahwa baris dalam file ini tidak berubah karena diimpor dari NetBSD pada tahun 1995.
Di NetBSD, file pertama kali dimasukkan ke dalam CVS pada tahun 1993, dengan BINMODE
set ke 555.
Proyek FreeBSD tampaknya telah menggunakan file yang sama persis dengan NetBSD sejak setidaknya tahun 1994 , dan dengan komit kemudian menambahkan petunjuk dalam pesan komit bahwa file lama berasal dari rilis 4.4BSD dari Berkeley Software Distribution.
Di luar itu, CSRG di Berkeley menyimpan sumber-sumbernya di SCCS tetapi repositori mereka tersedia dalam bentuk Git di GitHub 2 . File yang kami berikan perawatan forencic di sini tampaknya telah dilakukan oleh Keith Bostic (atau seseorang yang dekat dengannya) pada tahun 1990.
Jadi itu cerita itu. Jika Anda ingin mengapa , maka saya kira kita harus bertanya kepada Keith. Saya agak berharap melihat pesan komit untuk perubahan yang mengatakan " ini harus 555 karena ... ", tapi tidak.
1 sistem BSD memiliki divisi yang lebih ketat menjadi "sistem dasar" dan "paket pihak ketiga" (port / paket) daripada Linux. Sistem dasar adalah unit yang koheren yang menyediakan lengkap seperangkat fasilitas untuk menjalankan sistem operasi, sedangkan port atau paket dipandang sebagai "software lokal" dan dipasang di bawah /usr/local
.
2 Sebuah repositori GitHub yang lebih komprehensif dari rilis Unix dari tahun 70an dan seterusnya juga tersedia .
root
memiliki izin menulis ke file biner? Jika tidak ada yang lain itu akan membantu ketika meningkatkan paket itu.