このディストリビューションは、2.6.35-30 Linuxカーネルを実行するUbuntuサーバーです。
私は完全にメモリ内のディレクトリが欲しいです。 root権限なしで可能ですか?
答え1
Linuxは、すべてのユーザーが利用できるtmpfsデバイスを提供します/dev/shm
。デフォルトでは、特定のディレクトリにはインストールされませんが、まだディレクトリとして使用できます。
その中にディレクトリを作成し、目的の/dev/shm
場所にシンボリックリンクをリンクするだけです。他のユーザーがアクセスできないように作成したディレクトリに対して選択した権限を付与できます。
これはRAM対応デバイスなので、基本的にすべてがメモリにあります。内部に必要なディレクトリを作成できます/dev/shm
もちろん、ここに配置されたファイルは再起動後に保存されず、コンピュータがスワップを開始しても/dev/shm
役に立ちません。
Solarisと同様に、メモリベースの「スワップ」タイプのパーティションも/dev/shm
あります。/tmp
同様に、/dev/shm
すべてのユーザーが/tmp
Solarisでファイルを作成できます。
OpenBSDはメモリベースのマウントも使用できますが、デフォルトで使用できるものはありません。 mount_mfsコマンドはスーパーユーザーが使用できます。
他の*BSDについてはよくわかりません。
答え2
/dev/shm は秘密の保存には適していません。
...活動のあるシステムで交換!チャンスは非常に高いお使いのコンピュータでこの機能が有効になっています。
もっと良いものがありますが、短期間保証、標準的な選択肢 -ramfs
次のramfs
タスクにRAMサポートスペースを使用する予定の場合は、次のものを使用できます。一時的な秘密鍵、ビットコイン、またはイーサリアムウォレットなどの機密データを保存します。
ramfs
tmpfs
ramfs
データを秘密に保つ必要がある場合よりも優れています。いいえスワップ(物理ストレージドライブに保存)中tmpfs
可能交換されます。その後、システムへのルートまたは物理アクセス権を取得する第三者スワップスペースを確認できます。そして機密データの抽出。
解決策
ramfs
権限のないユーザーが要求に応じてマウント/マウント解除できるようにマウントを準備できます。
これにはあなたが必要です根特権、一度。 root権限がない場合は、システム管理者に設定を依頼してください。
まず、追加する必要があります/etc/fstab
。この行はfstab
次のとおりです。
none /mnt/ramfs ramfs noauto,user,size=1024M,mode=1777 0 0
/mnt/ramfs
ramfs ファイルシステムがマウントされるマウントポイントです。目次存在しなければならない。noauto
サイレントインストールを防ぐためのオプション(システムの起動時など)user
一般ユーザーがインストールできるようにします。size
この「ramdisk」のサイズを設定します(ここでM
およびを使用できますG
)。しかし、必要に応じてラムディスクが大きくなるため、何の効果もありません。mode
はい非常に重要、8進コードを使用すると、1777
すべてのユーザーがファイルとディレクトリを作成できますが、そのファイルとディレクトリの所有者だけがアクセスできます(他のコードを使用することもできますが、必ず確認してください)。
これが完了すると、すべてのユーザーが必要に応じてインストールできます。
ユーザーがそれをインストールすると、ramfs
新しいファイルシステムが作成されてマウントされます/mnt/ramfs/
。の所有になりますroot:user
。マウントを解除するかシステムを再起動すると、このRAMベースのファイルシステムは消えるそしてみんなそのデータ。素敵ですね。
さらに、ファイルシステムは複数のユーザーが独立してマウントできますが、同時にではありませんつまり、次のユーザーがインストールできるようにするには、古いユーザーがファイルシステムをアンマウントする必要があります。または、各ユーザーに対して別々のファイルシステムを作成できます。
取付ける:
mount /mnt/ramfs/
削除:
umount /mnt/ramfs/
rsync
PSルート以外のユーザーとして新しくインストール/作成された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でも動作すると確信しています。
PPPSははるかに安全ですが、RAMベースのストレージです。それでも脆弱ですいくつかの洗練された攻撃。コールドスタート攻撃。したがって、データのセキュリティが本当に重要である場合は、次の点を確認してください。物理ケースとメモリースティックをロックしてPC /ノートブックを保護する方法、またはより良い方法は、RAMがマザーボードに直接はんだ付けされたコンピュータを購入することを検討することです(ほとんどの高度なウルトラポータブルノートブックの場合と同様)。今後1時間ほどコンピュータを使用する予定がない場合は、コンピュータを完全にシャットダウンすることも検討できます。省電力/休止状態機能を完全に無効にすることもできます。
答え3
あなたのシステムにはすでに利用可能なものがあるかもしれません。最新のLinuxシステムは常にGlibcに基づいています。インストールされたtmpfs/dev/shm
。
システムにシステムが存在しないか小さすぎる場合、ルートとしてマウントされていないファイルシステムはほとんど意味があります。ヒューズ。 Ubuntuでは、fuse
FUSEを使用するにはグループに参加する必要があります。裏返す利用可能なFUSEファイルシステム、私だけを見るラムフォス、残念ながら上流に捨てられました。
答え4
通常、ファイルシステムはルートとしてのみマウントできます。ユーザーがファイルシステムに必要なものを何でも配置できるようにすることは、基本的にユーザーにroot権限を付与することです。 (簡単な方法:/ etcにマウントし、そこに自分のパスワードとシャドウを入力し、作成したばかりの新しいルートパスワードでsuして削除します。)
特定の場所にtmpfsを使用したい場合は、/etc/fstab
フラグを使用してに追加すると、noauto,user
ユーザーはそれをマウントできます(ただし、自動的にマウントしない理由は特に明確ではありません)。
ユーザーにランダムなtmpfsが必要な場合は、いくつかのオプションがあります。
- tmpfsのサブディレクトリを使用します。おそらく最良の方法でしょう。おそらく複数のtmpfは必要ありません。
- ディレクトリを作成し、そのディレクトリにtmpfsをマウントするスクリプトを作成し、ディレクトリがある場所を印刷します。
sudo
ユーザーが実行できるようにするために使用されます。ぜひこうやってくださいいいえユーザーが任意のパスを選択できるようにします。