我是Linux新手,我使用VirtualBox将以下版本的Ubuntu设置为一个这一过程 VM:
ubuntu-20.04.3-desktop-amd64.iso创建的第一个帐户是管理员帐户。我安装了xsel并检查它是否有效。然后,我创建了一个非管理员帐户,并将sud与su - non-admin-account一起放入其中。此时,xsel抱怨道:
xsel: Can't open display: (null)
: Inappropriate ioctl for devicexsel在su进入另一个帐户后可以访问?目前,我对在su进入非管理员帐户时启动自己的客户端窗口的应用程序并不感兴趣,我只想要简单的标准管道到剪贴板上,这样我就可以使用Shift+Ins (例如echo dog | xsel -ib或echo dog | xsel -ip )在Vim或Bash命令行中检索它。
我的当前计划是编写或重定向到(例如) /tmp/tmp.txt,以便在从登录屏幕登录的用户与sud登录的用户之间传递文本。我习惯了Cygwin的行为,在这种情况下,剪贴板是共享的,而不管终端是在哪个帐户下启动的。
如果我登录到非管理员帐户和管理员帐户的su,我会得到相同的行为。xsel工作在我登录的非管理员中,而不是我su登录到的管理员帐户中。
xsel在su.之后不起作用。
根据评论,我查看了这个问题的答案。我不认识问题的描述,因为错误信息是完全不同的,所以基于错误信息的人不会认识到这个问题。而且,我不明白答案。看起来可能适用于我的解决方案的部分是xhost +localhost,但是它没有工作,因为语法是错误的,至少对于我正在使用的Ubuntu版本是这样的。我在下面的答案中发布了确实有效的语法。
我认为,在上面提到的页面甚至可以远程通知某人之前,您必须知道问题在于没有允许帐户访问X服务器。例如,如果您来自使用Cygwin的X-windows的背景,您可能不会猜到这一点,因为问题本身并不存在。
发布于 2021-11-12 08:10:40
您可以使用pam_xauth身份验证模块跨X11调用转发su会话cookie,而无需向这些用户更一般地打开您的X服务器。
这还允许通过$HOME/.xauth/目录中的配置文件,对哪些用户可以将凭据转发给哪个其他用户进行细粒度控制。
https://unix.stackexchange.com/questions/676087
复制相似问题