web-dev-qa-db-ja.com

chownは再帰的にパーミッションを変更しました

ディレクトリでchownコマンドを実行しました。

chown -R user:user {.,}*

{.,}*は、mvおよびcpとともに使用され、隠しファイルとリストされたファイルの両方を含めます。これで、このコマンドが実行され、ディレクトリ内のこれらの2つのファイルが変更されましたが、コマンドが実行されてから停止するには、コマンドを中断する必要がありました。今では、終了しなかったため、他のファイルやフォルダのアクセス許可がなくなって変更されたのではないかと心配しています。

32
nicoX

{.,}*を使用して、./../の両方を含めました。 -Rオプションとともに、chown呼び出しは、../を経由して、ファイルシステム全体(およびおそらくマウントされている他のシステム)を参照しようとしました。他のコマンドでは、この小さな間違いは致命的かもしれませんが、私を信じてください、あなたは最初ではなく、あなたは最後ではありません...

この操作は非常に重いため、chown呼び出しは処理するファイルが多いため、しばらくハングしました。呼び出しを行ったディレクトリに戻り、/に徐々に戻って、どのような変更が行われたかを確認することをお勧めします。次のような簡単な修正を適用できる場合があります。

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

Ubuntuでは、/homeディレクトリは、システムに登録された最初の(admin/Sudo)ユーザーに与えられます。あなたが唯一のユーザーである場合、あなたはそうすることができます:

chown you:yourgroup /home -R

ただし、chmod 755上の単純な/homeで十分です(たとえルートに属していても)。

/(ルートパーミッション自体、ls -ld /を含む)を直接簡単に確認することも、開始する良い場所です。 /がルートに属し、755のアクセス権が設定されていることを確認することをお勧めします。

chownを使用して非常に特定の所有権を設定した場合(あなたまたはroot以外のユーザー、まれなグループなど)、findを使用してchownを検索できます。 -edファイル。

find / -user {username}
find / -group {groupname}

残念ながら、あなたがしたことに対してundoのようなものはありません。 Linuxはこれらの「カジュアルな」操作を自然に追跡しません。

達成しようとしていたことの詳細については、 このスーパーユーザーの質問 をご覧ください。

46
John WH Smith