GNU/Linux >> Linux の 問題 >  >> Linux

(どのように) 通常の (root 以外の) ユーザーとして tmpfs を作成できますか?

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/ramfs ramfs ファイルシステムがマウントされるマウントポイントです。ディレクトリは存在する必要があります .
  • noauto オプションは、これが自動的にマウントされるのを防ぎます (例:システムの起動時)。
  • user これを通常のユーザーがマウントできるようにします。
  • size この「ramdisk」のサイズを設定します (M を使用できます) と G
  • mode 非常に重要です 、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 しか見つかりません。


Linux
  1. RockyLinux8でSudoユーザーを作成する方法

  2. スクリプトを使用して crontab を作成する方法

  3. 追加の root ユーザーを作成するには?

  1. Linuxでユーザーを作成する方法[ユーザー管理]

  2. 通常のユーザーを sudoers ファイルに追加するにはどうすればよいですか?

  3. sftp 専用のユーザーを作成するにはどうすればよいですか?

  1. 非ログイン ユーザーを作成するにはどうすればよいですか?

  2. (どのように) 通常の (root 以外の) ユーザーとして tmpfs を作成できますか?

  3. LinuxでIDでユーザー名を検索するにはどうすればよいですか?