Tanpa menggunakan sudo, lebih disukai?
Tanpa menggunakan sudo, lebih disukai?
Jawaban:
Mencoba:
chattr +i filename
Melakukan hal ini, akan membuat file tersebut tidak dapat dihapus bahkan oleh rootpengguna - gunakan dengan hati-hati.
touch test && chattr +i testitu melempar kesalahan; chattr: Operation not permitted while setting flags on test. Anda membutuhkan sudoini. Di samping itu: masih mungkin untuk menghapus file: sudo chattr -i test && rm testberfungsi.
Tidak, ini tidak mungkin. Tidak mungkin bagi pengguna normal untuk menghapus file: tentu.
Anda harus sudomencegah pengguna menghapus file. Administrator Anda akan selalu dapat menghapus file.
sudo chattr +i testdapat mencegah penghapusan tetapi memang membutuhkan sudo. Sederhana sudo chattr -i testmemungkinkan untuk menghapus file. Tidak ada pengguna selain admin yang dapat digunakan chattr.
Dan ... cukup reboot dan masuk ke mode penyelamatan akan memungkinkan orang itu untuk dapat menghapus file itu. Ini akan menjadi risiko keamanan jika ada metode untuk tidak pernah dapat menghapus file.
Agak kasar, tetapi ini dekat - jika Anda menghapus akses tulis pada direktori, file di dalamnya tidak dapat dihapus. Dan itu tidak diperlukan sudojika Anda memilikinya:
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove `test/delme': Permission denied
Jadi, Anda dapat mengatur izin pada file itu sendiri seperti yang Anda inginkan.
Juga, seperti yang dinyatakan oleh @Rinzwind, pasti ada banyak cara untuk mengatasinya.
Untuk menghapus file, Anda harus menulis izin untuk semua direktori yang terhubung dengan file tersebut. Untuk memutuskan tautannya dari satu direktori, Anda perlu izin tulis ke direktori itu.
Jadi, selama Anda memberikan izin menulis (atau bahkan kepemilikan) ke file tetapi tidak ke direktori atau direktori tempat file itu ditautkan, file itu tidak dapat dihapus.
Cara terbaik untuk mencapainya adalah dengan menautkan file itu ke direktori yang dimiliki oleh root dan itu tidak dapat ditulisi oleh siapa pun. Anda dapat menjadikannya milik Anda sebagai gantinya yang berarti Anda dan root dapat menghapusnya.
Itu masih akan memungkinkan pengguna lain untuk menautkan file itu ke direktori lain dan memutusnya setelah itu, tetapi mereka masih tidak dapat menghapus file karena mereka akan dapat memutuskan tautannya dari direktori Anda sendiri.
Perhatikan bahwa agar itu berfungsi sepenuhnya, izin penulisan setiap komponen jalur ke file harus dikontrol. Karena misalnya jika file tersebut adalah /a/b/the-filedan Anda /a/bbelum dapat ditulisi oleh siapa pun tetapi semua orang memiliki akses tulis /a, maka mereka dapat mengubah nama /a/bmenjadi sesuatu yang lain dan membuat ulang milik mereka sendiri /a/bdan membuat milik mereka di /a/b/the-filesana.