Linuxのchownコマンドでファイル・ディレクトリの所有権を変更する方法

Linuxシステムでは、すべてのファイルに「所有者」と「グループ所有者」が紐付けられています。適切な権限を持っていない場合、ファイルやディレクトリへのアクセスや編集は行えません。そんなときに役立つのが、所有者を変更できる「chown(change owner)」コマンドです。この記事では、chownコマンドの基本的な使い方から応用的なテクニックまで、具体例を交えてわかりやすく解説します。
chownコマンドの基本構文
chownコマンドは、以下の構文で使用します。
sudo chown [新しい所有者]:[新しいグループ所有者] ファイル名
ファイルの現在の権限を確認する
所有者やグループを変更する前に、まずls -lコマンドで対象ファイルの現在の権限を確認しておきましょう。このコマンドを実行すると、操作しようとしているファイルの所有者とグループ所有者を確認できます。

所有者のみを変更する
Linuxでは、ファイルの所有者だけを変更することも可能です。コマンドの構文にあるように、:(コロン)で区切られた2つのフィールドがあり、1つ目が新しい所有者、2つ目が新しいグループ所有者を表します。また、所有者を変更するにはスーパーユーザー権限が必要となるため、すべてのchownコマンドの先頭にsudoを付ける必要があります。
sudo chown maketech: docker-machine
ls -lで実行結果を確認してみましょう。
$ ls -l total 1964 -rw-r--r-- 1 userkubetrain user_kubetrain 2148 Mar 18 2019 certnew.cer -rw-r--r-- 1 maketech user_kubetrain 48 Jan 29 10:13 docker-machine
「maketech」がファイルの新しい所有者になっていることが確認できます。デフォルトでは、このコマンドは単一のファイルまたはディレクトリにのみ適用されます。フォルダ内のすべてのファイルとサブディレクトリに変更をまとめて適用したい場合は、-Rオプションを使用します。
sudo chown -R maketech virtual-machine
さらに、ユーザー名の代わりにUID(ユーザーID)を指定して所有者を変更することも可能です。
sudo chown -R 1002 virtual-machine
グループ所有者のみを変更する
他のユーザーにもファイルへのアクセスを許可したい場合は、それらのユーザーを同じグループに所属させたうえで、ファイルのグループ所有権を変更すると便利です。
sudo chown :maketechpublic -R docker-machine
実行結果を確認します。

ご覧のとおり、コロン:を新しいグループ名の前に置くことで、「これは新しいユーザー名ではなくグループ名である」ことを明示しています。
所有者とグループを同時に変更する
ファイルやディレクトリの所有者とグループ所有者の両方を一度に変更したい場合は、2つの値をコロンで区切って指定します。
sudo chown maketech:maketechpublic -R docker-machine
これにより、ディレクトリの新しい所有者と、そのディレクトリを操作できるグループ(グループに属するユーザー)が同時に設定されます。
まとめ
Linuxのchownコマンドは、ファイルのユーザー所有権およびグループ所有権を変更するためのコマンドです。パーミッション自体を変更するchmodコマンドと組み合わせて使うことで、Linux上のファイル権限をより柔軟かつ効率的に管理できるようになります。
-
Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現
Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです
-
Linuxのssコマンドでネットワーク接続を監視する方法【基本から実践テクニックまで】
Linuxを使っていると、ネットワークの状態をもっと詳しく知りたい場面に必ず出会います。そうしたニーズに応えられるツールは数多く存在しますが、中には扱いが複雑なものもあります。ssコマンドは多くのLinuxマシンに標準でインストールされているため、その使い方を知っておくと非常に便利です。ssコマンドとは?2文字だけのコマンド名は一見謎めいて見えますが、実際はとてもシンプルです。多くのLinux/Unixコマンドと同じように、コマンド名はその機能を表す略語になっています。「ss」は「Socket Statistics(ソケット統計)」の略です。Socket Statisticsは、従来のnets