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

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

私の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
4000 65534

(注:私が属しているグループはすべて保存されましたが、ほとんどが新しいユーザー名前空間にマップされていないため、オーバーフローグループ65534、「nobody」、「nogroup」に置き換えられました。getgroups呼び出して確認してください。id削除する「1000 65534 65534 65534 65534 65534 65534 65534 65534 65534」のリストが返されます。

ユーザーとして、親名前空間(1000)の有効なグループ以外のグループをマップすることはできません。ただし、ここでは追加のグループの1つを使用して高い権限で実行可能ファイルを/usr/bin/dumpcap実行する必要があります。

$ ls -n /usr/bin/dumpcap
-rwxr-xr-- 1 0 150 116928 Jun  7 21:16 /usr/bin/dumpcap
$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap cap_dac_override,cap_net_admin,cap_net_raw=eip

ユーザーネームスペースのグループを、私が親ネームスペース(ここでは150)に属するセカンダリグループにマッピングする方法はありますか? ——CAP_SETGIDもちろんそうでなければ簡単になります。 ;-)

関連情報