{"id":1794,"date":"2022-02-09T19:44:49","date_gmt":"2022-02-09T19:44:49","guid":{"rendered":"http:\/\/www.ishygddt.xyz\/~blog\/?p=1794"},"modified":"2022-10-24T15:08:24","modified_gmt":"2022-10-24T20:08:24","slug":"x11-apps-localuser-overhead","status":"publish","type":"post","link":"http:\/\/www.ishygddt.xyz\/~blog\/2022\/02\/x11-apps-localuser-overhead","title":{"rendered":"The \"real way\" to run X11 apps as another local user"},"content":{"rendered":"<p>If you've ever run <code class=\"language-shell\" data-line=\"\">ssh -Y $someoneElse@localhost<\/code>, you probably noticed that the program you're operating runs <strong>quite sluggishly<\/strong> (at least compared to how it's \"asposta\" run or does when run normally).<\/p>\n<p>You may have independently discovered this \"cheesy\" workaround (just a cleaner alternative to copying <code class=\"language-shell\" data-line=\"\">~\/.Xauthority<\/code>):<\/p>\n<pre><code class=\"language-shell\" data-line=\"\">ssh -t $someoneElse@localhost &quot;xauth add $(xauth list); DISPLAY=$DISPLAY $0&quot;<\/code><\/pre>\n<p>But here's a <em>far<\/em> cleaner option:<\/p>\n<pre><code class=\"language-shell\" data-line=\"\">xhost &quot;+SI:localuser:#1000&quot;\nssh -o SendEnv=DISPLAY someoneElse@localhost<\/code><\/pre>\n<p>Note you <em>may<\/em> have to reconfigure your server to allow this:<\/p>\n<pre><code class=\"language-shell\" data-line=\"\">grep &#039;^AcceptEnv.*DISPLAY&#039; \/etc\/sshd\\\n|| ( sudo sed -e &#039;s\/^\\(AcceptEnv\\) \/\\1 DISPLAY &#039; -i \/etc\/ssh\/sshd_config\\\n     &amp;&amp; sudo service sshd restart<\/code><\/pre>\n<hr \/>\n<p>While you're at it, here's how you allow those programs to play audio (if your system has a PulseAudio setup like most these days):<\/p>\n<pre><code class=\"language-shell\" data-line=\"\">pax11publish -S &quot;\/run\/user\/$(id -u)\/pulse\/native&quot; -e\nsetfacl -m u:someoneELse:x &quot;\/run\/user\/$(id -u)&quot; &quot;\/run\/user\/$(id -u)\/pulse&quot;\nsetfacl -m u:someoneElse:rw &quot;\/run\/user\/$(id -u)\/pulse\/native&quot;\nsetfacl -m m::rwx &quot;\/run\/user\/$(id -u)\/pulse&quot;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p><code class=\"language-shell\" data-line=\"\">xhost +SI:localuser:$someoneElse<\/code><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[96],"tags":[51,106,105,104],"class_list":["post-1794","post","type-post","status-publish","format-standard","hentry","category-howto","tag-linux","tag-multi-user","tag-pulseaudio","tag-x11"],"_links":{"self":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts\/1794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/comments?post=1794"}],"version-history":[{"count":28,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts\/1794\/revisions"}],"predecessor-version":[{"id":2359,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts\/1794\/revisions\/2359"}],"wp:attachment":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/media?parent=1794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/categories?post=1794"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/tags?post=1794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}