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

プロセスごとのプライベート ファイル システムのマウント ポイント

unshare -m を実行中 呼び出しプロセスにマウント名前空間のプライベート コピーを提供し、ファイル システム属性の共有を解除して、ルート ディレクトリ、現在のディレクトリ、または umask 属性を他のプロセスと共有しないようにします。

では、上の段落は何を言っているのでしょうか。簡単な例を使って理解してみましょう。

ターミナル 1:

最初のターミナルで以下のコマンドを実行します。

#Creating a new process
unshare -m /bin/bash
#creating a new mount point
secret_dir=`mktemp -d --tmpdir=/tmp`
#creating a new mount point for the above created directory. 
mount -n -o size=1m -t tmpfs tmpfs $secret_dir
#checking the available mount points. 
grep /tmp /proc/mounts 

最後のコマンドの出力は、

のようになります。

tmpfs /tmp/tmp.7KtrAsd9lx tmpfs rw,relatime,size=1024k 0 0

さて、次のコマンドも実行しました。

cd /tmp/tmp.7KtrAsd9lx
touch hello
touch helloagain
ls - lFa

ls の出力 コマンドは、

ls -lFa
total 4
drwxrwxrwt   2 root root   80 Sep  3 22:23 ./
drwxrwxrwt. 16 root root 4096 Sep  3 22:22 ../
-rw-r--r--   1 root root    0 Sep  3 22:23 hello
-rw-r--r--   1 root root    0 Sep  3 22:23 helloagain

では、これらすべてを実行する上で重要なことは何ですか?なぜそれをしなければならないのですか?

ここで別のターミナルを開きます (ターミナル 2 )、以下のコマンドを実行します。

cd /tmp/tmp.7KtrAsd9lx
ls - lFa

出力は以下のとおりです。

ls -lFa
total 8
drwx------   2 root root 4096 Sep  3 22:22 ./
drwxrwxrwt. 16 root root 4096 Sep  3 22:22 ../

ファイル hellohelloagain 表示されず、これらのファイルを確認するためにルートとしてログインしました。その利点は、この機能により、他の root 所有のプロセスでさえ参照または閲覧できないプライベートな一時ファイルシステムを作成できることです。

unshare の man ページより 、

<ブロック引用>

名前空間のマウント ファイルシステムのマウントとアンマウントは、システムの残りの部分には影響しません (CLONE_NEWNS フラグ)。 P>

mount --make-rprivate または mount --make-rslaveafter unshare--mount を使用して、新しい名前空間のマウントポイントが親の名前空間から実際に共有されないようにすることをお勧めします。

名前空間に使用されているメモリは、カーネルからの VFS です。そして、最初に正しく設定すれば、ルート権限なしでルートユーザーになる仮想環境全体を作成できます。

参考文献:

この例は、このブログ投稿の詳細を使用して構成されています。また、この回答の引用は、マイクからのこの素晴らしい説明からのものです。これに関する別の素晴らしい読み物は、ここの回答から見つけることができます.


システムにバブルラップがインストールされている場合は、ワンステップで簡単に実行できます:

bwrap --dev-bind / / --tmpfs /tmp bash

上記の例では、内部 bash は /tmp に独自のビューを持ちます。

@Ramesh-s の回答に触発されたソリューション - ありがとうございます!


Linux
  1. Linux –典型的なLinuxシステムにはどのマウントポイントが存在しますか?

  2. Linux AuFS の例:別の Union ファイル システム チュートリアル (UnionFS 実装)

  3. CentOS / RHEL 6 でルート ファイルシステムを縮小する方法

  1. Btrfs ファイル システムを作成してマウントする方法 (例で説明)

  2. Linux でファイルシステムを作成してマウントする方法

  3. Linux でファイルシステムをマウントおよびアンマウントする方法

  1. クロスプラットフォーム ファイル システム

  2. sshfs よりも高速にリモート ファイル システムをマウントする方法はありますか?

  3. ファイル システムが読み取り専用としてマウントされるのはなぜですか?