sudo: /var/lib/sudo/navneet 非所有者可写 (040777),应该是模式 0700

nav*_*eet 2 permissions sudo

每当我尝试使用sudo. 我将/var/文件夹的权限更改为777,我认为这会导致错误。请帮我找回一个功能性sudo/var.

Eli*_*gan 5

你有一个非常大的问题,但不是真正为这里所述原因

更改所有权限/var可能会使您无法正确恢复所有权限,因为您将不知道每个文件应该具有哪些权限。您以后可能会遇到问题。根据具体情况,您的问题可能与安全相关。

因此,您不妨考虑重新安装 Ubuntu。或者,您可以尝试从另一个类似的完整系统中的文件获取权限。权限通常相同。通常。一个更严重的问题是,您的系统中可能有一些文件在/var另一个系统中不存在,因此可能并非所有权限都将得到修复。

不过,在没有工作的情况下在桌面系统上执行管理任务sudo通常非常容易。

当您知道权限应该是什么时,更改回权限很容易,并且很少需要启动到恢复模式或从 Live CD 启动。这是因为,虽然它并不广为人知,但桌面版本的 Ubuntu(以及当今大多数其他 GNU/Linux 操作系统)有两种设置方式来执行管理任务:

  • sudo,这将不起作用,因为它需要/var正确的权限。
  • PolicyKit,它往往更能容忍错误的权限并且通常仍然有效。

虽然我们倾向于将其sudo视为您root在 Ubuntu 上执行操作的方式,但实际上 PolicyKit 是大多数(尽管不是全部)图形实用程序变成root. (多年来一直如此。)

实际上,使用 PolicyKit 手动运行图形程序有时是一项重大任务,因为图形应用程序必须具有特殊的配置文件,PolicyKit 才能愿意运行它们。但是终端应用程序不会——使用 PolicyKit 运行基于文本的命令就像使用sudo.

要做到这一点,请pkexec在您原本要输入的地方输入sudo。(它们不采用所有相同的命令行选项,但最常见的语法sudo是, 并在其位置上完美运行。)sudo commandpkexec

所以,因为sudo坏了,你不能运行:

sudo chmod 0755 /mnt/var/lib/sudo
sudo chmod 0700 /mnt/var/lib/sudo/<username>
Run Code Online (Sandbox Code Playgroud)

但是你可以运行:

pkexec chmod 0755 /mnt/var/lib/sudo
pkexec chmod 0700 /mnt/var/lib/sudo/<username>
Run Code Online (Sandbox Code Playgroud)

这是一个好的开始,它可能会sudo再次发挥作用。(不过,它不会修复 中的所有其他文件/var。)

相关(但是,在大多数情况下,不相同)的情况下pkexec是有帮助的:
如何修改无效的 /etc/sudoers 文件?它抛出一个错误,它不允许我再次编辑来修复它
在尝试更改 ushare 配置时意外阻止了对 sudoers.d 的访问
更改“/usr”目录的权限后“sudo”不起作用
如何在“chmod -R 777 /usr/bin”之后修复sudo?, sudo 错误,是模式 0777,应该是 0440
          如何修复“sudo: /etc/sudoers 是模式 0640,应该是 0440?”
? 安装 ZFS 更改了我的 sudoers 文件
密码对 sudo 不起作用(“身份验证失败”
为什么我随机更改了一些文件权限后不起作用?
? 使用“sudo chmod 665 /etc”更改了oneiric (ubuntu11.10) 中的/etc 权限,现在不能使用sudo
如何在没有密码的情况下运行特定的 sudo 命令?(只是如果出现问题)
无法从 Ubuntu live CD 写入 /etc/sudoers(如果出现问题)


归档时间:

查看次数:

15577 次

最近记录:

10 年 前