
私はディレクトリツリー内のすべてのものの所有権を私からrootに更新したいと思います。私はfind
再帰よりも慎重にこれを行うのに慣れていますchown
。
以下は、ツリー内のすべてのファイルとディレクトリの所有権を変更するために使用するコマンドです。
cd /opt/mydir
# Update files
sudo find . -type f -execdir chown root:root "{}" +
# Update directories
sudo find . -type d -execdir chown root:root "{}" +
これはすべてのファイルとディレクトリに適用されます。
/opt/mydir
しかし、私は同じディレクトリツリーのどこかにファイルを指すシンボリックリンクがあることに気づきました。そのファイルの所有権はまだ保持されています。
たとえば、
lrwxrwxrwx 1 civfan civfan 6 Jul 18 2013 halt -> reboot
-rwxr-xr-x 1 root root 14832 Jun 25 2013 reboot
これは間違っているように見え、今すぐ修正しないと、後で権限の問題が発生する可能性があります。
すべてのシンボリックリンクファイルの所有権を変更するには?
答え1
シンボリックリンクの所有権は重要ではありません。参照エンティティがそうです。
つまり、find -l
ディレクトリツリーでシンボリックリンクを検索するためのものです。
シンボリックリンクを使用chown -h
および/または機能します。chmod -h
find . -type l -exec chown -h root:root {} +