我正在做一些修改,但其中一项我搞砸了。
我将文件夹中几乎所有内容的权限都更改/usr
为我自己的用户。它并没有改变所有内容,因为它在执行过程中失败了,我仍然拥有/sbin
,/share
并/src
分配给了 root。
我运行的命令是这样的(这是在 /usr 内部执行的):
sudo chown -R myuser:myuser .
有什么方法可以让我恢复此状态吗?
如果我运行:
sudo chown -R root:root .
我收到此错误:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
答案1
您不能直接使用 chown -R 来访问 /usr 分区,因为该分区中的所有内容并非都归 root 所有。这很糟糕,您必须重新安装所有内容,但唯一安全的解决方案是重新安装或从备份中恢复。
答案2
完全重新安装确实很糟糕。这当然是一个选择。但是,/usr/bin 中的大多数文件都是 root:root。只有以下文件不是:
-rwsr-sr-x 1 daemon daemon 51464 Oct 21 2013 at
-rwxr-sr-x 1 root shadow 54968 Feb 17 02:42 chage
-rwxr-sr-x 1 root crontab 35984 Feb 9 2013 crontab
-rwsr-xr-x 1 root lpadmin 14336 Apr 10 19:40 lppasswd
-rwxr-sr-x 3 root mail 14592 Dec 3 2012 mail-lock
-rwxr-sr-x 3 root mail 14592 Dec 3 2012 mail-touchlock
-rwxr-sr-x 3 root mail 14592 Dec 3 2012 mail-unlock
-rwxr-sr-x 1 root mlocate 39520 Jun 20 2013 mlocate
-rwxr-sr-x 1 root ssh 284784 May 12 17:04 ssh-agent
-rwxr-sr-x 1 root tty 19024 Apr 16 17:07 wall
标准安装。在 /usr/sbin 中为:
-rwsr-xr-- 1 root dip 343168 Jan 22 2013 pppd
-rwsr-sr-x 1 libuuid libuuid 18904 Apr 16 17:07 uuidd
在 /usr/lib/
drwxr-xr-x 2 root utempter 4096 May 7 23:46 utempter
在 /usr/local/share 中
drwxrwsr-x 2 root staff 4096 Aug 20 2013 ca-certificates
drwxrwsr-x 2 root staff 4096 Aug 20 2013 fonts
drwxrwsr-x 7 root staff 4096 May 8 17:11 sgml
drwxrwsr-x 6 root staff 4096 May 8 17:11 xml
以及 /usr/local/lib 中的任何 python 目录,例如:
drwxrwsr-x 4 root staff 4096 May 8 18:44 python2.7