Centos を使用しており、ディレクトリの 1 つに対して ll コマンドを実行しました。ディレクトリ内のファイルの所有者は、ユーザー名ではなく数字になっています。なぜそうなるのか説明していただけますか?
以下を見ると、所有者として root ではなく 600 が表示されています。そして、600 と呼ばれるユーザーは存在しません。なぜでしょうか?
-rw-rw-r-x. 1 600 root 1696 Jun 27 2016 abc.txt
-rw-rw-r-x. 1 600 root 1696 Jun 27 2016 xyz.txt
-rw-rw-r-x. 1 600 root 1692 Jun 27 2016 hagts.txt
答え1
私の最初の推測は、あなたまたは誰かがルートとして、次のような方法でディレクトリまたはそこに含まれるファイルの権限を変更しようとしたということです。
# chmod 600 *
しかし、次のように誤って入力されました
# chown 600 *
これにより、所有者が に変更されます600
。システムにそのようなユーザーがいない場合でも、この操作は有効です。ファイルは UID 600 (割り当てられていない可能性があります) によって所有されます。
元に戻すには、
# chown dave *
root として (dave
ユーザー名に置き換えてください)。
すべてのファイルとディレクトリに影響を与えたくない場合は、 の代わりに特定のファイルとディレクトリ名を選択することをお勧めします*
。また、シェルの履歴を見て、何をしたかを確認しながら、手順をたどる必要があります。実は所有権を変更するために何をしたか(それがあなたである場合)。
もう1つの可能性は、ファイルとその所有権がUID 600の別のマシンから転送されたことです。は有効なユーザー。ファイルがネットワーク共有上に存在し、現在のマシンのユーザーがファイルを作成したマシンとまったく同期されていない場合、この問題は簡単に発生する可能性があります。
引き続き、root として所有権を変更することもできますchown
。