Ubuntu 21.10 xrdp 上的远程桌面时 tkinter 使用 sudo 行为不当
tkinter misbehave with sudo when remote desktop on Ubuntu 21.10 xrdp
设置
我有一个 python3 使用 tkinter 创建图形用户界面的应用程序。它 运行s 在 Raspberry Pi 4 运行ning Ubuntu 21.10。我使用远程桌面与 xrdp 客户端连接。我成功连接到 Ubuntu 桌面,但看不到桌面图标。
问题
当我以 root 权限启动应用程序时,tkinter 在显示上变得混乱并且无法创建 GUI。
sudo python3 /home/ubuntu/Robotics/QuadrupedRobot/StanfordQuadruped/calibrate_tool.py
当我 运行 应用程序作为用户时,tkinter 能够创建 GUI,但现在应用程序没有权限与根驱动程序交互
python3 /home/ubuntu/Robotics/QuadrupedRobot/StanfordQuadruped/calibrate_tool.py
问题
有没有办法让 tkinter 在远程桌面上以 root 权限工作,或者在不授予完整应用程序 root 权限的情况下写入 root 文件?
我的设置有问题吗?
解决方案
这是一个 X Windows 安全问题,阻止 sudo 用户访问登录用户创建的显示。如果您不担心本地网络的安全性,那么 运行 执行命令 'xhost +' 将禁用 X Windows 显示器上的所有安全性并允许 sudo 用户访问显示器。
pi@pi4desktop:~ $ xhost +
access control disabled, clients can connect from any host
然后你应该能够运行你的 tkinter 应用程序使用 sudo。
设置
我有一个 python3 使用 tkinter 创建图形用户界面的应用程序。它 运行s 在 Raspberry Pi 4 运行ning Ubuntu 21.10。我使用远程桌面与 xrdp 客户端连接。我成功连接到 Ubuntu 桌面,但看不到桌面图标。
问题
当我以 root 权限启动应用程序时,tkinter 在显示上变得混乱并且无法创建 GUI。
sudo python3 /home/ubuntu/Robotics/QuadrupedRobot/StanfordQuadruped/calibrate_tool.py
当我 运行 应用程序作为用户时,tkinter 能够创建 GUI,但现在应用程序没有权限与根驱动程序交互
python3 /home/ubuntu/Robotics/QuadrupedRobot/StanfordQuadruped/calibrate_tool.py
问题
有没有办法让 tkinter 在远程桌面上以 root 权限工作,或者在不授予完整应用程序 root 权限的情况下写入 root 文件?
我的设置有问题吗?
解决方案
这是一个 X Windows 安全问题,阻止 sudo 用户访问登录用户创建的显示。如果您不担心本地网络的安全性,那么 运行 执行命令 'xhost +' 将禁用 X Windows 显示器上的所有安全性并允许 sudo 用户访问显示器。
pi@pi4desktop:~ $ xhost +
access control disabled, clients can connect from any host
然后你应该能够运行你的 tkinter 应用程序使用 sudo。