帮助恢复损坏的操作系统(权限问题)

帮助恢复损坏的操作系统(权限问题)

(底部有一个重要更新。)

我正在进行实验,以便将远程帐户备份到我的本地系统 Ubuntu 12.04 LTS。我对 duplicity 不太有信心,可能由于语法错误,一些本地文件已被替换为远程文件。这只是一个假设,我不确定这是否是操作系统损坏的真正原因。损坏是在尝试备份后发生的,所以我认为我在这方面做错了什么。

当我尝试使用以下命令访问命令时,我意识到存在问题sudo

$ sudo ls
sudo: unable to open /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

/etc/sudoers 如下所示:

$ ls -ald /etc/sudoers
-r--r----- 1 root root 788 Oct 2 18:30 /etc/sudoers

此时我尝试重新启动,现在我收到以下消息:

The system is running in low graphics mode.
Your screen, graphics card and input device
settings could not be detected correctly.
You will need to configure these yourself.

我尝试按照向导来配置这些设置,但是没有成功(当我按“下一步”时系统阻止我继续)。

让我稍微不那么担心的是,磁盘上的所有数据似乎都是可读的,我可以使用实时 CD 访问它们。我运行了 memtest,RAM 似乎没问题。

您对如何恢复我的系统有什么想法吗?我非常乐意提供更多信息,只要让我知道哪些信息可能有用就行。

更新。问题在于错误的权限,我发现了以下方法:我在/mnt/broken/(live CD) 上安装了损坏操作系统的根分区,然后执行了ls /mnt/broken/。我收到了权限被拒绝的错误,而我原本希望获得目录列表。我必须执行sudo ls /mnt/broken/此操作,然后成功了。因此,如果没有通过 sudo 获得 root 权限,就无法访​​问损坏操作系统的根目录。

的当前输出ls -ld /mnt/broken/为:

drwxr-x--- 29 1000 812 4096 2012-12-08 21:58 /mnt/broken

对于如何恢复旧的(工作)权限集有什么想法吗?

答案1

如果文件系统以只读方式挂载,请运行mount -n -o remount,rw /以使用读/写支持挂载根目录。好的,让我们继续。

您可以暂时pkexec将其用作替代方案。sudo

首先,确保您具有 root 权限,然后在输出中groups <username>查找sudo
如果您的帐户不在组中sudo,则将其添加到 sudo group byusermod -a -G sudo <username>

然后检查权限/ETC目录并查看它是否具有上述设置的权限,或者至少544这意味着你至少可以从中读取。
使用chmod 751 /etc设置适当的权限
然后再次chmod 440 /etc/sudoers为 sudoers 文件设置适当的权限
然后验证是否lsattr /etc/sudoers至少显示- - e - /etc/sudoers
如果chattr +e /etc/sudoers你看不到““在上一个命令的输出中。

语法错误?

如果问题仍然存在,那么您可能需要查看 sudoers 文件中是否存在语法错误,或者只是将内容导出到文件cat /etc/sudoers >> /home/<username>/sudoers.txt并显示给我们。

前进!

apt-get install --reinstall sudo如果你对 Linux 没有足够的经验,我不会推荐你这样做,但你总是可以选择在恢复模式下以 root 身份登录时重新安装 sudo 包,然后使用visudo编辑器配置 sudoers 文件仅有的

首先将 sudoers 文件中未注释的内容与下面写的内容进行匹配,并在必要时进行更改。

如果你决定重新安装和配置sudo你基本上需要添加仅有的如果尚不存在,则将其添加到 sudoer 文件中:

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL

最后需要注意的是,你必须以visudo /etc/sudoersroot 身份编辑该文件,并且在编辑完文件后为其设置适当的权限,即440

相关内容