現在のディレクトリの上にあるディレクトリから始まる再帰chown


27

私は、「管理者」アカウントにログインしていない可能性がAlt+ Ctrl+ F1すべての私のファイルは、私の「標準」ユーザーが所有していた示しました。奇数。

だから私は慎重に変更し/home/admin、やった

sudo chown -R admin:admin *

(そして.*)。

すばらしいです。

次に、「標準」ユーザーとしてログインできず、すべてのファイル/home/standardが「admin」に所有されていることがわかりました。

かなりユーモラスです。なぜこうなった?

sudo chown -R standard:standard /home/standard/*

同じことをし、同様に変更/home/adminしました/home/standard

私は15.04にアップグレードしようとし、それが私のコンピューターをほとんど破壊したので、いつもよりも混乱しています。


おそらく、一方は他方へのシンボリックリンクですか?何てls -l /home言うの?
スチールドライバー

回答:


35

この問題は、次を実行したために発生します。

sudo chown -R admin:admin .*

これ.は、現在のディレクトリと..親ディレクトリを示しています。を使用してコマンドを実行すると.*、現在のディレクトリの隠しファイル(で表示.)、現在のディレクトリ自体(.)、親ディレクトリ(..)に一致することを意味します。後に何かを置くだけです.*0文字以上を意味します)。その結果、親ディレクトリとそのすべての子ディレクトリが取得さchownadmin:adminます。

このテストを見てください:

test$ ls -al
drwxrwxr-x 4 foo foo 4096 Jun  3 07:15 .
drwxrwxr-x 4 foo foo 4096 Jun  2 18:06 ..
drwxrwxr-x 2 foo foo 4096 Jun  3 07:15 egg
drwxrwxr-x 2 foo foo 4096 Jun  3 07:12 spam

$ sudo chown -R bar:bar spam/.*

test$ ls -al
drwxrwxr-x 4 bar  bar  4096 Jun  3 07:15 .
drwxrwxr-x 4 foo  foo  4096 Jun  2 18:06 ..
drwxrwxr-x 2 bar  bar  4096 Jun  3 07:15 egg
drwxrwxr-x 2 bar  bar  4096 Jun  3 07:12 spam

元に戻すにchownは、影響を受けるディレクトリに再度アクセスする必要があります。

私はあなたの計画が何だったのか本当に分かりませんが、いくつかのアイデアがあります:

  • chown任意のディレクトリへ(隠しファイルを含む):

    sudo chown -R foo:foo /spam/egg/
    
  • chownそのディレクトリ(ディレクトリではなく、それ自体)の内部(隠しファイルを含む)ファイルのみ:

    (shopt -s dotglob && sudo chown -R foo:foo egg/*)
    
  • chown(ディレクトリ自体なし)のみ非隠しファイル:

    sudo chown -R foo:foo egg/*
    

ありがとう、私は今それを手に入れる... duh; P 標準ユーザーは私が最初に作成したユーザーであり、後でそのユーザーを降格して新しいユーザーを作成しました。
DavidP

@DavidP私はあなたが何を得ているのか明確ではありません。
heemayl

3

ファイルの「。*」パラメーターだと思います。「。」を含む「。」で始まるすべてに一致します。および「..」ファイル。「..」は親ディレクトリであり、その下にあるすべてのものが含まれます。

最良の方法は、1つのフォルダーをバックアップし、変更する実際のフォルダー(/ home / admin)を指定することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.