所有権とファイルのアクセス許可を管理することは、おそらくシステム管理者にとって最も重要なタスクです。Linuxのようなマルチユーザー オペレーティング システムでは、ファイルとディレクトリの所有権を適切に割り当てることが重要です。
chown コマンドは、これに最も役立つツールです。chmodと間違わないように、 chown はファイルのユーザー所有権を変更し、それらを別のグループに割り当てることができます。これは、本格的なLinuxユーザーが習得するために不可欠なコマンドです。
ここでは、開始するためのガイドを示します。
ファイルの(A File)所有権(Ownership)を確認するにはどうすればよいですか?
さまざまな所有者やグループ間でファイルを移動する前に、まずファイルの現在の所有者を確認する方法を学ぶ必要があります。プロセスは簡単です。通常の ls コマンドに -l フラグを追加すると、クエリ対象のファイルまたはディレクトリの所有権情報が含まれます。
example.txt(Say)というファイルがあるとします。所有権情報を表示するコマンドは次のようになります。
ls -l example.txt
単一ファイルで chown を使用する
chown を使用する最も簡単な方法は、特定のファイルを所有するユーザーを変更することです。構文は sudo chown username filename です。ここで、username はファイルを渡すユーザーの名前で、filename は問題のファイルの名前です。これは、実際には次のようになります。
sudo chown someone_else example.txt
これにより、ファイルのグループ所有権が変更されるのではなく、ユーザーのみが変更されることに注意してください。グループ所有者を変更するには、別の構文を使用する必要があります – sudo chown :groupname filename
この特定のケースでは、これは次のようになります。
sudo chown :group2 example.txt
両方のコマンドを 1 行にまとめて、ファイルのユーザーとグループの所有権を変更することもできます。
sudo chown me:group1 example.txt
chownを使用した複数ファイルの(Multiple Files)所有権(Ownership)の変更
多数のファイルを扱う場合、すべてのファイルの所有権を個別に変更するのは面倒です。ありがたいことに、ほとんどの Linux コマンド(most Linux commands)では、スペースで区切られた複数のファイル名を 1 つのコマンド内で連鎖させることができます。このような:
sudo chown someone_else:group2 example1.txt example2.txt
同じトリックを使用して、複数のファイルの所有権も確認します。
ls -l example1.txt example2.txt
複数のファイル名を 1 つのコマンドに結合する場合でも、ファイルが 2 つ以上ある場合、このプロセスは不便すぎます。より良いアプローチは、ディレクトリの内容全体の所有権を一度に変更することです。
これは、-R フラグを chown コマンドに追加することによって実現されます。これにより、chown はディレクトリの内容を調べ、内部のすべてのファイルの所有権を再帰的に変更します。ここにデモンストレーションがあります:
sudo chown -R someone_else:group2 の例
再帰フラグを再度使用して、examples フォルダー内のファイルの所有権を確認できます。
ls -l -R の例
UID を使用してファイルの所有権を変更する
多くのユーザーを管理するシステム管理者は、ユーザー名を繰り返し入力することにすぐに飽きてしまいます。chown を使用すると、いずれかの名前に 1 つのタイプミスがあるとエラーがスローされ、処理が大幅に遅くなります。
より適切な代替手段は、代わりにユーザー ID を使用することです。UIDは、作成された各ユーザーに割り当てられる 4 桁の番号で、1000 から始まります。これは、文字列よりもはるかに簡単に入力でき、エラーが発生しにくくなります。
この方法を使用するには、ユーザー名を UID に置き換えるだけです。
sudo chown 1001 example.txt
ユーザーのUID(UID)がわからない場合は、id コマンドですばやく確認できます。id -u username と入力する
だけで、そのユーザーの一意の ID が表示されます。(Just)
このメソッドは、グループ名にも拡張できます。ユーザーのログイン グループおよびユーザーが属する他のグループの
UIDを取得するには、-u フラグを指定せずに id コマンドを使用します。
id someone_else
ご覧のとおり、指定したユーザーが属するさまざまなグループ ID があります。すべてをまとめると、次のように chown を使用して、新しい所有者を割り当て、ファイルのグループを変更できます。
sudo chown 1001:1003 example.txt
chownコマンド(Command)で他に何ができますか?
chown の一般的な使用法のほとんどは既に説明しました。さまざまな方法で、ファイルを所有するユーザーとグループを変更できるようになりました。しかし、それはコマンドの能力の完全な限界ではありません。
技術的な説明と、コマンドで使用できる引数の完全なリストについては、公式の man ページを参照してください。端末に man chown と入力する
だけで表示できます。(Just)
Chownは便利ですか?
あなたがコンピュータの唯一のユーザーである場合は、chown を使用する必要はありません。しかし、商用サーバーであれ大学のコンピューターであれ、専門的な環境でLinuxシステムを使用する場合は、chown コマンド ( (Linux)chmodに加えて) を習得することが最も重要です。
ユーザーやグループにファイルを割り当てたり削除したりする機能は、マルチユーザー システムで厳密な境界を維持するために不可欠です。chown の最大の利点はその柔軟性です。同じコマンドで個々のファイルまたはディレクトリ全体を操作できます。
ユーザーとグループに所有権を個別に割り当てることも、組み合わせたステートメントで割り当てることもできます。より便利なUID(UIDs)とともに使用すると、最も複雑なユーザー階層の処理も簡単になります。
Chown Command in Linux: How to Use It
Managing ownership and file permissions is prоbably the most essеntial task of a system administrator. In any multi-user operating system like Linux, properly assigning ownership of files and directories is crucial.
The chown command is the most helpful tool for this. Not to be mistaken with chmod, chown can modify user ownership of files and assign them to different groups. It is an essential command to master for any serious Linux user.
Here is a guide to get you started.
How Do You Check the Ownership of A File?
Before you start shifting files around different owners and groups, you should first learn how to check a file’s current owner. The process is simple: adding a -l flag to a regular ls command includes ownership information of the file or directory queried.
Say you have a file called example.txt. This is how the command to view its ownership information will look like:
ls -l example.txt
Using chown On A Single File
The simplest way to use chown is to change the user owning a particular file. The syntax is sudo chown username filename, where username is the name of the user you want to give the file to, and filename is the name of the file in question. This is what it looks like in practice:
sudo chown someone_else example.txt
Note that this does not change the group ownership of the files, only the user. To change the group owner, you have to use a different syntax – sudo chown :groupname filename
In this specific case, this becomes:
sudo chown :group2 example.txt
You can also combine both commands into a single line to change the user as well as group ownership of a file:
sudo chown me:group1 example.txt
Changing Ownership of Multiple Files With Chown
Changing the ownership of every file individually is rather tedious when dealing with a larger number of files. Thankfully, most Linux commands let you chain together multiple space-separated file names within a single command. Like this:
sudo chown someone_else:group2 example1.txt example2.txt
Use the same trick to check the ownership of multiple files as well:
ls -l example1.txt example2.txt
Even for combining multiple file names into a single command, the process is too inconvenient for more than a couple of files. A better approach is to change the ownership of the entire contents of a directory at once.
This is achieved by adding a -R flag to the chown command. This makes chown go through the directory’s contents and recursively change the ownership of every file inside. Here is a demonstration:
sudo chown -R someone_else:group2 examples
We can use the recursive flag again to check the ownership of the files in the examples folder.
ls -l -R examples
Modify File Ownership With UID
System administrators managing many users will quickly get tired of entering user names repeatedly. A single typo in any of the names throws an error in using chown, slowing things down considerably.
A better alternative is to use the user ID instead. The UID is a four-digit number assigned to each user created, starting from 1000 and going up. This is far easier to enter than a string and much less error-prone.
To use this method, just replace the username with the UID:
sudo chown 1001 example.txt
If you don’t know the UID of a user, you can quickly check it with the id command. Just enter id -u username to see the unique ID of that user.
This method can be extended to group names as well. To get the UID of a user’s login group and other groups they belong to, use the id command without the -u flag.
id someone_else
As you can see, we have various group ids to which the specified user belongs. Putting it all together, we can use chown like this to assign a new owner and change the group of a file:
sudo chown 1001:1003 example.txt
What Else Can You Do With the chown Command?
We have already demonstrated most of the common uses of chown. You can now change users and groups that own a file through various methods. But that’s not the complete limit of the command’s abilities.
You can refer to the official man pages for a technical description and a complete list of arguments you can use with the command. Just enter man chown in the terminal to view it.
Is Chown Useful?
If you are the sole user of your computer, then you will never need to use chown. But if you use a Linux system in a professional setting, be it a commercial server or a university computer, then mastering the chown command (in addition to chmod) is of utmost importance.
The ability to assign and remove files to users and groups is essential in maintaining strict boundaries in multi-user systems. The best part about chown is its flexibility – you can work with individual files or whole directories with the same command.
You can also assign ownership to users and groups separately and in a combined statement. Used with the more convenient UIDs, it makes handling even the most complex user hierarchies a breeze.