\r\n\r\n
Linuxシステム上のファイルやディレクトリは,誰かの所有物です.その所有権を変更するには,chownコマンドを使います.
Linuxはマルチユーザーシステムです。オペレーティングシステムでは、複数のユーザーアカウントを定義し、有効なユーザーであれば誰でもコンピューターにログオンできるようになっています。さらに、複数のユーザーが同時にパソコンを使用することも可能です。
Linuxでは、どのファイルがどのユーザーのものであるかを記録し、セキュリティを強化するために、所有権という概念を用いています。各ファイルは、ユーザーとグループという1人のオーナーに属しています。
ファイルを作成すると、そのファイルを作成したユーザーがオーナーになります。ファイルを「所有」するグループは、ユーザーの現在のグループです。ユーザーとグループには名前があり、また、ユーザー(またはユニーク)識別子(UID)とグループ識別子(GID)と呼ばれる番号で識別されます。
ファイルを作成すると、そのファイルの所有者は自分になり、現在のグループに所属することになります。通常、ログインしているグループです。デフォルトでは、ユーザー名と同じ名前を持つグループで、システム上でユーザーとして作成したときに作成されたものです。
chownコマンドを使えば、所有者の値を別の値に変更することができます。新しいオーナー、新しいグループ、または新しいオーナーと新しいグループの両方を設定することができます。ファイルの所有者は、グループの所有権を変更することができますが、ユーザーの所有権を変更するには、別のユーザーが関与するため、rootユーザーしかできません。ルート権限を持っていない場合、システム上の他のユーザーが不用意にファイルを「採用」することは許されません。
以下は、そのような場合の例です。
自分が所属しているグループの一覧を表示するには、groupコマンドを使用します。
groupsグループとその数値ID、そしてあなたのUIDとGIDのリストを取得するには、以下のidコマンドを使用します。
idのIDを持ついくつかのオプションを使って、出力を最適化することができます。
ファイルやディレクトリの所有者を確認するには、ls と一緒に -l (long list) オプションを使用します。
ls -ldaveという名前がリストの中に2回出てくることがわかります。一番左の外観は、ファイルの所有者がdaveという名前のユーザーであることを示しています。右端のdaveは、そのファイルが同じくdaveという名前のグループに属していることを示しています。
デフォルトでは、Linuxユーザーを作成すると、ユーザー名を冠したプライベート・グループに追加され、そのグループの唯一のメンバーとなります。
この実行ファイルの所有者はユーザーmaryで、ファイルの所属するグループはmaryのプライベートグループです。
ls -lこのファイルの所有者はユーザー oscar ですが、このファイルが所属するグループは researchlab です。
いくつかの例を見てみましょう。このコマンドは while.c ファイルのユーザーオーナーシップをユーザー mary に変更します。
sudo chown mary while.clsを使って、ファイルの属性に加えられた変更を確認することができます。
ls -l while.cchownを使用すると、複数のファイルの所有者を一度に変更することができます。
sudo chown mary getval.c global.c goto.cこれにより、3つのファイルすべてのユーザー所有権が変更されます。
ls -l getval.c global.c goto.cこのコマンドは、"c "で始まるすべてのファイルのユーザー所有権を変更します。
sudo chown mary c*.*すべてのファイルの所有者がMaryになりました。グループの所有権は変更されていませんのでご注意ください。
ls -l mary c*.*ディレクトリの所有者を変更してみましょう。chownにはファイル名ではなく、ディレクトリ名を渡します。
sudo chown mary ./archive/ディレクトリの所有者属性を調べるには、lsを使用しますが、-d(ディレクトリ)オプションも使用します。これは、ディレクトリ内のファイルではなく、そのディレクトリの属性を一覧表示します。
ls -l -d ./archive/ディレクトリ内の全ファイルの所有権を変更するには、-R(recursive)オプションを使用することができます。このオプションは、アーカイブフォルダ内の全ファイルのユーザー所有権を変更します。
sudo chown -R mary ./archive/では、アーカイブディレクトリの中のファイルを見てみましょう。
ls -l ./archive/当然のことながら、すべてのファイルは現在Maryのものです。
所有権の再編成には、さまざまな方法があります。
ユーザーの所有権を変更すると同時にグループの所有権を変更するには、新しい所有者名と新しいグループ名をコロン「:」で区切ってください。
sudo chown mary:researchlab charm.cファイルが所属するユーザーオーナーとグループが変更されました。
ls -l charm.cグループの所有者を新しい所有者の現在のグループに変更するには、単にコロンを提供し、グループ名を省略します。
sudo chown mary: caps.c ls -l caps.cユーザーオーナーシップとグループオーナーシップの両方がmaryに変更されました。
グループの所有者のみを変更するには、その前にコロンを置き、ユーザー名を省略します;ユーザーの所有者は変更されません。
sudo chown :researchlab at.c ls -l at.cグループオーナーシップが変更されましたが、ユーザーオーナーシップは変わりません。
UIDとGIDの数値は、chownコマンドで使用できます。このコマンドは、ユーザーとグループの所有権をmaryに設定します。
sudo chown 1001:1001 at.c ls -l at.cとか言われています。しかし、Linuxでは、所有権はファイルセキュリティの重要な一部であり、残りはファイルのパーミッションによって提供されます。システム上のファイルへのアクセスを保護するには、chown と chmod コマンドを使用します。