一般ユーザーで他人が所有しているファイル・ディレクトリを上書きしつつコマンドを実行する方法
例えば /etc/hosts
を一時的に上書きしてコマンド実行したいとか、そういう要望に対して。
方針としては namespace を作ってその中で bind mount するという感じで実現できる。
bwrap を使う場合の例:
$ bwrap --bind / / --dev /dev --proc /proc --tmpfs /tmp --share-net --bind ~/hosts /etc/hosts /bin/bash
systemd-run を使う場合の例:
$ systemd-run --user -t -p PrivateUsers=yes -p BindPaths=~/hosts:/etc/hosts /bin/bash
(一般ユーザーで (
--user
を付けて) 実行する場合は、よくわからんがPrivateUsers=yes
の設定も必要らしい)