
このブログを偶然発見しましたhttps://notehub.org/rp5n2特定のX11クライアントを有効にする方法について説明します。信頼できない[1] これにより、一部のX11拡張機能が使用できなくなります。 UID分離を使用しない限り、これだけでは価値がないことに精通しています。私はxsudo
[2]を使ってクラップウェアを実行します。
ただし、クライアントは信頼できない接続を使用してもクリップボードを監視し続けることができます。ユーザーがある場合、crapware
そのアカウントで実行されているプログラムはまだデフォルトの選択を監視できます。あなたは試してください:
watch -n0.5 xsudo crapware xclip -o
セキュリティ拡張機能は、信頼できないX11クライアントがキーボードを記録したりキーストロークをシミュレートしたりするのを防ぎます。デフォルトでは、信頼できないX11クライアントとのクリップボード共有を防ぐ方法は?
私は消防署やそのようなことには興味がありません。私は名前空間に興味がありません。 UNIX ユーザーの分離が必要です。私もXpraを避けたい。 X11に直接接続しているクライアントと比較して遅すぎます。タイピング中に実際に遅延を感じることができます。
[1]https://www.x.org/releases/X11R7.6/doc/xextproto/security.html
[2]
#!/bin/zsh
set -e
# Copied from https://notehub.org/rp5n2
if [[ $# -lt 1 ]]; then
echo "Usage: $0 asuser [cmdline...]" >&2
exit 1
fi
asuser=$1
shift
if [[ -z $DISPLAY ]]; then
echo "DISPLAY is not set" >&2
exit 1
fi
cookie=/tmp/.Xauthority-$DISPLAY-$asuser
if [[ ! -e $cookie ]]; then
touch $cookie
chmod 600 $cookie
xauth -f $cookie generate $DISPLAY MIT-MAGIC-COOKIE-1 untrusted
sudo chgrp $asuser $cookie
chmod 660 $cookie
fi
export XAUTHORITY=$cookie
if [[ $# -gt 0 ]]; then
exec sudo -u $asuser "$@"
else
exec sudo -u $asuser -i
fi
答え1
ネストされたXサーバーを使用できます。NXエージェントxpraに比べてローカル設定がはるかに高速です。
nxagent
単一のアプリケーションには連続モードもあります。シームレスモードに設定し、クリップボードを使用せずに独自のXauthority Cookieを使用するのはかなり面白いです。あなたはそれを使用することができますx11docker使いやすさのため:
x11docker --nxagent --exe -- yourapplication
または、次のように短縮されます。
x11docker -ne yourapplication
他のユーザーとして実行:
sudo x11docker --user someuser -ne -- yourapplication
クリップボードの共有を許可するには、x11dockerオプションを追加してください--clipboard
。 nxagentはデフォルトでこれを許可しますが、x11dockerは指定しない限り無効にします。
ハードウェアアクセラレーションが必要な場合は、インストールしてxpra
実行してくださいXwayland
。weston
xdotool
sudo x11docker --user someuser --xpra-xwayland --exe -- yourapplication
nxagentを使用して設定し、クライアントのCookieを設定しないでください。
echo "nx/nx,clipboard=none:25" >/tmp/nxoptions
nxagent :25 -R -nolisten tcp -options /tmp/nxoptions
sudo -u someuser env DISPLAY=:25 yourapplication
これはアメリカのキーボードでのみ機能します。別のキーボードレイアウトを取得するには、/tmp/nxoptions
ドイツ語のキーボードレイアウトを変更します。
echo "nx/nx,clipboard=none,keyboard=evdev/de:25" >/tmp/nxoptions
もう1つの可能性は、XepyrをネストされたXサーバーとして使用することです。しかし、シームレスなパターンを提供するわけではありません。
Xephyr :10
sudo -u someuser env DISPLAY=:10 openbox # provide a window manager
sudo -u someuser env DISPLAY=:10 someapplication
Xephyrのハードウェアアクセラレーションにはvirtualgl
。vglrun