いくつかの例では、一部がchown
の代わりにchmod
を使用していることがわかりました。 chmod
とchown
の使用場所がわかりません。それらの違い、いつ、なぜ私はどちらを使うべきかを説明してください。
ファイルを作成しましょう
touch Rainbow
ファイルのメタデータを見てみましょう
$ ls -l Rainbow
-rw-rw-r-- 1 zanna zanna 0 May 24 10:09 Rainbow
情報の最初の部分は、ファイルタイプ(先頭の-
は通常のファイルであることを意味します)と許可ビットです
その後、所有者(zanna)とグループ(zanna)が表示されます。 chown
コマンドを使用して、これらを変更できます。
$ Sudo chown pixie Rainbow
$ ls -l Rainbow
-rw-rw-r-- 1 pixie zanna 0 May 24 10:09 Rainbow
そして、chmod
を使用して許可ビットを変更します
$ Sudo chmod 333 Rainbow
$ ls -l Rainbow
--wx-wx-wx 1 pixie zanna 0 May 24 10:09 Rainbow
許可ビットは所有者、グループ、その他に対して個別に設定されるため、chown
とchmod
を組み合わせることにより、異なるユーザーのファイル許可を制御できます。 Linuxでのパーミッションのクラッシュコースについては、 この短いガイド をご覧ください。
簡単に言うと、chown
はファイルの所有権を変更するために使用され、chmod
はファイルモードビットを変更するために使用されます。
chown
は、ファイルの所有者を定義します。chmod
は、誰が何をできるかを定義します。誰かをファイルの所有者にすると、(s)そのファイルをどこでも好きな場所で実行できます。たとえば、([s])chmod
を使用してmod(許可など)を変更し、誰が何をすることができます。
$ ls -l file
-rwxrwxr-x 2 ravexina admins 26 May 9 12:49 file
上記の行では、ravexina
がファイルの所有者であり、admins
がグループであることがわかります。 Sudo chown dave:Sudo file
を使用して、ファイルの所有者をdave
に、グループをSudo
に変更できます。これで、ファイルは「dave」と「Sudo」グループの全員に属します。
しかし、chmod
では、誰が何をできるかを定義しますか?ファイルを読み取る権利、ファイルに書き込む権利、またはファイルを実行する権利を持っている人。例えば:
chmod 777 file
所有者、グループ、その他すべての人を含むすべての人に読み取り、書き込み、実行の権限を与えます。
From turnoff.us :
ファイル(またはディレクトリなど)のアクセス許可を検討する場合、2つの要因があります。
chown
はwhoを扱います。 chmod
はwhatを扱います。もう一方の代わりに使用することはできません。
単純なUnixアクセス許可は、ファイルにアクセスしようとするユーザーを3つのタイプに分類します。
chown
は、最初の2つを変更するために使用されます。 chmod
は、これらのタイプに付与される権限を変更するために使用されます。
以前の優れた回答に追加するいくつかのポイント/ヒント:
chown -R www-data files/
chown user:group myfile
構文を使用して、ユーザーとグループを同時に変更できます。chmod -R 775 files/
は 'files /'とその中および下にあるすべてを実行可能かつ読み取り可能にします。ファイル。 chmod -R g+w files/
を使用すると、他には何も触れずにグループの書き込み許可を追加するだけです。すでに非常に良い答えですが、権限が非常に理解しやすいところで貢献したいと思います
chmod u=r+w,o=r-w,g=-r-w test.php
u = user
o = other
g = group
これにより、ファイルにアクセス許可を簡単に追加できます。上記の例では
user = read + write
other = read but not write
group = not read not write
パーミッションを再帰的に変更する場合は、-R
を忘れないでください。
chown
は変更されますwhoファイルの所有者とその所属グループ、chmod
が変更されますhow所有者とグループはファイルにアクセスできます(またはまったくアクセスできます)。