Linux, コマンド · 1 min read · Sep 15, 2025

初心者のためのLinux Chownコマンドチュートリアル(12の例)

Linuxでは、ファイルやディレクトリの所有者やグループに関連する情報を変更したい場合があります。コマンドライン初心者で、コマンドラインを通じてそのような変更を行う方法を知りたい場合、chownというコマンドが存在することを知っておくと良いでしょう。

chownコマンドのチュートリアルを始める前に、ここで言及されているすべての例と指示は、Ubuntu 22.04 LTSおよびDebian 11でテストされていることを述べておく価値があります。

Linux chownコマンドの説明

前述のように、chownコマンドはコマンドラインを通じてファイルの所有者とグループを変更することができます。以下はコマンドの一般的な構文です:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

ツールのmanページには次のように記載されています:

所有者(ユーザー名または数値ユーザーID)のみが指定された場合、そのユーザーが各指定されたファイルの所有者となり、ファイルのグループは変更されません。所有者の後にコロンとグループ名(または数値グループID)が続く場合、間にスペースを入れずに、ファイルのグループ所有権も変更されます。コロンの後にグループ名がない場合、そのユーザーがファイルの所有者となり、ファイルのグループはそのユーザーのログイングループに変更されます。コロンとグループが指定されているが、所有者が省略されている場合、ファイルのグループのみが変更されます。この場合、chownはchgrpと同じ機能を果たします。コロンのみが指定されている場合、または全てのオペランドが空の場合、所有者もグループも変更されません。

以下のQ&A形式の例は、chownコマンドがどのように機能するかを良く理解するのに役立ちます:

Q1. ファイルの所有者を変更するには?

以下の例を考えてみましょう:

ここで、ファイルの所有者は「himanshu」で、所属するグループも「himanshu」です。さて、所有者を「root」に変更するには、次のコマンドを使用します:

chown root file1

以下のスクリーンショットは、所有者が「root」に変更されたことを確認しています。

Q2. ファイルのグループを変更するには?

グループの変更は、所有者の変更と似ています。唯一の違いは、コマンドの構文です。以下のようになります:

chown :[group-name] [file-name]

したがって、「file1」のグループを「root」に変更する必要があるとします。その場合、コマンドは次のようになります:

chown :root file1

以下のスクリーンショットは、グループが「himanshu」から「root」に正常に変更されたことを示しています。

*注意:’sudo’コマンドが使用された理由が気になる場合、または’ sudo’に不慣れな場合は、まずこのツールに関するチュートリアルを確認してください。*

Q3. ファイルの所有者とグループの両方を変更するには?

ファイルの所有者とグループの両方を変更するには、次の構文を使用します:

chown [new-owner]:[new-group] [file-name]

したがって、既存の所有者とグループを「root」から「himanshu」に変更するには、次のコマンドを使用します:

chown himanshu:himanshu file1

以下のスクリーンショットは、上記のコマンドが実行されている様子を示しています:

Q4. 既存の所有者/グループを確認した後に所有者またはグループ(または両方)を変更するには?

ファイルの既存の所有者/グループを確認したい場合があります。その場合、–fromコマンドラインオプションを使用できます。このオプションでは、確認したい所有者/グループ名を指定する必要があります。

chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]

例えば:

chown --from=root:himanshu himanshu:root file1

上記のコマンドは、既存の所有者が「root」でグループが「himanshu」であるかどうかを確認します。もしそうであれば、所有者は「himanshu」に変更され、グループは「root」になります。

Q5. 参照ファイルから所有者/グループ情報を取得するには?

所有者とグループに関連する情報を手動でコマンドラインに入力するのではなく、chownにファイルから取得させたい場合があります。その場合、–referenceコマンドラインオプションを使用できます。このオプションでは、参照ファイルの名前を入力する必要があります。

chown --reference=[ref-file-name] [filename]

例えば:

chown --reference=file2 file1

したがって、上記のコマンドは、file2からfile1に所有者とグループの情報をコピーします。

Q6. chownをファイルとディレクトリに再帰的に操作させるには?

chownコマンドをファイルとディレクトリに再帰的に操作させるには、-Rコマンドラインオプションを使用します。

chown -R [new-owner]:[new-group] [directory-name-or-path]

再帰的とは、指定されたディレクトリ内のすべてのファイル、およびすべてのサブディレクトリ内のファイルとディレクトリに対して操作が行われることを意味します。

Q7. chownがエラーメッセージを抑制するようにするには?

