Saya telah menemukan perilaku izin mengejutkan (untuk saya) di FreeBSD. Katakanlah saya beroperasi sebagai pengguna non-root . Saya membuat file, menetapkan izin hanya-baca dan kemudian mencoba menulis ke dalamnya:
$ touch f
$ chmod 400 f
$ ls -l f
-r-------- 1 user wheel f
$ echo a >> t
t: Permission denied.
Sejauh ini baik. Sekarang saya melakukan hal yang sama dengan root dan menulis ke dalam file:
# ls -l f2
-r-------- 1 root wheel f2
# echo a >> f2
# echo $?
0
Apakah itu bug atau perilaku yang dimaksudkan? Dapatkah saya dengan aman berasumsi bahwa ini akan berhasil pada Unix & Linux?
files
permissions
root
panah
sumber
sumber
CAP_DAC_OVERRIDE
dapat melakukan ini. Pada hampir semua sistem Linux ini berarti root dapat melakukan ini sehingga disengaja. Tidak dapat berbicara untuk bagian FreeBSD tapi saya membayangkan mereka memiliki pengaturan yang sama.chmod
tidak dapat menulis ke file.touch somefile; chmod 0000 somefile; chmod 0644 somefile
sebagai pengguna biasa.Jawaban:
Itu normal untuk
root
dapat mengesampingkan izin dengan cara ini.Contoh lain adalah
root
bisa membaca file tanpa akses baca:Beberapa sistem memiliki konsep file yang tidak dapat diubah . misalnya di FreeBSD:
Sekarang bahkan
root
tidak dapat menulis ke file. Tapi, tentu saja,root
bisa menghapus bendera:Dengan FreeBSD Anda dapat melangkah lebih jauh dan mengatur flag kernel untuk mencegah
root
penghapusan flag:Sekarang tidak ada, bahkan tidak
root
dapat mengubah file ini.(Sistem perlu mem-boot ulang untuk mengurangi keamanan).
sumber
chattr +i tst
menetapkan atribut yang tidak dapat diubah .Ya, ini sangat normal. root tidak memiliki batasan baca / tulis (dengan sedikit pengecualian), karena ia adalah root.
sumber