Saya baru saja memperhatikan pada mesin Ubuntu saya (filesystem ext3) bahwa menghapus izin menulis dari suatu file tidak membuat root tidak dapat menulisnya.
Apakah ini aturan umum izin file UNIX? Atau spesifik untuk Ubuntu? Atau kesalahan konfigurasi pada mesin saya?
# touch abc # chmod ugo-w abc # python Python 2.6.4 (r264: 75706, 7 Des 2009, 18:45:15) [GCC 4.4.1] di linux2 Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut. >>> terbuka ('abc', 'w'). write ('AAA \ n') >>> # cat abc AAA
Menulis ke file gagal (seperti yang diharapkan) jika saya melakukan ini dari akun pengguna normal saya.
Apakah ini perilaku normal?
Apakah ada cara untuk mencegah root agar tidak sengaja menulis ke file? (Lebih disukai menggunakan mekanisme sistem file normal, bukan AppArmor, dll.)
Tolong ajari saya tentang sesuatu yang saya pasti tidak mengerti.
CATATAN: Saya mengerti bahwa root memiliki kontrol total atas sistem dan dapat, misalnya, mengubah izin pada file apa pun. Pertanyaan saya adalah apakah izin yang ditetapkan saat ini diberlakukan pada kode yang berjalan sebagai root . Idenya adalah pengguna root yang mencegah dirinya sendiri untuk tidak sengaja menulis ke file.
CATATAN: Saya juga mengerti bahwa seseorang tidak boleh login sebagai root untuk operasi normal. Saya baru saja memperhatikan perilaku ini dan bertanya kepada Anda tentang hal itu.
sumber
chattr
. apakah ada cara mode pengguna untuk mengatur atribut seperti itu?root
melindungi file dengan sangat baik bahkan Dia tidak bisa menghapusnya"!CAP_DAC_OVERRIDE
kemampuan yang memungkinkannya untuk mengabaikan ACL dan izin.sudo chflags <s|u>chg <file>
untuk membuatnya tidak berubah untuk sistem atau pengguna, masing-masing, dansudo chflags no<s|u>chg <file>
untuk tidak mengaktifkan bendera abadi untuk masing-masing sistem atau pengguna.Ya, ini normal. Akar adalah tuhan.
Ya, ada beberapa cara untuk mencegah root menimpa file.
chattr
(+i
set,-i
unsets). Membutuhkan akses root, hanya berfungsi pada ext2 / ext3 (mungkin juga ext4), tetapi jika tidak praktis.sudo
untuk mengakses fungsi sistem.Metode-metode ini mengikuti secara logis dari # 1. Seperti yang Anda lihat, dua metode terakhir umumnya tidak berguna, dengan cara yang sama bahwa melindungi Windows terhadap virus dengan mencabut jaringan biasanya tidak berguna. Inilah sebabnya mengapa root berbahaya. [+]
[*] Dengan mengabaikan kemungkinan "tidak sengaja" menulis langsung ke perangkat blok, tentu saja. Ya, root dapat melakukannya. Ya, Anda dapat mencegahnya: putuskan sambungan perangkat.
[+] Di sinilah asal mula mitos BOfH itu. Itu tidak semua mitos.
sumber
Anda juga dapat membatasi akses file untuk pengguna root, dengan menggunakan kernel Linux "Capabilities": http://www.securityfocus.com/infocus/1400
Ada juga kemungkinan menggunakan SE-Linux atau patch kernel lainnya untuk membuat beberapa file tidak dapat diubah bahkan untuk di-root.
sumber
Saya pikir selama root adalah superuser, dan dia bisa melakukan apa saja, Anda tidak dapat menghapus izin apa pun darinya, juga jika Anda adalah root. Seharusnya kehendak root untuk mencegah dirinya melakukan atau tidak operasi (seperti menulis ke dalam file, atau membuka aplikasi).
Jadi tidak, kemungkinan Anda hanya akan menonaktifkan akun root, untuk mencegah penggunaan yang buruk.
Salam
[catatan untuk diri sendiri: kamu akan rendah hati ... mungkin kamu salah]
sumber