我正在尝试找出我的 ubuntu 安装的默认所有权和权限。我还想弄清楚错误地将系统文件的文件所有权授予用户 robert 是否是一个不可恢复的错误。尝试撤消我对系统所做的操作并重新安装是否太复杂了?
首先,介绍一些背景知识。我认为我在尝试更改第二个 ext4 驱动器(该驱动器上以前安装了 ubuntu)的权限时输入了错误的命令。我一定是无意中更改了我当前的 / 目录而没有意识到这一点。问题的症状是我在当前系统上不再具有 sudo 访问权限。
robert@robert-KJ379AA-ABA-a6400f:/$ sudo ls -al
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
我看到“robert”现在拥有 /etc 内的所有文件:示例:
drwxr-xr-x 3 robert root 4096 Apr 9 12:27 firefox
drwxr-xr-x 4 robert root 4096 Aug 23 2012 fonts
drwxr-xr-x 3 robert root 4096 Aug 23 2012 foomatic
-rw-r--r-- 1 robert root 766 Apr 11 12:39 fstab
-rw-r--r-- 1 robert root 664 Apr 9 11:26 fstab~
drwxr-xr-x 2 robert root 4096 Mar 29 2012 fstab.d
-rw-r--r-- 1 robert root 664 Apr 11 12:36 fstab.original
-rw-r----- 1 robert fuse 216 Oct 18 2011 fuse.conf
-rw-r--r-- 1 robert root 3343 Apr 19 2012 gai.conf
drwxr-xr-x 5 robert root 4096 Aug 23 2012 gconf
以下是 / 目录的权限和所有权
drwxr-xr-x 25 root root 4096 May 5 15:26 .
drwxr-xr-x 25 root root 4096 May 5 15:26 ..
drwxr-xr-x 2 robert root 4096 Apr 10 22:55 bin
drwxr-xr-x 3 robert root 4096 May 5 15:26 boot
drwxr-xr-x 2 robert root 4096 Apr 9 11:30 cdrom
drwxr-xr-x 15 root root 4560 May 5 17:28 dev
drwxr-xr-x 150 robert root 12288 May 5 17:45 etc
drwxr-xr-x 3 robert root 4096 Apr 9 11:37 home
lrwxrwxrwx 1 robert root 33 May 5 15:26 initrd.img -> /boot/initrd.img-3.2.0-41-generic
lrwxrwxrwx 1 robert root 33 Apr 9 12:26 initrd.img.old -> /boot/initrd.img-3.2.0-40-generic
drwxr-xr-x 22 robert root 4096 Apr 24 16:58 lib
drwxr-xr-x 2 robert root 4096 Apr 24 16:58 lib64
drwx------ 2 robert root 16384 Apr 9 11:26 lost+found
drwxr-xr-x 5 root root 4096 May 5 17:28 media
drwxr-xr-x 2 root root 4096 Apr 19 2012 mnt
drwxr-xr-x 2 root root 4096 Aug 23 2012 opt
dr-xr-xr-x 198 root root 0 May 5 12:26 proc
drwx------ 8 root root 4096 Apr 17 02:11 root
drwxr-xr-x 23 root root 820 May 5 17:43 run
drwxr-xr-x 2 root root 4096 Apr 24 16:58 sbin
drwxr-xr-x 2 root root 4096 Mar 5 2012 selinux
drwxr-xr-x 2 root root 4096 Aug 23 2012 srv
drwxr-xr-x 13 root root 0 May 5 12:27 sys
drwxrwxrwt 10 root root 4096 May 5 19:37 tmp
drwxr-xr-x 10 root root 4096 Aug 23 2012 usr
drwxr-xr-x 14 root root 4096 May 5 17:26 var
lrwxrwxrwx 1 root root 29 May 5 15:26 vmlinuz -> boot/vmlinuz-3.2.0-41-generic
lrwxrwxrwx 1 root root 29 Apr 9 12:26 vmlinuz.old -> boot/vmlinuz-3.2.0-40-generic
drwxrwxr-- 1 robert robert 4096 Apr 9 01:37 windows1
有人能确认“robert”一定不拥有根目录下的任何这些目录吗?这里有没有什么迹象表明这个问题可能很容易恢复?如果是,你有什么建议或资源来解决这个问题吗?谢谢。
答案1
要使所有内容成为 root 所有者/etc
:
sudo chown root:root -R /etc
你需要启动 Live CD 并运行
sudo chown root:root -R /media/$USER/*/etc
您需要在文件浏览器中打开文件夹来安装磁盘
答案2
运行以下命令:
pkexec chown root:root -R /etc
现在写下您的密码。
答案3
最好的办法是重新安装所有软件包,然后让其为您修复权限。这需要一些时间,但这是修复所有问题的唯一方法。
sudo apt-get --reinstall install $(dpkg --get-selections | grep install | grep -v deinstall | cut -f1)
您可以查看更多相关内容在这个网站上,包括针对运行该命令的常见问题的一些修复。
请记住,您将需要在命令完成后立即重新启动,否则不同版本的库将(或至少可能)出现奇怪的事情。
答案4
只需运行这些命令
pkexec apt-get install sudo
然后
pkexec chmod 0440 /etc/sudoers.d/README
就这样