以下是在 cron 中为具有 sudo 权限的用户 1 运行的脚本
export DISPLAY=:0
export XAUTHORITY=/home/user2/.Xauthority
scrot -q 30 "/tmp/%Y-%m-%d-%H-%M_screen.jpg" 2>/tmp/err
它在 Ubuntu 16.04 上运行良好。升级到 18:04 后,出现错误:无效的 MIT-MAGIC-COOKIE-1 keygiblib 错误:无法打开 X 显示。它是跑步吧?
文件 .Xauthority 由用户 2 拥有,由用户 1 拥有的组拥有,并具有权限 660。
Ubuntu 16:04 和 18:04 之间有什么变化?我试过导出显示=:1.0代替 导出显示=:0在阅读 SO 上的一篇文章后。它给出了这个错误:giblib 错误:无法打开 X 显示器。它是跑步吧?
答案1
来自维基百科:
尝试以 root 身份运行程序时,MIT-MAGIC-COOKIE-1 密钥无效
该错误意味着只有当前用户才能访问 X 服务器。解决方案是授予 root 访问权限:
$ xhost +si:localuser:root
该行还可用于向 root 以外的其他用户授予 X 的访问权限。
因此您可能需要在主机上执行:
$ xhost +si:localuser:user1