Distribusi adalah server Ubuntu yang menjalankan kernel Linux 2.6.35-30.
Saya ingin memiliki direktori yang sepenuhnya berada di memori. Apakah ini mungkin tanpa hak root?
sumber
Distribusi adalah server Ubuntu yang menjalankan kernel Linux 2.6.35-30.
Saya ingin memiliki direktori yang sepenuhnya berada di memori. Apakah ini mungkin tanpa hak root?
Linux menyediakan perangkat tmpfs yang dapat digunakan oleh setiap pengguna /dev/shm
,. Ini tidak dipasang ke direktori tertentu secara default, tetapi Anda masih dapat menggunakannya sebagai satu.
Cukup buat direktori di /dev/shm
dan kemudian symlink 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 yang Anda butuhkan di dalamnya/dev/shm
Biasanya, file yang ditempatkan di sini tidak akan selamat dari reboot, dan jika mesin Anda mulai bertukar, /dev/shm
tidak akan membantu Anda.
Solaris sejajar dengan /dev/shm
yaitu /tmp
yang merupakan "Swap" tipe partisi, dan juga memori berbasis. Seperti halnya /dev/shm
, pengguna sewenang-wenang dapat membuat file di /tmp
Solaris.
OpenBSD memiliki kemampuan untuk menggunakan mount berbasis memori juga, tetapi tidak memilikinya secara default. Perintah mount_mfs tersedia untuk pengguna super.
Saya tidak yakin tentang * BSD lainnya.
/dev/tmpfs
pada sistem (juga sistem saya sendiri yang memiliki kernel 3.0.0). Apakah Anda yakin itu bukan sesuatu yang dibuat oleh distribusi Anda?/run
dan mungkin/run/shm
perlu menyelidiki lebih lanjut sebelum memperbarui jawaban saya./ dev / shm tidak aman
... pada sistem dengan swap aktif ! Peluangnya sangat tinggi untuk mengaktifkan komputer Anda.
Ada alternatif yang lebih baik, aman , standar -
ramfs
. Anda mungkin ingin menggunakanramfs
jika Anda berencana untuk menggunakan ruang yang didukung RAM untuk menyimpan data sensitif sementara , seperti kunci pribadi, dompet Bitcoin atau Ethereum dan semacamnya.ramfs
lebih baik daripadatmpfs
ketika keamanan terkait, karenaramfs
data tidak pernah ditukar (disimpan ke drive penyimpanan fisik), sementaratmpfs
mungkin ditukar. Pihak ketiga kemudian dapat memeriksa ruang swap dan mengekstrak data sensitif .Solusinya
Anda dapat menyiapkan
ramfs
pemasangan sehingga pengguna yang tidak memiliki hak istimewa dapat memasang / melepas pemasangan sesuai permintaan.Untuk melakukan ini, Anda perlu root privilege, sekali . Mintalah administrator sistem Anda untuk mengatur ini untuk Anda, jika Anda tidak memiliki hak root.
Pada awalnya, Anda perlu menambahkan baris ke
/etc/fstab
. Baris di fstab mungkin terlihat seperti ini:/mnt/ramfs
adalah titik mount, di mana sistem file ramfs akan dipasang. Direktori harus ada.noauto
Opsi mencegah ini tidak dipasang secara otomatis (misalnya saat boot sistem).user
membuat ini dapat dipasang oleh pengguna biasa.size
setel ukuran "ramdisk" ini (bisa Anda gunakanM
dan diG
sini).mode
adalah sangat penting , dengan kode oktal0770
hanya root dan user, yang dipasang filesystem ini, akan dapat membaca dan menulis untuk itu, bukan yang lain (Anda dapat menggunakan kode yang berbeda pilihan Anda juga, tapi sangat yakin tentang hal itu! ).Ketika ini selesai, setiap pengguna akan dapat me-mount ini sesuai permintaan.
Setelah beberapa pengguna memasang ini,
ramfs
sistem file 1024 MB baru dibuat dan dipasang di/mnt/ramfs/
. Ini akan dimiliki olehroot:user
. Setelah dia melepasnya, atau sistem reboot, sistem file berbasis RAM ini akan lenyap dengan semua datanya. Itu keren.Selain itu, sistem file ini dapat dipasang oleh beberapa pengguna secara independen, tetapi tidak pada saat yang sama , yaitu agar siap untuk dipasang oleh pengguna berikutnya, pengguna sebelumnya harus meng-unmount sistem file ini.
untuk memasang:
untuk melepas:
PS Jika Anda mencoba
rsync
file ke root ramf yang baru dipasang / dibuat sebagai pengguna non-root, Anda mungkin menghadapirsync 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, cukup buat beberapa direktori di sana,/mnt/ramfs/copied/
misalnya, danrsync
masuk ke dalamnya.PPS Diuji pada Debian 9. Cukup yakin itu akan bekerja di Ubuntu juga.
sumber
Sistem Anda mungkin sudah memiliki satu; sistem Linux terbaru berbasis Glibc selalu memiliki tmpfs yang terpasang
/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 dalam
fuse
grup untuk menggunakan FUSE. Melihat melalui filesystem FUSE yang tersedia , saya hanya melihat Ramfuse , yang sayangnya ditinggalkan di hulu.sumber
Secara umum, tidak, filesystem hanya bisa dipasang oleh root. Jika Anda mengizinkan pengguna untuk menempatkan sistem file secara sewenang-wenang, itu intinya memberi mereka root. (Cara mudah: pasang satu di atas / etc, letakkan passwd Anda sendiri dan bayangan di sana, su dengan kata sandi root baru yang baru saja Anda buat, unmount)
Jika Anda ingin tmpfs di lokasi tertentu, Anda dapat menambahkannya ke
/etc/fstab
, dengan benderanoauto,user
dan kemudian pengguna dapat memasangnya (tetapi tidak terlalu jelas mengapa Anda tidak hanya memasang otomatisnya)Jika pengguna membutuhkan tmpfs sembarang, maka Anda memiliki beberapa opsi:
sudo
untuk memungkinkan pengguna menjalankannya. Pastikan Anda tidak mengizinkan pengguna untuk memilih jalur yang sewenang-wenang.sumber