chmodとchownの主な違いは何ですか?


43

いくつかの例では、いくつかがのchown代わりに使用されていることがわかりましたchmod。私は、使用する場所がわからないchmodchown。それらの違い、いつ、なぜ私はどちらを使うべきかを説明してください。


18
1:誰のは、それが明示的にまだ作っchはアンジェスMOD Eを、その他のchはアンジェス自身の ERを。また、マニュアルを読んでください。
停止ハーミングモニカ

1
そして、しばらくはchownまた、可能CH angeさんはGR OU P、そこにされてchgrp、このタスク専用に。
ハーミングモニカを停止

6
バナナと椅子の主な違いは何ですか?バナナの上に座らないでください。
シャドゥール

回答:


48

ファイルを作成しましょう

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での許可に関する短期集中コースについては、この短いガイドを参照してください。


1
画像の場合は+1。8進数の定義はありませんか?またはchmod a+w例?これには時間がかかりますが、投票数が増えると思います:D
WinEunuuchs2Unix

2
@ WinEunuuchs2Unixハハ、ありがとう...特に役に立たない権限設定を意図的に選択しました。andのすべての可能な順列を使用するタイミングと理由を説明し始めるchmodchown(これはあまりにも広すぎる質問です)、私の答えは永遠に続きます。シンプルに保つために
Zanna

96

簡単に言う chownと、ファイルの所有権を変更するために使用されchmod、ファイルモードビットを変更するために使用されます。

  • chown ファイルの所有者を定義します。
  • chmod 誰が何をできるかを定義します。

誰かをファイルの所有者にすると、そのファイルのほぼどこでも実行できます。たとえば、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

所有者、グループ、その他すべての人を含むすべての人に読み取り、書き込み、実行の権限を与えます。

turnoff.usから: ここに画像の説明を入力してください


1
所有者は、ファイルに対して何をすることもできません-削除または移動には、それを含むディレクトリに対する書き込み権限が必要です。
ムル

2
@muruそれは本当です;)私は読み取り/書き込み/実行を意味しましたchattr、私が推測するファイルに影響を与える可能性もあります。
ラヴェクシーナ

1
@KamilMaciorowskiあなたはそれを知っています、私はそれを知っています、Ravexinaはそれを知っていますが、ほとんどの人はそうではありません。
ムル

2
@KamilMaciorowskiふりをするように頼んだことはありません。不足しているのは、ほとんどの人がファイルの削除や名前の変更をディレクトリの操作としてではなく、ファイルの操作として考えていることです。私達はこれらのような質問を持っている理由です:superuser.com/q/373115/334516unix.stackexchange.com/q/48579/70524askubuntu.com/q/240424/158442明らかに、これらのディレクトリに対する操作(おめでとうございます知っています!)が、それについてよくある誤解があるので、名前の変更や削除には、ファイルではなくディレクトリに対する権限が含まれることに注意しました。...
muru

1
@KamilMaciorowski ...この質問は、chmodとchownの違いを知らないユーザーによるものです。そのため、ファイルの名前を変更するにはディレクトリのアクセス許可が必要であることを知らないのは理にかなっています。
ムル

19

ファイル(またはディレクトリなど)のパーミッションを考慮する場合、2つの要素があります。

  • 誰がファイルを所有している-ユーザーとグループを、そして
  • 彼らがそれでができるか-読み取り、書き込み、実行、またはそれらの組み合わせ。

chown誰を扱ってますか?何をchmod扱う。もう一方の代わりに使用することはできません。

単純なUnixアクセス許可は、ファイルにアクセスしようとするユーザーを3つのタイプに分類します。

  1. ファイルの所有者
  2. ファイルを所有するグループのメンバーであるユーザー
  3. 他のみんな

chown最初の2つを変更するために使用されます。chmodこれらのタイプに付与された権利を変更するために使用されます。


7

以前の優れた回答に追加するいくつかのポイント/ヒント:

  • ディレクトリにアクセスするには、ディレクトリ(およびその上のすべてのディレクトリ)に対する実行権限が必要です。
  • -Rオプションを使用して、ターゲットを含むすべての対象に変更を再帰的に適用します。たとえば、 chown -R www-data files/
  • 次の構文を使用して、ユーザーとグループを同時に変更できます。 chown user:group myfile
  • 多くの場合、特にファイルとディレクトリの組み合わせを扱う場合は、絶対アクセス権を設定するよりも「+」および「-」オプションを使用する方が簡単/良いです。たとえば、グループにディレクトリとその下にあるすべてのグループに書き込み許可を与えたい場合、chmod -R 775 files/「files /」とその下にあるすべてのファイルを実行可能および読み取り可能にします。を使用chmod -R g+w files/すると、他には何も触れずにグループの書き込み許可が追加されます。

6

すでに非常に良い答えですが、権限が非常に理解しやすいところで貢献したいと思います

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アクセス許可を再帰的に変更する場合も忘れないでください。


1

chown変更されます誰がファイルを所有し、どのようなグループには属しているが、同時にchmod変更する方法(彼らはすべてでそれにアクセスできるかどうか)、所有者とグループがファイルにアクセスすることができます。

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