chown コマンドは、ファイルまたはディレクトリの所有者を変更するためのコマンドです。GNU coreutils に含まれており、Linux および FreeBSD で提供されています。基本的な動作は共通していますが、オプションに微細な違いがあります。

基本的な使い方

編集
chown [オプション] [所有者][:[グループ]] ファイル...

主なオプション(GNU coreutils版)

編集
主なオプション
オプション 説明
-c, --changes 所有者またはグループが変更されたファイルに関する情報を表示
-f, --silent, --quiet エラーメッセージを表示しない
-v, --verbose 実行された変更を詳細に表示
-R, --recursive ディレクトリを再帰的に処理
-h, --no-dereference シンボリックリンクそのものに対して操作

所有者を変更

編集
chown user1 file.txt

file.txt の所有者を user1 に変更。

所有者とグループを同時に変更

編集
chown user1:group1 file.txt

file.txt の所有者を user1 に、グループを group1 に変更。

ディレクトリを再帰的に変更

編集
chown -R user1:group1 directory/

directory/ 内のすべてのファイルとサブディレクトリの所有者を user1 に、グループを group1 に変更。

シンボリックリンクの所有者を変更

編集
chown -h user1 symlink

シンボリックリンク symlink の所有者を user1 に変更。

FreeBSD 版との違い

編集

FreeBSD でも chown コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。

主な違い:

編集
  1. -v(詳細表示)オプションが異なる
    • FreeBSD では、chown -v オプションはデフォルトで詳細表示しない。
    • 一方、GNU 版ではデフォルトで詳細表示される。
  2. -h(シンボリックリンク)オプションの動作が異なる
    • FreeBSD の chown はシンボリックリンクに対しても所有者変更が行われるが、GNU 版では -h オプションが必要。
  3. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると、gchown という名前で GNU 版 chown が使える。
    pkg install coreutils
    gchown user1 file.txt  # GNU coreutils 版の chown
    

詳しくは、それぞれの環境で man chown を確認してください。