chmodコマンドに続き、chownコマンドを学んでいきます。 chownはchange ownerの略で、所有者の変更を行うコマンドです。chmodでは権限自体の変更でしたが、chownでは所有者の変更です。 また、chmodコマンドは所有者またはrootユーザーが権限を変更したいファイルやディレクトリに対して実行可能でしたが、chownはrootユーザーのみが所有者変更を実行可能です。

chownコマンド(所有者変更)

3年以内に更新されました。情報が古い可能性があります。
更新日 : 2019年09月18日

chmodコマンドに続き、chownコマンドを学んでいきます。

chownchange ownerの略で、所有者の変更を行うコマンドです。chmodでは権限自体の変更でしたが、chownでは所有者の変更です。

また、chmodコマンドは所有者またはrootユーザーが権限を変更したいファイルやディレクトリに対して実行可能でしたが、chownrootユーザーのみが所有者変更を実行可能です。

chownコマンドの使い方

大まかに2種類の使い方があります。

$chown ユーザー名 所有者を変更したいファイルやディレクトリパス

あるいは

$chown ユーザー名:グループ名 所有者を変更したファイルやディレクトリパス

となります。

ユーザー名のみを指定すればファイルやディレクトリの所有者を変更でき、ユーザー名:グループ名のように指定すれば所有者とグループを同時に変更できます。

所有者を変更してみる

まずは一般ユーザーで任意のディレクトリにファイルを作成しましょう。空のファイルで良ければtouch ファイル名で空ファイルを作成できます。一般ユーザーが作成したファイルが既に存在する場合にはそのファイルをそのまま利用しましょう。

$ls -l
合計 0
-rw-rw-r-- 1 vagrant vagrant 0  9月 18 06:57 test.txt

ls -lコマンドでtest.txtの所有者とグループを確認できました。

次にrootユーザーに昇格してchownコマンドでrootユーザーを所有者に変更してみます。

# rootユーザーに昇格
$su
パスワード:

# 変更できたか確認 
$whoami
root

# 所有者をrootへ変更
$chown root test.txt

# ファイルを確認
$ls -l
合計 0
-rw-rw-r-- 1 root vagrant 0  9月 18 06:57 test.txt

これで所有者が変更されていることを確認できました。

現在test.txtの所有者はrootユーザーとなっています。ところがもともとファイルを作成したユーザー(今回はvagrant)はグループ権限を引き続き持っているため、rootユーザーと同じ書き込み・読み込み権限(rw-)を持ちます

では次にグループも変更してみましょう。

# 引き続きrootユーザーでchownを実行
$chown root:root test.txt

# ファイルを確認
$ls -l
合計 0
-rw-rw-r-- 1 root root 0  9月 18 06:57 test.txt

これで所有者・所有グループはともにrootとなりました。この時点でファイルを作成したユーザー(vagrantユーザー)は第三者となるため、読み込み権限(r—)しか持ちません。

ファイルを作成したユーザーに戻りましょう(exitでrootユーザーからログアウト)。

ユーザーを戻すとviコマンドで起動まではできても、上書き保存ができないことがわかるかと思います。

readonly(読み込み専用)となっている
readonly(読み込み専用)となっている

よく利用するオプション

  • -R
    recursiveオプションです。ディレクトリを指定した場合にディレクトリ内にあるファイルやディレクトリにも再帰的に所有者を変更します。