Bha*_*rat 5 filesystem sudo nautilus gksu
最近我不得不更改文件夹的/usr文件夹权限。现在整个sudo都行不通了。如果我尝试使用以下命令更新我的系统:
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
Run Code Online (Sandbox Code Playgroud)
所以我尝试通过使用此命令以 root 身份打开 Nautilus 来更改文件夹权限
gksudo nautilus
Run Code Online (Sandbox Code Playgroud)
但什么也没发生。鹦鹉螺没有打开。这是紧急情况,因为整个系统sudo都不起作用。当我尝试从 Google 搜索解决方案时,许多人建议重新安装。我不喜欢重新安装。那么还有其他解决方案吗?
实际上在 Ubuntu 中设置了两种机制来执行管理任务。sudo是其中之一,它及其图形前端(如gksu和gksudo)在您解决权限问题之前将无法工作。
另一种机制是PolicyKit。根据您对文件权限所做的确切操作,您可能仍然可以使用 PolicyKit 恢复以将命令作为root.
该pkexec命令将运行任何(非图形)命令root(前提是调用它的用户是系统管理员)。pkexec也能够以nautilusas运行图形命令(如)root,但这非常重要,因为您必须为它们设置配置文件,描述它们应该如何运行以及它们应该被允许做什么。因此,您最好使用命令行来解决这个问题……至少到sudo可以再次工作的程度。(然后您可以运行gksu nautilus以获取root文件浏览器,如果您更习惯使用它来递归编辑文件权限。)
我不知道你对你的权限做了什么,所以我很难给你一个特定的pkexec命令来运行,来解决这个问题。但是您可以纠正sudo当前抱怨的具体问题。它说:
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
Run Code Online (Sandbox Code Playgroud)
因此,删除group和other写入owner该文件的权限(同时不修改写入权限):
pkexec chmod go-w /usr/lib/sudo/sudoers.so
Run Code Online (Sandbox Code Playgroud)
然后您可以查看是否sudo有效(通过运行一些无害的命令,如sudo ls)。
如果您需要在命令行中使用 对文件权限执行其他操作chmod,请参阅man chmod。
(顺便说一句,这是另一种相关的情况,了解pkexec.很方便。)
如果您在pkexec为此工作时遇到困难,请随时在此处发表评论,我会尽力提供进一步的帮助。但是您应该知道,即使这种方法不起作用,您也不应该重新安装 Ubuntu。
相反,您可以从 Ubuntu live CD/DVD 或 live USB 系统修复问题,因为 live 系统将运行 -sudo将在它上面工作 - 您可以挂载您的 Ubuntu 分区并以这种方式更改权限。
或者作为第三种选择(如forestpiskie所建议的),您可以使用恢复模式。
| 归档时间: |
|
| 查看次数: |
17358 次 |
| 最近记录: |