Pertanyaan Apakah mungkin membuat file yang memiliki izin penuh untuk semua orang tetapi tidak mungkin dihapus?


Tanpa menggunakan sudo, sebaiknya?


15
2018-02-25 17:52


asal


@ user135564 Terima kasih. - Evan
Tuhan, root, apa bedanya? ars.userfriendly.org/cartoons/?id=19981111     Sebagai masalah praktis, file yang bahkan tidak bisa dihapus oleh root akan menjadi mimpi pembuat malware. - Dan Neely
Saya setuju @DanNeely Plus memformat adalah bentuk menghapus file juga;) - Rinzwind


Jawaban:


Mencoba:

chattr +i filename

Namun melakukan hal ini, akan membuat file tidak dapat dibatalkan bahkan oleh root pengguna - gunakan dengan hati-hati.


3
2018-02-25 18:28



saat melakukan touch test && chattr +i test itu melempar kesalahan; chattr: Operation not permitted while setting flags on test. Anda butuh sudo untuk ini. Di samping itu: masih mungkin untuk menghapus file: sudo chattr -i test && rm test bekerja. - Rinzwind


Tidak, ini tidak mungkin. Mustahil bagi pengguna normal untuk menghapus file: yakin.

  1. Anda akan perlu sudo untuk mencegah pengguna menghapus file. Administrator Anda akan selalu dapat menghapus file.

  2. sudo chattr +i test dapat mencegah penghapusan tetapi membutuhkan sudo. Sederhana sudo chattr -i test memungkinkan untuk menghapus file. Tidak ada pengguna lain selain admin yang dapat digunakan chattr.

Dan ... cukup me-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.


23
2018-02-25 18:58





Ini sedikit kasar, tapi ini sudah dekat - jika Anda menghapus akses tulis pada direktori, file di dalamnya tidak dapat dihapus. Dan itu tidak membutuhkan sudo jika 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, bagaimanapun yang Anda inginkan.

Juga, sebagaimana dinyatakan oleh @Rinzwind, pasti ada banyak cara di sekitarnya.


8
2018-02-25 22:43



Ini persis seperti yang diinginkan OP. (Meskipun Mengapa mereka menginginkannya, saya tidak yakin.) Pengguna dapat membaca, mengubah, dan menjalankan file, tetapi tidak dapat membatalkan tautan (menghapus) mereka. - Eliah Kagan


Untuk menghapus file, Anda perlu izin menulis ke semua direktori yang ditautkan dengan file tersebut. Untuk memutus tautannya dari satu direktori, Anda perlu izin menulis ke direktori itu.

Jadi selama Anda memberikan izin menulis (atau bahkan kepemilikan) ke file tetapi tidak ke direktori atau direktori file itu ditautkan, file itu tidak bisa 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 bisa membuatnya dimiliki oleh Anda sebagai gantinya yang berarti Anda dan root dapat menghapusnya.

Itu akan tetap memungkinkan pengguna lain untuk menautkan file itu ke direktori lain dan memutus tautannya dari sana setelahnya, tetapi mereka masih tidak dapat menghapus file karena mereka dapat membatalkan tautannya dari direktori Anda sendiri.

Perhatikan bahwa untuk bekerja sepenuhnya, izin penulisan dari setiap komponen path ke file harus dikontrol. Karena misalnya jika file tersebut /a/b/the-file dan kamu punya /a/b tidak dapat ditulisi oleh siapa pun tetapi setiap orang memiliki akses tulis /a, maka mereka dapat mengganti nama /a/b untuk sesuatu yang lain dan menciptakan sendiri /a/b dan membuatnya sendiri /a/b/the-file sana.


8
2018-02-25 22:57