Linux は、すべてのユーザーが使用できる tmpfs デバイス /dev/shm を提供します。 .デフォルトでは特定のディレクトリにマウントされていませんが、1 つのディレクトリとして使用することはできます。
/dev/shm にディレクトリを作成するだけです 次に、必要な場所にシンボリックリンクします。作成したディレクトリには、選択した権限を付与して、他のユーザーがアクセスできないようにすることができます。
これは RAM でバックアップされたデバイスであるため、デフォルトではメモリ内にあるものがあります。 /dev/shm 内に必要なディレクトリを作成できます
当然、ここに配置されたファイルは再起動後は存続しません。マシンがスワッピングを開始すると、/dev/shm 役に立ちません。
/dev/shm に相当する Solaris /tmp です これは「スワップ」タイプのパーティションであり、メモリベースでもあります。 /dev/shm と同様 、任意のユーザーが /tmp でファイルを作成する可能性があります
OpenBSD にはメモリ ベースのマウントを使用する機能もありますが、デフォルトでは使用できません。スーパーユーザーは mount_mfs コマンドを利用できます。
他の *BSD についてはわかりません。
/dev/shm はシークレットには適していません
...スワップがアクティブなシステムで!可能性は非常に高い お使いのコンピュータで有効になっています。
より優れた保証付きのエフェメラルがあります 、標準的な代替 — ramfs . ramfs を使用することもできます RAM バックアップ スペースを一時に使用する場合 秘密鍵、ビットコインまたはイーサリアムのウォレットなどの機密データを保存します。
ramfs tmpfs よりも優れています ramfs 以降、データを秘密にする必要がある場合 データ なし tmpfs の間、スワップされます (物理ストレージ ドライブに保存されます)。 かもしれません 入れ替わる。後でマシンへのルート アクセスまたは物理アクセスを取得したサード パーティは、スワップ スペースを検査できます。 機密データの抽出 .
解決策
ramfs を用意できます 権限のないユーザーがオンデマンドでマウント/アンマウントできるようにマウントします。
これを行うには、root が必要です 特権、1 回 . root 権限がない場合は、システムの管理者にセットアップを依頼してください。
最初に、/etc/fstab に行を追加する必要があります。 . fstab の行 次のようになります:
none /mnt/ramfs ramfs noauto,user,size=1024M,mode=0770 0 0
/mnt/ramfsramfs ファイルシステムがマウントされるマウントポイントです。ディレクトリは存在する必要があります .noautoオプションは、これが自動的にマウントされるのを防ぎます (例:システムの起動時)。userこれを通常のユーザーがマウントできるようにします。sizeこの「ramdisk」のサイズを設定します (Mを使用できます) とGmode非常に重要です 、8 進コード0770を使用 このファイルシステムをマウントした root とユーザーだけが読み書きでき、他のユーザーは読み書きできません (任意の別のコードを使用することもできますが、十分に確認してください!)。
これが完了すると、すべてのユーザーがオンデマンドでマウントできるようになります。
一部のユーザーがこれをマウントすると、新しい 1024 MB ramfs ファイルシステムは /mnt/ramfs/ で作成され、マウントされます . root:user が所有します .アンマウントするか、システムを再起動すると、この RAM ベースのファイルシステムは消滅します。 すべてで そのデータ。かっこいいですね。
また、このファイルシステムは複数のユーザーが個別にマウントできますが、同時にはマウントできません。 、つまり、次のユーザーがマウントできるようにするには、前のユーザーがこのファイルシステムをアンマウントする必要があります。または、ユーザーごとに個別のファイル システムを作成することもできます。
マウントするには:
mount /mnt/ramfs/
アンマウントするには:
umount /mnt/ramfs/
追記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
P.P.S. Debian 9 でテスト済み。Ubuntu でも動作することは間違いありません。
P.P.P.S.はるかに安全ですが、RAM ベースのストレージは依然として脆弱です コールド ブート攻撃のような手の込んだ攻撃に。したがって、データのセキュリティについて真剣に考えている場合は、物理的に PC/ラップトップを保護し、ケースとメモリー スティックをロックします。または、RAM がマザーボードにはんだ付けされたコンピューターを使用することを検討してください (これは、ほとんどの上位層のウルトラポータブル ラップトップの場合です)。また、今後 1 時間ほど使用しない場合は、コンピュータを完全にシャットダウンすることを検討してください。たぶん、スリープ/休止機能を完全に無効にすることさえあります.
お使いのシステムには、すでに利用可能なものがあるかもしれません。最近の Glibc ベースの Linux システムでは、常に tmpfs が /dev/shm にマウントされています。 .
システムにそれがないか小さすぎる場合、root によってマウントされていないファイルシステムはほとんど FUSE を意味します。 Ubuntu では、fuse にいる必要があります。 FUSE を使用するグループ。利用可能な FUSE ファイルシステムを調べると、残念ながら上流で放棄された Ramfuse しか見つかりません。