Bagaimana cara menghentikan pengguna root dari menghapus file?

8

Saya ingin tahu apakah saya dapat mencegah pengguna root menghapus file. Apa itu mungkin?

Aniruddha
sumber
2
Matikan komputer. Tidak mungkin melakukan apa pun untuk menghentikan ini!
slm
2
Root adalah apa yang di dunia Windows disebut "superadmin", ini adalah akun yang dimaksudkan untuk digunakan secara khusus karena dapat melakukan apa saja yang diinginkan. Bahkan jika Anda mencegah root melakukan sesuatu, maka tidak akan ada cara untuk melakukannya. Orang seharusnya hanya mendapatkan akses root jika tidak ada yang dapat dilakukan dengan izin / acl / setuid / kapabilitas / sudo atau jika melakukannya akan lebih banyak waktu daripada nilainya. Jika Anda khawatir tentang itu, tulis skrip untuk melakukan apa yang mereka butuhkan root dan beri mereka hak sudo untuk skrip itu.
Bratchley
Mengapa Anda ingin melakukan ini?
Nils

Jawaban:

13

Tidak, ini tidak mungkin. Anda dapat mengatur atribut yang tidak dapat diubah dengan chattr +i, yang setidaknya akan membuatnya menjengkelkan dan tidak jelas apa yang harus dilakukan untuk memungkinkan penulisan ke file, tetapi mereka dapat menghapusnya lagi. Juga, sistem file Anda harus mendukung ini, dan mengaktifkan fungsi.

SELinux juga dapat membatasi, tetapi sekali lagi, ini dapat dinonaktifkan.

Solusi yang lebih baik adalah dengan mengontrol pengguna dan program dengan benar dengan membatasi akses mereka, dan tidak membiarkan mereka berjalan sebagai root kecuali benar-benar diperlukan.

Chris Down
sumber
1
Tapi, tentu saja, SELinux dan sejenisnya dapat mencegah root menonaktifkannya. :-)
Hauke ​​Laging
@HaukeLaging Root dapat, melalui berbagai konfigurasi, memodifikasi memori yang berubah-ubah, sehingga semakin menyulitkan setiap penghalang. Bermain kucing dan tikus dengan root tidak benar-benar ada benarnya (tapi ya, secara teori dimungkinkan untuk menghentikan root dari melakukannya).
Chris Down
@ ChrisDown, SELinux tentu saja dapat mengurangi root menjadi "pengguna normal", berdasarkan izin. Ini adalah bagian dari keseluruhan gagasan.
vonbrand
1
@vonbrand Sementara itu mungkin sesuatu yang diinginkan SELinux untuk dilakukan, sulit untuk dilakukan dalam praktiknya. Seperti yang saya katakan, secara teori itu mungkin, tetapi secara praktis tidak mungkin.
Chris Down
@ ChrisDown, sangat mungkin, tetapi sangat un-Unixy, hanya sedikit yang melakukannya. Jari-jari terlalu terbiasa melakukan hal-hal tertentu ... selain itu, masuk akal hanya untuk konfigurasi paranoid yang akhirnya.
vonbrand
6

Seperti yang orang lain katakan, umumnya, ide root adalah pengguna diizinkan untuk membuat mesin melakukan apa pun yang dapat dilakukan mesin. Jadi, tidak ada flag yang mudah yang dapat mencegah root dari sengaja menghapus file ( chattr +idapat mencegah penghapusan tidak disengaja ).

Namun, meskipun demikian, ada beberapa solusi:

  1. Letakkan file di server file, dan konfigurasikan server file untuk tidak mengizinkan penghapusan. Ini berfungsi karena root lokal bukan root pada server file.
  2. Letakkan file di media WORM . Ini berfungsi karena perangkat keras tidak akan memungkinkan ditimpa, sehingga data dilindungi. (Timpa bukanlah sesuatu yang dapat dilakukan mesin.) Pilihan murah adalah CD-R dan DVD-R. Pastikan drive Anda memang tidak dapat menimpa (menghancurkan) bagian yang sudah ditulis. Ada kartu SD WORM juga.
derobert
sumber
0

Tidak.

Setiap pengguna dengan hak "sudo" atau pengguna root dapat melihat dan menghapus semuanya.

Namun dalam sistem yang ideal Anda tidak perlu khawatir tentang itu karena hanya satu pengguna yang memiliki hak istimewa super, dan ia hanya akan menggunakannya hanya jika diperlukan dan selalu responsif.

RSFalcon7
sumber
0

Ini dimungkinkan dalam keadaan yang sangat spesifik:

Anda dapat mencabut USB drive di tempat perubahan terjadi, atau melepaskan kabel ethernet antara komputer dan NAS. Tetapi kemungkinan file tersebut akan rusak atau tidak dapat dijangkau atau keduanya.

Selain tindakan berbasis perangkat keras, Anda mungkin dapat memulihkan file dari cadangan sebelumnya.

mouviciel
sumber