今天,我摆弄视频设置以消除撕裂现象,有一次我想在不重启机器的情况下重启 xfce。所以我运行了“sudo startxfce4”,发现出了点问题,然后我重启了电脑,现在我无法登录,我陷入了登录循环。在登录屏幕上输入密码后,lightdm 会显示某种错误消息,然后屏幕变黑,然后再次返回登录屏幕。有人能告诉我正确的方向来修复这个大错误吗?谢谢。
答案1
当您使用 运行命令时sudo
,它不会改变环境变量的值HOME
:
firas@wakaba ~ % sudo env | grep HOME
HOME=/home/firas
这意味着,如果您正在运行的程序需要访问用户主目录中的文件,它将使用您的主目录。但是,它仍将以 root 权限运行,因此它创建的任何文件都将归 root 所有。这是一个问题,因为如果您随后以用户权限运行同一个程序,则您可能无法访问以 root 身份创建的文件。幸运的是,修复很简单:因为您的主目录及其包含的所有内容通常归您所有,所以在正常情况下,您只需执行
sudo chown -R username /home/username
恢复正确的权限。如果出于某种原因,您需要将其他用户拥有的文件放在您的主目录中,则您有责任了解这些文件是什么,并相应地恢复所有权。
顺便说一句,如果您想运行程序并将环境变量sudo
更改HOME
为目标用户的主目录,只需使用标志-H
:sudo -H program
。要使其永久生效,请always_set_home
在 sudoers 文件中设置标志。