回答:
Linuxは、すべてのユーザーが使用できるtmpfsデバイスを提供します/dev/shm
。デフォルトでは特定のディレクトリにマウントされていませんが、1つのディレクトリとして使用できます。
単純にディレクトリを作成し、/dev/shm
必要な場所にシンボリックリンクします。作成したディレクトリに任意のアクセス権を付与して、他のユーザーがアクセスできないようにすることができます。
これはRAMでバックアップされたデバイスなので、デフォルトではメモリに何があります。内部に必要なディレクトリを作成できます/dev/shm
当然、ここに配置されたファイルは再起動後も存続し/dev/shm
ません。また、マシンがスワップを開始しても、助けにはなりません。
Solaris平行/dev/shm
IS /tmp
「スワップ」タイプのパーティション、及び、メモリベースです。と同様に/dev/shm
、任意のユーザーが/tmp
Solarisでファイルを作成できます。
OpenBSDにはメモリベースのマウントも使用できますが、デフォルトでは使用できません。mount_mfsコマンドは、スーパーユーザーが利用できます。
他の* BSDについてはわかりません。
/dev/tmpfs
システム上にはないようです(3.0.0カーネルを持っている自分のシステムもありません)。それはディストリビューションによって作成されたものではないのですか?
/run
あり/run/shm
ます。
...アクティブなスワップがあるシステムで!コンピュータで有効になっている可能性が非常に高い。
より良い、安全な、標準の代替手段があります— ramfs
。秘密鍵、ビットコイン、イーサリアムなどの機密データramfs
を一時的に保存するためにRAMでバックアップされたスペースを使用する予定がある場合に使用できます。
ramfs
優れてtmpfs
いるため、セキュリティが懸念されている場合ramfs
、データが決してスワップされません取得しますしばらくは、(物理ストレージドライブに保存された)tmpfs
も入れ替えます。サードパーティは、スワップスペースを検査し、機密データを抽出できます。
ramfs
マウントを準備して、非特権ユーザーがオンデマンドでマウント/アンマウントできるようにすることができます。
これを行うには、一度ルート権限が必要になります。ルート権限がない場合は、システムの管理者にこれを設定するよう依頼してください。
最初に、に行を追加する必要があります/etc/fstab
。fstabの行は次のようになります。
none /mnt/ramfs ramfs noauto,user,size=1024M,mode=0770 0 0
/mnt/ramfs
ramfsファイルシステムがマウントされるマウントポイントです。ディレクトリが存在する必要があります。noauto
オプションは、これが自動的にマウントされるのを防ぎます(例えば、システムの起動時)。user
通常のユーザーがこれをマウントできるようにします。size
この「RAMディスクの」サイズを設定します(あなたが使用することができますM
し、G
ここに)。mode
これは非常に重要です。0770
このファイルシステムをマウントした8進コードはルートとユーザーのみであり、他のファイルシステムではなく読み書きできます(選択した別のコードを使用することもできますが、十分に確認してください! )。これが完了すると、すべてのユーザーがオンデマンドでこれをマウントできるようになります。
一部のユーザーがこれをマウントすると、新しい1024 MB ramfs
ファイルシステムが作成され、にマウントされ/mnt/ramfs/
ます。が所有しroot:user
ます。彼/彼女がそれをアンマウントするか、システムがリブートされると、このRAMベースのファイルシステムはすべてのデータとともに消えます。どれがかっこいいですか。
また、このファイルシステムは複数のユーザーが個別にマウントできますが、同時にはできません。つまり、次のユーザーがマウントできるように、前のユーザーはこのファイルシステムをアンマウントする必要があります。
マウントする:
mount /mnt/ramfs/
アンマウントする:
umount /mnt/ramfs/
PS rsync
非rootユーザーとして、新しくマウント/作成されたramfsのルートにファイルしようとすると、rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
エラーが発生する可能性があります。ユーザーがramファイルシステムのルートを所有していないため、これは完全に正常であり、期待されています。解決方法は簡単です。/mnt/ramfs/copied/
たとえば、そこにディレクトリを作成し、そこにディレクトリを作成するだけrsync
です。
PPSはDebian 9でテスト済みです。Ubuntuでも機能することは間違いありません。
システムにはすでに使用可能なものがあります。Glibcに基づく最近のLinuxシステムでは、/dev/shm
常にtmpfsがマウントされています。
システムに1つもない場合、または小さすぎる場合、ルートによってマウントされていないファイルシステムは、ほとんどFUSEを意味します。Ubuntuでは、fuse
FUSEを使用するにはグループに属している必要があります。見て可能なFUSEファイルシステム、私は見Ramfuse残念ながら上流に放棄され、。
通常、いいえ、ファイルシステムはルートによってのみマウントできます。ユーザーがファイルシステムを任意に配置できるようにする場合、それは基本的にそれらにルートを与えます。(簡単な方法:/ etcにマウントし、そこに独自のパスワードとシャドウを置き、作成したばかりの新しいrootパスワードでsu、アンマウントします)
特定の場所にtmpfsが必要な場合/etc/fstab
は、にフラグを付けてを追加すれば、noauto,user
ユーザーはそれをマウントできます(ただし、自動マウントしない理由は特に明確ではありません)
ユーザーが任意のtmpfsを必要とする場合、いくつかのオプションがあります。
sudo
、ユーザーがそれを実行できるようにします。ユーザーが任意のパスを選択できないようにしてください。