【chown】Linuxコマンド_ファイル・ディレクトリの所有者(オーナー)を変更する

ファイルやディレクトリには所有者(オーナー)という属性があります。
「chown」コマンドで、このオーナーのみが該当のファイルやディレクトリの権限を変更することができます。

※スーパーユーザーはファイル・ディレクトリへのアクセス権限あり

ファイルのオーナー以外のユーザーはオーナーが異なるファイルへのアクセスはできません。
該当のファイルの所有者(オーナー)のみがアクセスすることができます。

ファイルへの所属グループ変更は以下のページを参考にしてください。

関連記事

ファイルやディレクトリには所属グループという属性があります。 「chgrp」コマンドで、この所属グループが該当のファイルやディレクトリの権限を変更することができます。 ※スーパーユーザーはファイル・ディレクトリへのアクセス権限あり […]

VPS_比較

「chown」コマンドの使い方(Linux)

ファイルやディレクトリの属性を確認するには「ls -l」を実行します。

$ ls -l
total 0
-rw-r--r-- 1 root root 0 10月 17 00:26 test01.txt

上記の書式は以下となります。
該当ファイルに対し、「オーナー」と「所属グループ」が紐づけられています。

-rw-r–r– 1 <オーナー> <所属グループ> 0 10月 17 00:26 <ファイル名>

現在のオーナーが「root」となっています。
この「test01.txt」ファイルの所有者(オーナー)を「user01」に変更します。

オーナーを変更するには、「chown」コマンドを実行します。
ただし、この「chown」コマンドはスーパーユーザー(root)のみが使用できるコマンドとなります。

該当のユーザーが存在しない場合は、以下のコマンドでユーザーを作成します。

$ useradd -m user01

ファイルの所有者(オーナー)を変更

以下コマンドで「test01.txt」のオーナーを「user01」へ変更します。

$ chown user01 test01.txt

「test01.txt」のオーナーが「user01」に変更されたことが確認できます。

$ ls -l
total 0
-rw-r--r-- 1 user01 root 0 10月 17 00:26 test01.txt

オーナーと所属グループを同時に変更する

該当ファイルのオーナーと所属グループを同時に変更するには以下のコマンドを実行します。
オーナーは「user02」、所属グループは「testgp02」となります。

$ chown user02:testgp02 test01.txt 

上記コマンド実行後、ユーザーと所属グループが変更されたことが確認できます。

$ ls -l
total 0
-rw-r--r-- 1 user02 testgp02 0 10月 17 00:26 test01.txt

「chown」コマンドオプション

「chown」コマンドのオプションは以下の通りとなります。

$ chown --help
使用法: chown [OPTION]... [OWNER][:[GROUP]] FILE...
または: chown [OPTION]... --reference=RFILE FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With --reference, change the owner and group of each FILE to those of RFILE.

  -c, --changes          verbose と似ているが、変更があるもののみ出力する
  -f, --silent, --quiet  ほとんどのエラーメッセージを抑止する
  -v, --verbose          各ファイルを処理する毎に診断メッセージを表示する
      --dereference      シンボリック自体の代わりに、シンボリックリンクを辿っ
                         た先に適用する (この動作が既定)、
  -h, --no-dereference   参照先のファイルの代わりにシンボリックリンクに適用する
                         (シンボリックリンクの所有権を変更できるシステムで
                         のみ利用可能)
      --from=CURRENT_OWNER:CURRENT_GROUP
                         ここで指定した現在の所有者やグループと一致した場合に
                         のみ各ファイルの所有者およびグループを変更する。いず
                         れかは省略可能であり、省略された属性は一致検査が行わ
                         れない。
      --no-preserve-root  '/' を特別扱いしない (既定)
      --preserve-root     '/' に対する再帰的な操作を失敗させる
      --reference=RFILE  use RFILE's owner and group rather than
                         specifying OWNER:GROUP values
  -R, --recursive        ファイルとディレクトリを再帰的に操作する

以下のオプションは -R オプションと併せて指定されたときにどのように階層を
横断するかの動作を変更します。2個以上指定されたときは最後のオプションの
み有効になります。

  -H                     コマンドライン引数がディレクトリに対するシンボ
                         リックリンクの場合に、リンクを辿る
  -L                     ディレクトリに対するシンボリックリンクに遭遇し
                         た時には全て辿る
  -P                     シンボリックリンクを辿らない (デフォルト)

      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

Owner is unchanged if missing.  Group is unchanged if missing, but changed
to login group if implied by a ':' following a symbolic OWNER.
OWNER and GROUP may be numeric as well as symbolic.

例:
  chown root /u        /u の所有者を "root" に変更します。
  chown root:staff /u  同様ですが、グループも "staff" に変更します。
  chown -hR root /u    /u 配下のファイルの所有者を "root" に変更します。

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report chown translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/chown>
or available locally via: info '(coreutils) chown invocation'

「chown」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!