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

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

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

我知道当我尝试使用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. 

我试图按照向导配置这些设置,但没有运气(当我按下“下一步”时系统阻止我继续)。

让我不那么担心的是,磁盘上的所有数据看起来都是可读的,我可以使用live cd访问它们。 我运行memtest和RAM似乎没问题。

你对如何恢复我的系统有任何想法吗? 我很高兴提供更多信息,请告诉我哪些信息可能会有所帮助。

UPDATE。 问题是关于错误的权限,这就是我发现的:我在/mnt/broken/ (live CD)上安装了破坏的操作系统的根分区,并执行了ls /mnt/broken/ 。 我收到了一个权限被拒绝的错误,而我希望有目录列表。 我不得不做sudo ls /mnt/broken/这就行了。 因此,如果没有sudo的root权限,就无法访​​问破坏的os的根目录。

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

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

有关如何恢复旧(工作)权限集的任何想法?

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

你可以pkexec使用pkexec作为sudo的替代品。

首先确保您拥有groups root权限,并在输出中查找sudo
如果您的帐户不在组sudo ,请通过usermod -a -G sudo 将其添加到sudo组

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

语法错误?

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

先进!

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

首先将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/sudoers身份仅使用visudo /etc/sudoers编辑文件,并在完成编辑文件后为其设置适当的权限,即440