이 블로그를 우연히 발견했습니다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 쿠키를 사용하는 것은 다소 흥미롭습니다. 당신은 그것을 사용할 수 있습니다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를 사용하여 설정하고 클라이언트에 대한 쿠키를 설정하지 마세요.
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
또 다른 가능성은 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