/usr の権限を root に戻す

/usr の権限を root に戻す

いくつか修正をしていたのですが、そのうちの一つで失敗してしまいました。

フォルダ内のほぼすべての権限を/usr自分のユーザーに変更しました。実行の途中で失敗したため、すべてが変更されたわけではなく、まだ が残っており/sbin、ルートに割り当てられて/share/srcます。

私が実行したコマンドはこれです(これは /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

/usr パーティションを chown -R するだけでは不十分です。そのパーティションのすべてが root によって所有されているわけではないからです。すべてを再インストールしなければならなくなるのは困ったことですが、唯一の安全な解決策は再インストールするか、バックアップから回復することです。

答え2

完全に再インストールするのは面倒です。確かにそれは 1 つの選択肢です。ただし、/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

関連情報