Teman saya terus menghapus file saya menggunakan terminal. Jadi tolong bantu saya dengan menjelaskan cara membuat kata sandi untuk rm
perintah.
command-line
permissions
password
rm
aswin
sumber
sumber
unlink
perintah itu. Juga tentangmv
perintah, karena Anda dapat secara efektif menimpa file dengan itu. Juga ...Jawaban:
Tidak ada cara mudah untuk mengatur kata sandi seperti itu pada
rm
perintah itu sendiri, tidak tanpa banyak peretasan kode yang mungkin akan merusak hal-hal sepertiapt-get
menginstal paket dan menghapus file, dan membuat Anda harus memasukkan kata sandi ribuan kali, atau berpotensi mengganggu akses ke perintah untuk orang-orang yang akan membutuhkannya (seperti Anda, untuk menghapus file Anda sendiri). Anda dapat melakukan hal ini dengan memiliki beberapa akun pengguna dan beberapa set izin akses, dan membatasi akses ke bagian data yang berbeda, seperti direktori home Anda sehingga mereka tidak dapat mengaksesnya.(Opsi lainnya adalah akun pengguna individu untuk setiap pengguna, dan kemudian Access Control Lists, seperti yang dijelaskan dalam jawaban lain yang diposting oleh Videonauth )
Inilah masalah intinya - Anda membiarkan teman Anda menggunakan sistem Anda. Ini memiliki banyak implikasi keamanan - konsep "siapa pun yang memiliki akses fisik ke kotak akan dapat mengendalikan sistem dan melakukan tugas apa pun" adalah Mantra Keamanan TI, itulah sebabnya Anda tidak 'berbagi' akses sistem fisik kecuali dengan personel resmi yang tepercaya.
Satu-satunya cara yang benar-benar waras untuk melakukan ini adalah dengan tidak memberi teman Anda akses ke komputer Anda , dan memberi mereka sistem "Tamu" khusus yang dapat mereka gunakan, bahwa Anda tidak terlalu peduli dengan file-file itu. Ini adalah cara paling 'aman' untuk menjaga file Anda tetap aman.
Tentu saja, jika itu bukan opsi, maka satu-satunya pilihan Anda yang benar-benar aman adalah mengonfigurasi beberapa akun pengguna, satu untuk setiap pengguna, dengan folder rumah yang berbeda, dan tidak membolehkan mereka mengakses direktori home Anda sendiri atau akses ke rumah pengguna lain mana pun direktori. Dan kemudian simpan semua yang Anda tidak ingin mereka sentuh di direktori home Anda, dan jangan beri mereka
sudo
akses,root
kata sandi, atau bagikan kata sandi Anda dengannya.Beginilah cara Anda melakukan ini:
Katakanlah nama saya "Foo" dan saya ingin pengguna "Bar", seorang teman, menggunakan sistem saya tetapi tidak mengakses file saya. Langkah pertama adalah menolak akses ke siapa pun kecuali saya ke direktori rumah saya. Ini untuk memungkinkan pengguna lain untuk tidak menghapus file Anda, tetapi juga untuk mencegah pengguna lain mengintip di direktori home Anda dan melihat jenis barang apa yang Anda punya di direktori home Anda:
Langkah kedua adalah membuat akun pengguna untuk "Bar" (JANGAN ketik apa yang ada dalam tanda kurung di bawah ini, itu hanya untuk tujuan informasi). Dengan cara ini, kita dapat memastikan dia memiliki hak akses yang terpisah:
Langkah ketiga adalah membatasi direktori home mereka sehingga tidak ada yang bisa membongkar file mereka juga. Ini hanya membuat semuanya sama.
Cuci tangan Anda, bilas dengan baik, lalu ulangi langkah-langkah ini untuk berapa banyak pengguna yang Anda miliki di sistem. Mereka tidak akan dapat mengakses file Anda, dan karena Anda tidak akan memberi mereka hak administrator, mereka tidak dapat menghapus file Anda tanpa berusaha
sudo
melakukannya - karena Anda tidak mengizinkan ini, mereka tidak bisa sentuh barang-barang Anda. Dan mereka tidak akan dapat melihat file Anda juga, tanpa menjadi superuser, yang tidak akan terjadi di sini.SELALU INGAT INI: Dengan memberi seseorang akses fisik ke mesin, atau akses secara umum, Anda akan menempatkan file dan data Anda dalam risiko. Ini adalah fakta yang diterima secara luas di dunia Keamanan TI, dan salah satu yang terus berlaku. Memberi teman Anda akses ke komputer Anda akan selalu membahayakan data Anda, jadi berikan mereka sistem mereka sendiri untuk dipusingkan, atau jangan beri mereka akses kemesin Anda .
Hanya catatan tentang enkripsi disk
Sementara enkripsi disk berfungsi baik untuk melindungi data Anda dari pihak ketiga, ada batasannya.
Sementara Enkripsi Disk tidak menyelesaikan masalah ini, itu menempatkan lapisan tambahan sakit kepala untuk aktor ancaman. Seseorang yang jahat mungkin menyerah jika dienkripsi, atau mereka dapat menyiksa Anda (antrian wajib XKCD Security strip komik ).
Karena itu, jika sistem Anda dienkripsi, tetapi Anda membiarkan pengguna lain menggunakannya, apakah mereka memiliki kata sandi untuk didekripsi, atau Anda membiarkan laptop Anda didekripsi sehingga mereka dapat SSH masuk atau memiliki akses fisik. Dalam kedua kasus ini, itu buruk.
Yang mengatakan, jika sistem Anda tidak dienkripsi, maka bagian ini tidak memiliki relevansi untuk Anda.
sumber
apt-get
berjalandpkg
, yang menjalankan skrip yang sering digunakanrm
. Pada kotak Xenial saya,cd /var/lib/dpkg/info; grep -P '\brm\b' *inst
menghasilkan 344 baris , di mana 333 terlihat seperti penggunaan nyata darirm
perintah - hanya dalam skrip instalasi .grep -P '\brm\b' *rm
menunjukkan lebih banyak lagi dalam skrip penghapusan (untuk menghapus file konfigurasi, bukan paket file).Ini mungkin bukan tentang
rm
perintah, karena ada cara mudah untuk menghapus file tanpa menggunakannya . Jika masalahnya adalah bahwa teman Anda secara tidak sengaja menyalahgunakanrm
perintah, maka solusi yang membatasi penggunaan perintah itu secara khusus atau membuatnya bekerja dengan cara yang berbeda mungkin dapat membantu. Sebaliknya, jika masalahnya adalah teman Anda dengan sengaja memperlakukan data Anda dengan cara yang tidak Anda inginkan, maka Anda perlu menerapkan langkah-langkah keamanan yang sebenarnya , dan tidak ada solusi yang berfokus padarm
perintah itu sendiri (atau serangkaian perintah terpisah) akan membuat Anda tetap aman.Apakah Anda perlu mengontrol akses, atau hanya mencegah kesalahan jujur?
Dengan asumsi teman Anda tahu Anda tidak ingin mereka menghapus file Anda, ada dua kemungkinan:
Mereka bisa melakukannya dengan sengaja. Dalam skenario ini, teman-teman Anda dengan sengaja menghapus file Anda, dan Anda bahkan tidak bisa mempercayai mereka untuk mencoba memenuhi keinginan Anda tentang bagaimana mereka memperlakukan data Anda ketika mereka menggunakan komputer Anda. Satu-satunya solusi untuk masalah ini adalah dengan menggunakan langkah-langkah keamanan efektif yang sebenarnya , seperti dijelaskan Thomas Ward secara rinci . Seringkali ukuran terbaik untuk mencegah mereka menggunakan komputer Anda. Tetapi membuat mereka menggunakan akun pengguna mereka sendiri dapat memberikan perlindungan.
Mereka bisa melakukannya secara tidak sengaja. Dalam skenario ini, teman-teman Anda sangat rawan kecelakaan, dan mereka terus menjalankan
rm
perintah yang mereka inginkan. Mereka ingin memperlakukan Anda dan data Anda dengan hormat, tetapi benar-benar buruk melakukannya dalam praktik karena mereka terus menjalankan perintah yang salah, menghapus file yang salah ... atau sesuatu seperti itu. Meskipun akan lebih baik untuk percaya bahwa inilah yang terjadi, saya memperingatkan Anda untuk tidak berasumsi bahwa orang-orang yang terus menghapus data Anda setelah Anda mengatakan kepada mereka untuk berhenti beroperasi tanpa niat buruk.Selain itu, meskipun niatnya baik, memberi mereka akun pengguna yang terpisah masih merupakan cara yang paling mudah mencegah mereka menghapus file Anda, selain tidak mengizinkan mereka menggunakan komputer Anda.
Jika situasinya benar-benar # 2 - teman Anda tidak mencoba untuk menghapus file Anda tetapi hanya perlu bantuan untuk tidak menghapusnya secara tidak sengaja , dan satu-satunya cara mereka secara tidak sengaja menghapusnya adalah melalui penyalahgunaan sejumlah kecil perintah secara tidak sengaja (seperti
rm
) bahwa mereka memiliki masalah menggunakan dengan benar - maka teknik dalam jawaban Videonauth mungkin berguna. Tapi Anda harus memahami bahwa mereka tidak langkah-langkah keamanan, karena iturm
perintah hanyalah salah satu dari banyak cara mudah untuk menghapus file . Lihat di bawah untuk detailnya.Saya sarankan Anda bertanya pada diri sendiri, "Apakah situasi saya pada dasarnya sama seperti jika saya, daripada orang lain yang menggunakan komputer saya, apakah yang menggunakan
rm
salah?"Jika jawabannya tidak , maka ini adalah masalah keamanan informasi, dan Anda perlu mencegah teman Anda menggunakan akun pengguna Anda. Jika jawabannya adalah ya , maka Anda dapat menggunakan pendekatan yang sama Anda akan menggunakan jika Anda adalah orang menyalahgunakan
rm
:rm file
file
Tetapi bahkan jika teman Anda tidak mencoba melakukan kesalahan, Anda tetap harus mempertimbangkan mereka menggunakan akun pengguna mereka sendiri yang terpisah . Ini masih akan memecahkan masalah - langkah-langkah keamanan yang sama yang melindungi data dari kehancuran yang disengaja akan melindunginya dari kerusakan yang tidak disengaja juga. Bahkan tanpa niat jahat, jika seseorang terus melakukan sesuatu yang Anda tidak ingin mereka lakukan, maka Anda tidak dapat mempercayai mereka untuk menahan diri dari melakukan hal itu.
Membuat
rm
prompt sebelum penghapusan dapat membantu mencegah beberapa kesalahan.Untuk membantu orang menghindari tidak sengaja menghapus file dengan
rm
, Anda dapat membuatrm
sebuah alias shell yang benar-benar berjalanrm -i
. Melewati-i
bendera untukrm
menyebabkannya meminta pengguna sebelum menghapus setiap file (lihatman rm
).Anda dapat melakukan ini (untuk akun pengguna Anda) dengan menambahkan
alias rm='rm -i'
ke.bash_aliases
atau.bashrc
file Anda. Lihat pertanyaan ini dan yang itu untuk detailnya. Ini akan berlaku untuk bash shell yang baru saja dibuka.Ini tidak memberikan keamanan yang sebenarnya , dan juga tidak mudah untuk mencegah kesalahan, karena:
/bin/rm
atau membatalkannya (unalias rm
).rm
ini tidak akan berjalan dengan-i
.rm
(seperti halnya dengan pendekatan Videonauth - lihat di bawah).Tetapi jika Anda tidak membutuhkan keamanan yang sebenarnya (lihat di atas), maka ini mungkin jalan yang harus ditempuh. Sebagai perbandingan dengan pendekatan untuk mencegah teman Anda menggunakan
rm
perintah yang disediakan sistem :Mengasingkan diri
rm
menjadirm -i
kurang efektif dalam mencegah kesalahan - sampai mereka beralih menggunakan beberapa teknik lain untuk menghapus file. Pada saat itu, menjaga mereka dari menggunakanrm
akan sepenuhnya tidak efektif, bahkan jika mereka tidak berusaha melakukan kesalahan, karena mungkin mereka akan menggunakanunlink
(atau perintah lain yang tak terhitung jumlahnya yang menghapus file) dengan kesembronoan yang sama.Di sisi lain, karena ekspansi alias hanya terjadi dalam beberapa situasi - secara kasar, penggunaan shell biasa yang interaktif - teman Anda mungkin berpikir mereka akan diminta ketika mereka tidak benar-benar diminta (karena perintahnya ada di skrip, misalnya, atau dikeluarkan dari shell yang berbeda). Cara Videonauth tidak memiliki masalah ini, yang merupakan keunggulan obyektif dari metode itu
alias rm='rm -i'
.Saat skrip berjalan, kecuali jika ditulis dengan sengaja untuk menggunakan alias, alias Anda tidak diperluas di dalamnya. Ini berarti bahwa aliasing
rm
untukrm -i
sangat tidak mungkin untuk memecahkan apa pun. Ini adalah keuntungan obyektif darialias rm='rm -i'
.rm
tidak dapat melakukan apapun yang tidak bisa dilakukan oleh program biasa lainnya.Tidak ada yang spesial dari ini
rm
. Ini adalah cara mudah dan mendokumentasikan diri sendiri untuk menghapus file, jadi membatasi akses ke sana berisiko melanggar banyak skrip yang bergantung padanya. Tapi itu jauh dari satu-satunya cara untuk menghapus file - itu hanya program biasa.Beberapa perintah melakukan beberapa tugas yang tidak dapat dilakukan oleh pengguna terbatas (non- root ) tanpa menjalankannya. Misalnya,
sudo
memungkinkan Anda menjalankan program sebagai pengguna lain, setelah memeriksa untuk memastikan Anda diizinkan melakukannya.passwd
mengedit database tempat kata sandi pengguna disimpan, tetapi hanya memungkinkan Anda mengubah kata sandi Anda sendiri (kecuali jika Anda root, dalam hal ini Anda dapat mengubah kata sandi siapa pun)./usr/bin/sudo
dan/usr/bin/passwd
dapat melakukannya karena mereka memiliki set bit setuid , seperti yang ditunjukkan olehs
yang muncul di kolom paling kiri ketika Anda menjalankanls -l
:Perhatikan bahwa
/bin/rm
tidak adas
: izinnya adalah-rwxr-xr-x
, sementara/usr/bin/passwd
dan sebaliknya/usr/bin/so
memiliki-rwsr-xr-x
. Ini membuatnya sehingga, tidak peduli siapa yang menjalankanpasswd
atausudo
, itu benar-benar berjalan sebagai pengguna root, karena root adalah pemilik yang dapat dieksekusi. (Ada juga bit setgid, yang, ketika diatur, menyebabkan executable dijalankan dengan identitas grup pemilik grup mereka daripada identitas pemanggil.)Kecuali untuk setiap kerentanan keamanan yang belum ditemukan (atau yang telah ditemukan tetapi belum ditambal),
sudo
danpasswd
aman karena utilitas tersebut ditulis dengan sangat hati-hati sehingga mereka hanya dapat melakukan hal-hal yang harus diizinkan oleh penelepon. melakukan./bin/rm
tidak bekerja seperti ini. Itu tidak setuid karena tidak perlu. Izin direktori (dan kadang - kadang izin file ) mengontrol file apa yang dapat dihapus pengguna, dan mereka tidak perlu menjadi root untuk melakukannya. Untuk menjadi sangat jelas, tolong jangan pernah mengatur bit setuidrm
. Implikasi keamanan akan menjadi bencana, sejak itu, tidak peduli siapa yang menjalankanrm
, seolah-olah root menjalankannya! (Utilitas menyukaisudo
danpasswd
memeriksa siapa yang benar-benar menjalankannya dan memeriksa apakah ada sesuatu yang diizinkan sebelum melakukannya;rm
tidak ada yang seperti itu.)Memeriksa apakah bit setuid (atau setgid) diset pada executable akan memberi tahu Anda jika membatasi siapa yang menjalankannya, ada peluang meningkatkan keamanan. Executable yang bukan setuid (atau setgid) tidak memiliki status khusus, dan siapa saja dapat menyalinnya dan menjalankan salinannya, membawa salinannya sendiri dari komputer lain, menulis skrip atau program yang melakukan hal yang sama, atau menggunakan program lain untuk melakukannya.
Menghapus File Tanpa
rm
Cara yang jelas untuk menghapus file tanpa
rm
di Ubuntu adalah menavigasi ke lokasinya di browser file grafis (Nautilus, jika Anda menggunakan Unity atau GNOME Shell) dan hapus file tersebut. Ada juga banyak perintah yang dapat digunakan untuk menghapus file dari terminal, tanpa pernah menggunakanrm
.Misalnya, untuk menghapus file yang disebut
foo.txt
di direktori saat ini, perintah berikut ini, yang berfungsi di luar kotak pada Ubuntu dan tidak memerlukan aksesrm
, akan mencapainya. (Hanya untuk memastikan, saya mengujinya pada sistem minimal 16,04 yang diinstal hanya dengan utilitas sistem standar, setelah dihapus/bin/rm
.)unlink foo.txt
busybox rm foo.txt
perl -e 'unlink("foo.txt")'
python3 -c 'import os; os.remove("foo.txt")'
(python
bukanpython3
dalam rilis yang lebih lama)Daftar itu, tentu saja, tidak lengkap. Tidak ada daftar lengkap dari perintah tersebut yang mungkin. Mencegah penghapusan file adalah salah satu hal yang terpisah dari akun pengguna dan izin file dan direktori untuk dicapai. Mereka bekerja sangat baik untuk mencegahnya. Sebaliknya, mengubah
rm
perintah (untuk membuatnya memerlukan kata sandi, atau dengan cara lain) atau membatasi akses untukrm
tidak mencegahnya sama sekali.sumber
rm
's-I
pilihan. Ini hanya meminta untuk menghapus 4 file atau lebih, atau untuk menghapus secara rekursif. Jadi Anda tidak terbiasa untuk selalu menggunakan-f
,\rm
untuk menghindari ekspansi alias, atau mengetiky
tanpa membaca. Tapi itu masih akan menyelamatkan Anda dari kesalahan ketik yang buruk di mana Anda menekan kembali sebelum Anda bermaksud, atau glob Anda cocok dengan banyak file.mv foo.txt /tmp/.gone
lalu reboot, abaikan tmpfs yang tadi di-backing/tmp
. Atau cukup gunakanmv
untuk mengubah nama banyak file menjadi nama yang sama, jadi hanya yang terakhir yang tersisa. Atau hanya menyembunyikan file dengan mengganti nama mereka dengan nama yang tidak jelas. Seperti yang ditunjukkan oleh bagian pertama dari jawaban ini, jika Anda berusaha untuk mempertahankan terhadap kebencian daripada ketidakmampuan, Anda hanya perlu mengunci orang dari akun Anda.Anda dapat mengubah izin pada
/bin/rm
perintah melalui baris berikut yang akan mencegahnya dieksekusi tanpa akses sudo:Ini secara khusus mencegah mereka dari menggunakan
rm
perintah yang disediakan oleh sistem. Anda harus menyadari bahwa itu tidak mencegah mereka menghapus file dengan cara lain.Untuk mencegah mereka menggunakan
rmdir
perintah, yang merupakan cara umum untuk menghapus direktori, Anda dapat mengatur izin dengan cara yang sama di jalur yang dapat dieksekusi:Ingatkan juga bahwa Anda hanya dapat menggunakan perintah ini dengan hak sudo juga.
Untuk mengubahnya kembali jika Anda tidak menyukainya atau terjadi masalah lain gunakan
755
untukchmod
Seperti @muru tunjukkan di atas adalah solusi yang sangat kasar dan bahkan mungkin merusak layanan sistem yang tidak berjalan pada akun root . Oleh karena itu saya menambahkan di sini opsi lain menggunakan ACL (daftar kontrol akses) untuk melakukan hal yang sama dan mungkin jauh lebih aman ( baik untuk dibaca juga dan Anda dapat melewatkan bagian yang mengaktifkan karena ACL biasanya diinstal pada sistem Ubuntu saat ini):
Jadi untuk melakukan hal yang sama seperti di atas hanya untuk pengguna yang ingin Anda blokir
Ganti saja
<user-name>
dengan nama pengguna yang sebenarnya yang ingin Anda hindari menggunakan file.Seperti halnya
chmod
, menggunakansetfacl -m
untuk mencegah pengguna tertentu dari menjalankanrm
danrmdir
berlaku untuk perintah yang diberikan sistem saja. Itu tidak mencegah mereka menghapus file dan folder Anda di Nautilus atau dengan menggunakan perintah terminal lainnya.Penjelasan:
-m
berarti untuk memodifikasi file ACL.u
singkatan dari pengguna. Ini dapat memiliki nilai berikutu
untuk pengguna,g
untuk grup dano
untuk semua yang lainnya<user-name>
dapat menyimpan nama pengguna yang sebenarnya atau nama grup sesuai dengan apa yang ingin Anda ubah. Untuk mengatur perubahan keseluruhan Anda membiarkannya kosong.-
, juga dapat berisi surat-surat berikutr
untuk izin baca,w
untuk izin menulis danx
untuk eksekusi.sumber
sudo setfacl -m u:<username>:- /bin/rm /bin/rmdir
, IIRC. Anda dapat menguji ACL dengangetfacl /bin/rm /bin/rmdir
rm
. Solusi yang diberikan Videonauth di sini adalah cara yang mungkin untuk membantu pengguna yang rawan kecelakaan berhenti menghapus hal-hal, tetapi itu tidak memberikan keamanan yang sebenarnya (yang mungkin baik-baik saja, jika teman-teman OP tidak sengaja mencoba untuk menumbangkan keinginan OP) . Videonauth: Saya sarankan untuk mengedit posting ini sehingga secara jelas mengklarifikasi bahwa itu tidak benar-benar mencegah orang menghapus file karena mereka tidak memerlukanrm
perintah untuk melakukannya. (Saya menahan diri untuk tidak mengeditnya sendiri, kalau-kalau Anda tidak ingin mengatakan itu.)rm
perintah.Ini adalah jawaban yang sangat sederhana dan akan menghentikan seseorang dengan santai menggunakan perintah rm tanpa memberikan kata sandi. Ini bukan solusi yang aman dan Anda harus memberi beberapa saran alternatif dalam jawaban lain.
Namun, Anda bisa menggunakan alias untuk mengubah cara berperilaku perintah rm. Mencoba:
alias rm="sudo -l >/dev/null && rm"
Apa yang dilakukan adalah ketika seseorang memasuki perintah rm, ia menjalankan perintah sudo -l. Perintah ini memaksa pengguna untuk memasukkan kata sandi mereka. Jika mereka melakukannya dengan benar, itu mencantumkan hak istimewa mereka (kami membuang output ini) dan keluar dengan status 0, jika mereka salah, itu ada dengan kesalahan.
Kami kemudian mengikuti perintah sudo dengan "&&", yang keluar dari perintah berikut - dalam hal ini "rm" hanya jika perintah sebelumnya keluar dengan status 0 - yaitu mereka mendapatkan kata sandi yang benar.
Untuk membuat ini permanen, masukkan perintah alias di
~/.bashrc
.Perhatikan bahwa ini sangat mudah dikalahkan (misalnya, mereka cukup mengetik
/bin/rm
.sumber
Terkadang itu bukan teman kita, kita adalah musuh terburuk kita sendiri
Saya telah menulis skrip untuk melindungi kata sandi
rm
seperti OP yang diminta tetapi juga mengedit agar Anda tidak menghapus:Sunting: 5 Mar 2017 - Ubah metode pemeriksaan jika berjalan di terminal.
Buat skrip
Gunakan
gksu gedit /usr/local/bin/rm
dan salin di baris ini:Ubah kata sandi "WE2U" menjadi apa pun yang Anda suka dan simpan file tersebut.
Tandai
rm
skrip baru sebagai executableTandai
rm
skrip baru sebagai yang dapat dieksekusi menggunakan:Bagaimana itu bekerja
Kecuali jika kata sandinya adalah WE2U , saat pertama kali Anda menjalankan skrip Anda akan mendapatkan "kata sandi tidak valid" dan kunci enkripsi untuk kata sandi yang Anda masukkan ditampilkan. Salin dan tempel kunci enkripsi ini dari terminal ke skrip. Kemudian komentari baris dengan gema yang menampilkan kunci enkripsi pada terminal.
Karena path
/usr/local/bin
lebih tinggi dalam daftar daripada/bin
perintah kamirm
dipanggil. Setelah mendapatkan kata sandi yang valid, itu panggilan/bin/rm
untuk melakukan penghapusan nyata.Seperti yang ditunjukkan Thomas Ward dalam jawaban lain, jika Anda ingin melakukannya,
sudo apt-get install ...
Anda dapat diminta kata sandi ribuan kali. Script memeriksa apakahsudo
digunakan dan tidak meminta kata sandi. Selanjutnya jikarm
dipanggil dari dalam aplikasi GUI tidak ada kata sandi yang diperlukan.Skrip panggilan
logger
untuk merekam setiap kalirm
secara manual dipanggil menggunakan terminal. Penggunaan perintah dicatat/var/log/syslog
.sumber
Alternatif lain adalah membuat salinan cadangan dari semua file penting dalam direktori yang tidak dapat diakses oleh pengguna non-root. Anda dapat menggunakan
rsync
atauunison
untuk menyinkronkannya secara otomatis, pastikan setidaknya satu direktori di jalur ke tujuan cadangan dimiliki oleh root dan mode 700. Ini akan menghasilkan dua salinan dari semua file. Akan lebih aman untuk hanya membuat pengguna tamu untuk mereka gunakan, kecuali Anda harus ingat untuk selalu mengunci atau logout sebelum memberi mereka komputer atau meninggalkannya tanpa pengawasan.sumber
Bukan jawaban langsung untuk pertanyaan yang Anda cari tetapi:
Jika teman Anda menghapus file Anda menggunakan
rm
perintah maka salah satu teman Anda tidak kompeten, tersentak, atau mereka adalah wannabes BOFH yang mencoba mengajarkan Anda untuk tidak membiarkan sesi Anda masuk dan tidak diawasi. Dalam semua kasus, solusinya sama: jangan biarkan sesi Anda masuk dan tidak dijaga .Ini memiliki keuntungan karena tidak perlu mengingat untuk membuat perubahan khusus pada sistem setiap kali Anda memutakhirkan atau mendapatkan sistem baru, dan juga mencegah skrip dan hal-hal lain yang Anda gunakan yang bergantung pada perintah yang berperilaku seperti yang diharapkan dari kegagalan dengan cara yang tidak terduga.
Ini juga memiliki keuntungan menghentikan "teman" dari pindah ke langkah berikutnya. Apakah Anda juga ingin "melindungi kata sandi"
mv
perintah jika mereka memutuskan untuk memindahkan file Anda ke / dev / null ketika mereka mengetahui bahwa penghapusan sederhana tidak melakukan apa yang mereka inginkan? Saat Anda berada dalam permainan seperti ini, satu-satunya langkah yang menang bukanlah bermain.sumber
Saya memiliki kemungkinan serupa yang saya rencanakan. Di server file, jika penyimpanan utama foto dapat ditulis sehingga seseorang dalam keluarga (kurang teknis atau tidak sengaja) dapat menghapus sesuatu, secara tidak sengaja menyeret gui yang memindahkan direktori, atau menimpa dokumen asli dengan versi yang diedit alih-alih mengubah nama. .
Saya menyadari bahwa saya dapat melindungi itu tanpa membuat izin tidak dapat dituliskan untuk semua orang. ZFS membuat snapshot berkala sehingga penghapusan atau penimpaan yang tidak disengaja dapat dibalik. (Tidak seperti cadangan, snapshot ringan dan copy-on-write sehingga tidak menggandakan penggunaan penyimpanan Anda.)
ZFS asli untuk FreeBSD. Linux memiliki btrf yang juga memiliki snapshot.
sumber
Solusi yang sangat konyol untuk masalah yang sangat konyol.
Jika Anda tidak ingin
chmod
rm
,rmdir
ataumv
(untukmv filename /dev/null
) atau penggunaan ACL, Anda bisa membuat user boneka dengan tidak ada password, tetapi Anda tahu dan alias setiap perintah untuksudo [user]
, dan kemudian membuat alias untuk setiap perintah yang teman-teman Anda tidak tahu . Dengan cara ini, ketika teman Anda mengetikrm
sistem akan meminta mereka untuk kata sandi (tetapi menebak kata sandi yang salah akan mencatat upaya yang gagal), dan Anda masih bisa mengetikrmalias
atau apa pun yang Anda pilih untuk benar-benar menghapus file.Atau Anda bisa membuat akun tamu yang tidak memiliki akses ke direktori rumah Anda.
sumber
sudo [user]
dandummy user
Jika Anda ingin melindungi kata sandi rm, solusinya adalah membuat pembungkus untuk rm yang memerlukan hak akses root, dan meminta kata sandi sebaliknya. (CATATAN: Pembungkus ini dapat hilang ketika paket coreutils diperbarui atau diinstal ulang.) Juga, harap dicatat ini hanya mengamankan rm, masih ada banyak, banyak cara lain untuk menghapus file.
Buka terminal dan menjadi root. Kemudian jalankan
sudo mv /bin/rm /bin/rmold
untuk memindahkan rm lama ke tempat lain.Sekarang jalankan
sudo nano /bin/rm
untuk membuat pembungkus.Di Nano, ketikkan yang berikut ini:
Kemudian tahan
CTRL
, dan tekanX
untuk keluar. TekanY
saat Anda diminta, lalu tekanENTER
untuk menyimpan file.Akhirnya, kita perlu memberikan ini izin yang sesuai:
Dan begitulah.
sumber
$@
=>"$@"
. Di sini, yang Anda usulkan adalah versi asli dan aman yang sangat berbahayarm
: bagaimana jika ada file bernamafoo -i -r *
(-i
ditambahkan untuk melindungi pengguna yang tidak bersalah)?"
mengutip$@
seperti @xhienne katakan, saya mendorong Anda untuk memperingatkan pembaca dengan jelas bahwa ini tidak memberikan keamanan sama sekali karena ada banyak cara untuk menghapus file. Pertama adalah meneleponrmold
, tetapi ada banyak cara lain, seperti dibahas dalam jawaban dan komentar lain tentang mereka. (Bahkan kemudian, ini akan memiliki masalah yangrm
akan terasa seperti menghapus file sebagai pengguna saat ini - itu disebut tanpasudo
, danrm
berjalan normal sebagai penelepon - tetapi melakukannya sebagai root! Jika mereka baru sajasudo
mengedit, mereka menang ' t perhatikan mereka mungkin menghapus file sistem bahkan jika mereka tahu tentang perubahan itu.)