実行したchownコマンドがエラーを返す場合があります。例えば、私のシステムで次のコマンドを実行したとき:

chown --from=himanshu:himanshu himanshu:root file4

次のエラーが発生しました:

chown: 'file4'にアクセスできません:そのようなファイルやディレクトリはありません

さて、ツールがそのようなエラーを表示しないようにする必要があるとします。これは、-fコマンドラインオプションを使用することで可能です。

前述のスクリーンショットは、-fコマンドラインオプションがエラー/警告を抑制することを確認しています。

Q8. 指定されたユーザーのログイングループにグループ所有権を変更するには?

これは、[user/owner]:構文を使用して行うことができます。例えば、次のコマンド:

chown himanshu: file1

は、所有権が「himanshu」に与えられ、グループが「himanshu」のログイングループに変更されることを確認します。コロン(:)が使用されていない場合(Q1で説明したように)、グループは変更されないことに注意してください。

もう一つ言及すべきことは、所有者やグループを指定せずにコロン(:)だけを使用すると、変更は行われないということです。例えば:

chown : file1

このコマンドは、ファイルのユーザーまたはグループ所有権に影響を与えません。

Q9. chownはシンボリックリンクとどのように機能しますか?

デフォルトでは、シンボリックリンクのユーザーおよびグループ所有権を変更しようとすると、変更は行われません。代わりに、リンク先のファイルにこれらの変更が適用されます。

例えば、以下のスクリーンショットでは、ユーザーとグループ所有権が「himanshu」に設定されたシンボリックリンク「link1」を作成しました。その後、ユーザーとグループを「root」に変更するためにchownコマンドを実行しました。しかし、コマンドはシンボリックリンクファイルには影響を与えず、代わりにシンボリックリンクが指す「file1」のユーザーとグループ所有権が変更されました。

Chownコマンドシンボリックリンク

ただし、デフォルトの動作をオーバーライドしたい場合は、-hオプションを使用できます。

Q10. ディレクトリの所有者とグループを変更するには?

ファイルと同じ方法で行います。以下は例です:

chown root:root ./test-dir/

ディレクトリの所有者とグループの変更を確認するには、statコマンドを使用できます。出力のUIDおよびGIDフィールドには、ユーザーおよびグループ名が表示されます。

例えば、私の場合、出力は変更されたユーザーグループ所有権を明確に示しました。

  File: test-dir  
  Size: 4096          Blocks: 8          IO Block: 4096   directory  
Device: 808h/2056d    Inode: 11928001    Links: 2  
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)  
Access: 2018-08-07 10:31:04.867467573 +0530  
Modify: 2018-08-07 10:30:53.651807123 +0530  
Change: 2018-08-07 10:32:49.644427930 +0530  
 Birth: -

再帰的な変更を行う場合(-Rオプションについて説明しているQ&Aを参照)、シンボリックリンクを扱う場合は、次のオプションが利用できます:

       次のオプションは、-Rオプションが指定されている場合の階層のトラバース方法を変更します。複数指定された場合、最終的なもののみが有効になります。  
       -H     コマンドライン引数がディレクトリへのシンボリックリンクである場合、トラバースします  
       -L     遭遇したディレクトリへのすべてのシンボリックリンクをトラバースします  
       -P     シンボリックリンクをトラバースしません(デフォルト)

Q11. UIDおよびGIDをユーザーおよびグループ名の代わりに使用できますか?

はい、ユーザーIDおよびグループIDを名前の代わりに使用できます。コマンドの構文は同じままです。

例えば:

chown 1000:1000 file1

上記のコマンドは、ユーザーとグループの所有権をUID 1000のユーザーおよびGID 1000のグループに変更します。

Q12. chownが操作の詳細を出力に表示するようにするには?

chownコマンドが実行する操作の詳細を表示するようにするには、-vコマンドラインオプションを使用します。

例えば、このコマンド:

sudo chown howtoforge:howtoforge link1 -v

は次の出力を生成します:

'link1'の所有権をroot:rootからhowtoforge:howtoforgeに変更しました

もう一つのオプションは-cで、-vのように機能しますが、何も変更されなかった場合は詳細を表示しません。

結論

chownコマンドは、ほとんどの方が同意するように、使い方が難しくありません。さらに良いことに、ツールのmanページには、ユーザー(特に初心者)に役立つ多くの詳細が含まれています。ここで説明した例を試してみてください。その他の機能/オプションについては、chownのmanページを参照してください。ディレクトリを変更するには、cdコマンドを使用します。疑問や質問がある場合は、下にコメントを残してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。