我确信我永远不要使用 sudo 来启动图形应用程序。我该如何防止这种情况发生?多睡觉可能是正确的解决方案,但我想要一个更好的解决方案。
答案1
问题不在于使用图形应用程序本身,而在于许多图形应用程序在调用用户的主目录中创建(或更改所有权)点文件,有时会阻止应用程序在以用户身份运行时重新启动。
一个可能的解决方案是始终使用 -H 标志运行 sudo:
-H, --set-home
Request that the security policy set the HOME environment
variable to the home directory specified by the target user's
password database entry. Depending on the policy, this may
be the default behavior.
如果策略允许(据我所知,在当前的 Ubuntu 安装中确实如此),那么这将导致应用程序将任何此类数据写入 root 的主目录/root
而不是 sudoer 的主目录。
实现此目的的一种方法是使用别名,即添加alias sudo='sudo -H'
到交互式 shell 的启动文件(例如~/.bashrc
)。
我想不出在什么情况下-H
使用 sudo 命令是不可取的,但如果有的话,您可以以 身份调用未别名的命令\sudo somecommand
。
有关更详细的讨论,包括通过 sudoers 文件全局保留 $HOME 的选项,请参阅如何设置 sudo 以不改变 Ubuntu 中的 $HOME 以及如何禁用此行为?