GNU/Linux >> Belajar Linux >  >> Linux

(Bagaimana) saya dapat membuat tmpfs sebagai pengguna biasa (non-root)?

Linux menyediakan perangkat tmpfs yang dapat digunakan oleh semua pengguna, /dev/shm . Itu tidak dipasang ke direktori tertentu secara default, tetapi Anda masih dapat menggunakannya sebagai satu.

Cukup buat direktori di /dev/shm dan kemudian menghubungkannya ke mana pun Anda inginkan. Anda dapat memberikan direktori yang dibuat izin apa pun yang Anda pilih, sehingga pengguna lain tidak dapat mengaksesnya.

Ini adalah perangkat yang didukung RAM, jadi apa yang ada di memori secara default. Anda dapat membuat direktori apa pun yang Anda perlukan di dalam /dev/shm

Biasanya, file yang ditempatkan di sini tidak akan bertahan saat reboot, dan jika mesin Anda mulai bertukar, /dev/shm tidak akan membantu Anda.

Solaris sejajar dengan /dev/shm adalah /tmp yang merupakan partisi tipe "swap", dan juga berbasis memori. Seperti /dev/shm , pengguna sewenang-wenang dapat membuat file dalam /tmp di Solaris.

OpenBSD memiliki kemampuan untuk menggunakan mount berbasis memori juga, tetapi tidak tersedia secara default. Perintah mount_mfs tersedia untuk pengguna super.

Saya tidak yakin dengan *BSD lainnya.


/dev/shm tidak cocok untuk rahasia

... pada sistem dengan swap aktif! Peluangnya sangat tinggi komputer Anda telah mengaktifkannya.

Ada yang lebih baik, dijamin sesaat , alternatif standar — ramfs . Anda mungkin ingin menggunakan ramfs jika Anda berencana menggunakan ruang yang didukung RAM untuk sementara menyimpan data sensitif, seperti kunci pribadi, dompet Bitcoin atau Ethereum, dan semacamnya.

ramfs lebih baik dari tmpfs ketika data perlu dirahasiakan, sejak ramfs data tidak pernah ditukar (disimpan ke drive penyimpanan fisik), sedangkan tmpfs mungkin ditukar. Pihak ketiga yang nantinya mendapatkan akses root atau fisik ke mesin kemudian dapat memeriksa ruang swap dan ekstrak data sensitif .

Solusinya

Anda dapat menyiapkan ramfs mount sehingga setiap pengguna yang tidak memiliki hak istimewa dapat memasang/melepasnya sesuai permintaan.

Untuk melakukannya, Anda memerlukan root hak istimewa, sekali . Minta administrator sistem Anda untuk menyiapkan ini untuk Anda, jika Anda tidak memiliki hak akses root.

Pertama, Anda perlu menambahkan baris ke /etc/fstab . Baris di fstab mungkin terlihat seperti ini:

none    /mnt/ramfs    ramfs    noauto,user,size=1024M,mode=0770    0    0
  • /mnt/ramfs adalah titik pemasangan, tempat sistem file ramfs akan dipasang. Direktori harus ada .
  • noauto opsi mencegah ini dipasang secara otomatis (mis. saat booting sistem).
  • user membuat ini dapat dipasang oleh pengguna biasa.
  • size setel ukuran "ramdisk" ini (Anda dapat menggunakan M dan G di sini).
  • mode adalah sangat penting , dengan kode oktal 0770 hanya root dan pengguna, yang memasang sistem file ini, yang akan dapat membaca dan menulis padanya, bukan yang lain (Anda juga dapat menggunakan kode pilihan Anda yang berbeda, tetapi pastikanlah!).

Saat ini selesai, setiap pengguna akan dapat memasang ini sesuai permintaan.

Setelah beberapa pengguna memasang ini, baru 1024 MB ramfs sistem file dibuat dan dipasang di /mnt/ramfs/ . Itu akan dimiliki oleh root:user . Setelah dia melepaskannya, atau sistem di-boot ulang, sistem file berbasis RAM ini akan menghilang dengan semua datanya. Itu keren.

Selain itu, sistem file ini dapat dipasang oleh beberapa pengguna secara mandiri, tetapi tidak pada waktu yang sama , yaitu agar siap dipasang oleh pengguna berikutnya, pengguna sebelumnya harus meng-unmount sistem file ini. Atau Anda dapat membuat sistem file individual untuk setiap pengguna.

untuk memasang:

mount /mnt/ramfs/

untuk melepas:

umount /mnt/ramfs/

P.S. Jika Anda mencoba rsync file ke root ramf yang baru dipasang/dibuat sebagai pengguna non-root, Anda mungkin menghadapi rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1] kesalahan. Ini benar-benar baik dan diharapkan, karena pengguna Anda tidak memiliki root dari sistem file ram. Solusinya sederhana, buat saja beberapa direktori di sana, /mnt/ramfs/copied/ misalnya, dan rsync ke dalamnya.

P.P.S. Diuji pada Debian 9. Cukup yakin ini juga akan berfungsi di Ubuntu.

P.P.P.S. Meskipun jauh lebih aman, penyimpanan berbasis RAM masih rentan untuk beberapa serangan rumit, seperti serangan boot dingin. Jadi, jika Anda benar-benar serius dengan keamanan data Anda, pastikan untuk secara fisik amankan PC/laptop Anda, kunci casing dan stik memori, atau lebih baik lagi, pertimbangkan untuk menggunakan komputer dengan RAM yang disolder langsung ke motherboard (yang berlaku untuk sebagian besar laptop ultraportable tingkat tinggi). Juga pertimbangkan untuk mematikan komputer Anda sepenuhnya jika Anda tidak berniat menggunakannya dalam satu jam ke depan. Bahkan mungkin melangkah lebih jauh dengan menonaktifkan fitur tidur/hibernasi sama sekali.


Sistem Anda mungkin sudah memilikinya; sistem Linux terbaru berdasarkan Glibc selalu memiliki tmpfs yang dipasang di /dev/shm .

Jika sistem Anda tidak memilikinya atau terlalu kecil, maka sistem file yang tidak di-mount oleh root berarti FUSE. Di Ubuntu, Anda harus berada di fuse grup untuk menggunakan FUSE. Melihat melalui sistem file FUSE yang tersedia, saya hanya melihat Ramfuse, yang sayangnya ditinggalkan di hulu.


Linux
  1. Cara Membuat Pengguna Sudo di Debian

  2. Bagaimana cara membuat crontab melalui skrip

  3. (Bagaimana) saya dapat membuat tmpfs sebagai pengguna biasa (non-root)?

  1. Cara membuat pengguna di Linux[Manajemen pengguna]

  2. Bagaimana saya bisa mencari nama pengguna dengan id di linux?

  3. Bagaimana saya bisa membuat pengguna hanya untuk sftp?

  1. Cara membuat Pengguna Linux Menggunakan Ansible

  2. Cara Membuat Pengguna Sudo di Rocky Linux 8

  3. Bagaimana saya bisa menambahkan pengguna biasa ke file sudoers?