ただし、異なる点についてはフォルダーと明記します。
アクセス権とは
ファイルに限らずリソースには、誰がどのようなアクセスが可能か、アクセスを制御する仕組みがあります。
ファイルに目を向けると、「誰が」が3種類、「どのようなアクセスが可能か」が3種類あります。
アクセス権
上記で言うところの「どのようなアクセスが可能か」に相当します。読み込み権限
ファイルの読み込みや閲覧を行う権限です。この権限がないとファイルの中身を読み込むことはできません。
書き込み権限
ファイルにデータを書き込むなど、ファイルの中身を変更できる権限です。この権限がないと、ファイルの中身を変更することはできません。
テキストエディタで言えば、ファイルの保存ができない、ということです。
実行権限
ファイルを実行する権限です。コマンドやスクリプト、アプリはこの権限がないと実行できません。
Windowsでは実行可能なファイルかどうかは拡張子で判断していますが、
Ubuntuではこの権限があるかどうかで判断しています。
Windowsにはない権限なので、結構忘れがちな権限です。
実行可能なファイルなのに実行できない場合は、この権限の有無を確認するとよいでしょう。
フォルダーの実行権限
フォルダーの実行権限はファイルの実行権限とは意味合いが異なります。フォルダーに実行権限がないと、フォルダー内のファイルにアクセスできません。
フォルダー内のファイル表示(列挙)のみ可能です。
いずれかの権限を指定しない場合は、「権限なし」として扱われます。
アクセス権の適用対象
上記で言うところの「誰が」に相当します。例として以下のユーザーが存在しているものとします。
・ユーザー1
・ユーザー2
・ユーザー3
所有者
ファイルの所有者です。所有者=ファイルを作ったユーザーだと見てもらって構いません。
所有者になれるのは1ユーザーだけです。
複数のユーザーが所有者になることはできません。
従って所有者になれるのは、ユーザー1、ユーザー2、ユーザー3の何れか一人だけです。
ファイルのアクセス権の適用対象やアクセス権を変更できるのは、
所有者とルートユーザーだけです。
グループ
グループとは、ユーザーの集合単位です。一人以上のユーザーが属することができます。
例えば以下のような感じです。
グループA: ユーザー1、ユーザー2
グループB: ユーザー1、ユーザー3
その他
所有者でもなく、グループにも属さないユーザーという事です。アクセス権を設定するときは、
3種類の「誰が」と3種類の「どのようなアクセスが可能か」を指定します。
アクセス権の例
以下のようなファイルがあるとします。所有者:ユーザー1 権限:読み込み/書き込み
グループ:グループA 権限:読み込み
その他:権限なし
この場合、各ユーザーのアクセス権は以下のようになります。
ユーザー1:読み込み/書き込み
ユーザー1はグループAに属していますが、所有者の権限が優先されます。ユーザー2:読み込み
ユーザー2はグループAに属しているため、グループで設定された権限が適用されます。ユーザー3:権限なし
ユーザー3は所有者でもなく、グループAにも属していないため、その他の権限が適用されます。
ルートユーザーのアクセス権
ルートユーザーのユーザー名は「root」で、属しているグループは「root」ですが、ルートユーザーはアクセス権による制限を受けません。
ただしネットワーク上のリソース等、相手方がアクセス制御を行なっている場合は除きます。
ルートユーザーの権限も制御したい場合、
SELinuxを導入すればルートユーザー含めもっと細やかな制限が可能になります。
しかし、通常そこまでする必要はないでしょう。