unshare

リモートデスクトッププログラムからのサブプロセスの分離
unshare

リモートデスクトッププログラムからのサブプロセスの分離

私はLinux用のリモートデスクトップ/ストリーミングプログラムを開発しています。ユーザーがログインしたときに起動するプログラムを指定すると、リモートサーバーはそのプログラムを新しいプロセスとして起動します。サーバープロセスはWaylandコンポジターとして機能するため、サブプロセスは画面外で(サーバーの他のユーザーの観点から)実行され、コンポジターから入力を受け取ります。 これは単純なアプリケーションではうまく機能しますが、Steam(このユースケースでは重要なアプリケーション)などの多くのデスクトップアプリケーションは、dbusを使用して実行中の既存のS...

Admin

chrootを使用して共有を無効にすると、/procのように/devを分離しないのはなぜですか?
unshare

chrootを使用して共有を無効にすると、/procのように/devを分離しないのはなぜですか?

私はフォローしています最初からKevin Booneコンテナの作成 /mnt/container/ の下にアルパインミニルートファイルシステムがあります。 chrootとunshareでマウントがどのように機能するかは少し混乱しています。 共有を解除すると、共有を解除する必要はありません。 chroot /mnt/container /bin/sh -l ホストシステムに「/」(ルート)を持つコンテナ(一種の)を取得します/mnt/container。 コンテナ内で次のコマンドを実行します。 mount -t proc proc /proc >&am...

Admin

--forkを `nsenter -t'として使用するときに `unshare`の子IDを取得する方法`?
unshare

--forkを `nsenter -t'として使用するときに `unshare`の子IDを取得する方法`?

を使用している場合、正しいpid名前空間を取得するには、pidではなくsubpidにコマンドを追加する必要がありますunshare --pid --fork。nsenterunshare 次のようにunshareのpidを取得できます。 unshare --pid --mount --fork --mount-proc bash & echo PID: $! fg unshareただし、正しい名前空間を入力するには、子のpid(2914003)が必要です。 ps wwfuax | grep -A1 unshare 2914002 pts/4 ...

Admin

ターミナル1:
unshare

ターミナル1:

unshareそして、マニュアルページから読み取ったすべてのものからディレクトリをそれ自体(ディレクトリ)nsenterにバインドしてマウントし、そのディレクトリのファイルを使用して永続的な名前空間への参照を保持できる必要があります。これが私がやっていることです。デフォルトではディレクトリが異なりますが、デフォルトでmount --make-privateは同じです。man unshare--pid=file--mount=file ターミナル1: # mkdir -p /mnt/jails/debian/bookworm/.ns # mount --bin...

Admin

ポートに権限がないと、ネームスペースのルートでポートにアクセスできないのはなぜですか?
unshare

ポートに権限がないと、ネームスペースのルートでポートにアクセスできないのはなぜですか?

私は逃げたsudo sysctl -w net.ipv4.ip_unprivileged_port_start=1。しかし、sudo ip netns exec myvpn unshare -r python -m http.server -b 127.0.0.1 2動作しません。奇妙なことに、これは本当ですsudo ip netns exec myvpn unshare python -m http.server -b 127.0.0.1 2。なぜ? 編集する:しかし両方は機能しませsudo ip netns exec myvpn sudo -u $USE...

Admin

Linux名前空間で子UIの数を拡張する方法
unshare

Linux名前空間で子UIの数を拡張する方法

次のように実行した後: $ unshare -rUm $ mkdir opt $ mount --bind opt /opt $ touch /opt/test $ chown 1000:1000 /opt/test 私はこれを受け取ります: chown: changing ownership of '/opt/test': Invalid argument ご覧のとおり、私が使用できるサブユニットは1つだけです。 $ cat /proc/self/uid_map 0 1000 1 どうやって追加できます...

Admin

ステップコピー
unshare

ステップコピー

