Тренувальний тур III етапу Всеукраїнської олiмпiади з iнформатики 2018 2019 навчальний рік
目次:
chown
使用方法- ファイルの所有者を変更する方法
- ファイルの所有者とグループを変更する方法
- ファイルのグループを変更する方法
- シンボリックリンクの所有権を変更する方法
- ファイルの所有権を再帰的に変更する方法
- 参照ファイルを使用する
- 結論
chown
コマンドを使用すると、特定のファイル、ディレクトリ、またはシンボリックリンクのユーザーまたはグループの所有権を変更できます。
Linuxでは、すべてのファイルは所有者とグループに関連付けられており、ファイル所有者、グループメンバー、およびその他のユーザーに許可アクセス権が割り当てられています。
このチュートリアルでは、実際の例を通して
chown
コマンドの使用方法を示します。
chown
使用方法
chown
コマンドの使用方法に入る前に、基本的な構文を確認することから始めましょう。
chown
コマンド式の形式は次のとおりです。
chown USER FILE(s)
USER
は、新しい所有者のユーザー名またはユーザーID(UID)です。
GROUP
は、新しいグループの名前またはグループID(GID)です。
FILE(s)
は、1つ以上のファイル、ディレクトリ、またはリンクの名前です。 数値IDの前には
+
記号を付ける必要があります。
-
USER
のみが指定された場合、指定されたユーザーは指定されたファイルの所有者になり、グループの所有権は変更されません。USER:
-ユーザー名の後にコロン:
が続き、グループ名が指定されていない場合、ユーザーはファイルの所有者になり、ファイルグループの所有権はユーザーのログイングループに変更されます。USER:GROUP
ユーザーとグループの両方が指定されている場合(間にスペースがない場合)、ファイルのユーザー所有権は指定されたユーザーに変更され、グループ所有権は指定されたグループに変更されます。:GROUP
ユーザーが省略され、グループの前にコロン:
が付いている場合、ファイルのグループ所有権のみが指定されたグループに変更されます。:
ユーザーとグループを指定せずにコロン:
のみを指定した場合、変更は行われません。
デフォルトでは、成功すると
chown
は出力を生成せず、ゼロを返します。
ls -l
コマンドを使用して、ファイルの所有者またはファイルが属するグループを確認します。
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | +-----------> Group +-------------------> Owner
ファイルのグループ所有権を変更できるのは、rootまたは
sudo
特権を持つユーザーのみです。
ファイルの所有者を変更する方法
ファイルの所有者を変更するには、
chown
コマンドの後に引数として新しい所有者のユーザー名とターゲットファイルを使用します。
chown USER FILE
たとえば、次のコマンドは、
file1
という名前のファイルの所有権を
linuxize
という名前の新しい所有者に変更します。
chown linuxize file1
複数のファイルまたはディレクトリの所有権を変更するには、それらをスペース区切りリストとして指定します。 以下のコマンドは、
file1
という名前のファイルとディレクトリ
dir1
の所有権を
linuxize
という名前の新しい所有者に
linuxize
ます。
chown linuxize file1 dir1
ユーザー名の代わりに数値のユーザーID(UID)を使用できます。 次の例では、
file2
という名前の
file2
所有権を、UIDが
1000
新しい所有者に変更します。
chown 1000 file2
数値の所有者がユーザー名として存在する場合、所有権はユーザー名に移されます。 このプレフィックスを回避するには、IDに
+
ます:
ファイルの所有者とグループを変更する方法
ファイルの所有者とグループの両方を変更するには、
chown
コマンドの後に、スペースなしのコロン(:)とターゲットファイルで区切られた新しい所有者とグループを使用します。
chown USER:GROUP FILE
次のコマンドは、
file1
という名前のファイルの所有権を、
linuxize
およびgroup
users
という名前の新しい所有者に
linuxize
し
users
。
chown linuxize:users file1
コロン(:)の後にグループ名を省略すると、ファイルのグループは指定されたユーザーのログイングループに変更されます。
ファイルのグループを変更する方法
ファイルのグループのみを変更するには、
chown
コマンドの後にコロン(:)と新しいグループ名(スペースなし)およびターゲットファイルを引数として使用します。
chown:GROUP FILE
次のコマンドは、
file1
という名前のファイルの所有グループを
www-data
。
chown:www-data file1
ファイルのグループ所有権を変更するために使用できる別のコマンドは
chgrp
です。
シンボリックリンクの所有権を変更する方法
再帰オプションを使用しない場合、
chown
コマンドは、シンボリックリンク自体ではなく、シンボリックリンクが指すファイルのグループ所有権を変更します。
たとえば、
/var/www/file1
を指すシンボリックリンク
symlink1
の所有者とグループを変更しようとすると、
chown
はシンボリックリンクが指すファイルまたはディレクトリの所有権を変更します。
chown www-data: symlink1
ターゲットの所有権を変更する代わりに、「 'symlink1'を逆参照できません:許可が拒否されました」というエラーが表示される可能性があります。
このエラーは、ほとんどのLinuxディストリビューションではデフォルトでシンボリックリンクが保護されており、ターゲットファイルを操作できないために発生します。 このオプションは
/proc/sys/fs/protected_symlinks
指定されて
/proc/sys/fs/protected_symlinks
ます。
1
は有効、
0
無効を意味します。 シンボリックリンク保護を無効にしないことをお勧めします。
シンボリックリンク自体のグループ所有権を変更するには、
-h
オプションを使用します。
ファイルの所有権を再帰的に変更する方法
指定されたディレクトリの下のすべてのファイルとディレクトリを再帰的に操作するには、
-R
(--
--recursive
)オプションを使用します。
chown -R USER:GROUP DIRECTORY
次の例では、
/var/www
ディレクトリの下のすべてのファイルとサブディレクトリの所有権を
www-data
という名前の新しい所有者とグループに変更し
www-data
。
chown -R www-data: /var/www
ディレクトリにシンボリックリンクが含まれる場合、
-h
オプションを渡します。
chown -hR www-data: /var/www
ディレクトリの所有権を再帰的に変更するときに使用できるその他のオプションは、
-H
および
-L
です。
chown
コマンドに渡された引数がディレクトリを指すシンボリックリンクである場合、
-H
オプションを指定すると、コマンドはそのディレクトリを走査します。
-L
は、
chown
、検出されたディレクトリへの各シンボリックリンクをトラバースするように指示します。 通常、これらのオプションは使用しないでください。システムを台無しにしたり、セキュリティリスクを生じたりする可能性があるためです。
参照ファイルを使用する
--reference=ref_file
オプションを使用すると、指定された参照ファイル(
ref_file
)と同じになるように、指定されたファイルのユーザーおよびグループの所有権を変更できます。 参照ファイルがシンボリックリンクの場合、
chown
はターゲットファイルのユーザーとグループを使用します。
chown --reference=REF_FILE FILE
たとえば、次のコマンドは、
file1
ユーザーとグループの所有権を
file2
割り当てます
結論
chown
は、ファイルのユーザーやグループの所有権を変更するためのLinux / UNIXコマンドラインユーティリティです。
chown
コマンドの詳細については、chownのmanページにアクセスするか、ターミナルで
man chown
してください。