アンドロイド

LinuxのChownコマンド(ファイル所有権)

Тренувальний тур III етапу Всеукраїнської олiмпiади з iнформатики 2018 2019 навчальний рік

Тренувальний тур III етапу Всеукраїнської олiмпiади з iнформатики 2018 2019 навчальний рік

目次:

Anonim

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 1000 file2

ファイルの所有者とグループを変更する方法

ファイルの所有者とグループの両方を変更するには、 chown コマンドの後に、スペースなしのコロン(:)とターゲットファイルで区切られた新しい所有者とグループを使用します。

chown USER:GROUP FILE

次のコマンドは、 file1 という名前のファイルの所有権を、 linuxize およびgroup users という名前の新しい所有者に linuxize users

chown linuxize:users file1

コロン(:)の後にグループ名を省略すると、ファイルのグループは指定されたユーザーのログイングループに変更されます。

chown linuxize: 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 オプションを使用します。

chown -h www-data symlink1

ファイルの所有権を再帰的に変更する方法

指定されたディレクトリの下のすべてのファイルとディレクトリを再帰的に操作するには、 -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 --reference=file1 file2

結論

chown は、ファイルのユーザーやグループの所有権を変更するためのLinux / UNIXコマンドラインユーティリティです。

chown コマンドの詳細については、chownのmanページにアクセスするか、ターミナルで man chown してください。

チャウンターミナル