.を 新しいユーザーとして追加することもできます。unshareoverlayfs/tmp/procaddusersu ただし、マウントを設定すると、overlayfs下位レイヤは解凍されたtarballで、上位レイヤは一時ディレクトリです。su新しいユーザーの場合、上記の手順を繰り返すと、権限拒否の問題が発生し、失敗します。新しく作成されたユーザーは、オーバーレイファイルシステムで読み取る権限がないことに関連していると思われますが、adduserわかりません。にdemsg設定しても/proc/sys/kernel/printkログは表示されません。6 ステ...

Admin

gid_mapのエコーは失敗しましたが、uid_mapは成功しました。
unshare

gid_mapのエコーは失敗しましたが、uid_mapは成功しました。

uid_mapファイルとgid_mapファイルに書き込んで、ユーザーとグループIDを新しい名前空間にマップしたいと思います。 まもなくターミナル1私は仕事をします。 vaibhav@vaibhav:~$ unshare -U /bin/sh $ id uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup) $ echo $$ 2506 次に、新しい端末を開きます。NO2。はい vaibhav@vaibhav:~$ echo '0 1000 1' > /proc/2506/ uid_map ...

Admin

解決策
unshare

解決策

ネットワーク名前空間で実行されているアプリケーションがあります。これは素晴らしい作品です。 別の名前空間でアプリケーションを複数回実行したいと思います。便宜上、アプリケーションの作業ディレクトリを名前空間内の/ tmp / nsXなどのディレクトリにバインドしたいと思います。 名前空間でこれを行うと、mount --bind /tmp/nsX /var/lib/my-app名前空間を終了するとマウントが消えます。 名前空間に入るか出てくるかip netns exec bash 見ているのにunshareどうすればnsenterいいかわかりません。 私が欲しい...

Admin

--mount-procを使用して共有を解放すると、新しいmnt名前空間が作成されます。
unshare

--mount-procを使用して共有を解放すると、新しいmnt名前空間が作成されます。

--mount-procコマンドで使用したときに実行される操作については少し混乱しています。unshare これを使用すると、unshare -fp --mount-proc bash新しいPID名前空間と新しいMNT名前空間が作成されることを確認しました。 新しいMNTネームスペースにあることを考慮して、ループデバイスの1つをアンマウントしようとしましたが、これが親MNTに反映されていないことを確認しました(親df -hネームスペースで実行したときにマウントがまだ表示されます)。 もう一歩進んで、新しいMNTネームスペースに新しいルートを作成し、pivot...

Admin

共有解除から別のPIDを取得する
unshare

共有解除から別のPIDを取得する

以下は、スクリプトの一部の基本コードですtest.sh。 bash -c "sleep 10; echo \$(pidof unshare)" & sudo unshare --mount --uts --ipc --net --pid --fork /bin/sh -c " ... do stuff ... sleep 60 " & PID=$! スクリプトを実行すると、最初の行のバックグラウンドbashコマンドとして認識されるプロセスIDとPIDに割り当てられた値が異なります。また、psスクリプト内で実行してもプロセスIDは表示され...

Admin

セカンダリグループと共有をキャンセル
unshare

セカンダリグループと共有をキャンセル

私のLinuxコンピュータには、私(私のユーザー)は基本グループとは異なるグループを持っています(私はグループ150に属しています)。 $ id -u; id -g; id -G 1000 1000 1000 6 21 91 97 150 190 465 996 1003 コマンドをユーザーの名前空間に分離する必要があります。私はunshare --userこれを使用します: $ unshare --user --map-user=4000 --map-group=4000 bash -c 'id -u; id -g; id -G' 4000 4000 4...

Admin

新しいPID名前空間のPIDが連続していないのはなぜですか?
unshare

新しいPID名前空間のPIDが連続していないのはなぜですか?

私はUbuntu 20.04を実行しています。 ~によるとhttps://lwn.net/Articles/531419/そしてhttps://stackoverflow.com/questions/3446727/how-does-linux-define-the-next-pid/3457108#3457108、割り当てられたPIDは連続的でなければなりません。ただし、これは新しく作成されたPID名前空間の場合には適用されません。ここで、最初のプロセスのPIDは1(もちろんそうでなければならない)で、次のプロセスのPIDは8です。奇妙なことは、PID 8...

Admin