この章では、Unixのファイル権限とアクセスモードについて詳しく説明します。 ファイルを所有することが重要な構成要素のUnixセキュアな方法で保存ファイルです。, Unixのすべてのファイルには次の属性があります−
-
所有者の権限−所有者の権限によって、ファイルの所有者がファイルに対して実行できるア
-
グループ権限−グループの権限によって、ファイルが属するグループのメンバーであるユーザーがファイルに対して実行できるアクションが決まります。
-
その他(ワールド)権限−その他のユーザーの権限は、そのファイルに対して他のすべてのユーザーが実行できるアクションを示します。,
許可インジケータ
ls-lコマンドを使用している間、ファイル許可に関連するさまざまな情報を次のように表示します−
$ls -l /home/amrood-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfiledrwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
ここで、最初の列は異なるアクセスモード、すなわちファイルまたはディレクトリに関連付けられた許可を表します。読み取り(r)、書き込み(w)、実行(x)−
ファイルアクセスモード
ファイルのパーミッションは、Unixシステムのセキュリティにおける最初の防衛線です。, Unix権限の基本的な構成要素は、読み取り、書き込み、および実行権限です。
Read
は、ファイルの内容を読み取る、つまり表示する機能を付与します。
Write
ファイルの内容を変更または削除する機能を付与します。
Execute
実行権限を持つユーザーは、ファイルをプログラムとして実行できます。
ディレクトリアクセスモード
ディレクトリアクセスモードは、他のファイルと同じ方法でリストおよび編成されます。, 言及する必要があるいくつかの違いがあります−
Read
ディレクトリへのアクセスは、ユーザーが内容を読むことができることを意味します。 ユーザーはディレクトリ内のファイル名を見ることができます。
Write
アクセスは、ユーザーがディレクトリからファイルを追加または削除できることを意味します。
Execute
ディレクトリを実行することは本当に意味をなさないので、これをトラバース許可と考えてください。
lsコマンドまたはcdコマンドを実行するには、binディレクトリへの実行アクセス権を持っている必要があります。,
パーミッションの変更
ファイルまたはディレクトリのパーミッションを変更するには、chmod(change mode)コマンドを使用します。 Chmodを使用するには、シンボリックモードと絶対モードの二つの方法があります。
Chmodをシンボリックモードで使用する
初心者がファイルまたはディレクトリの権限を変更する最も簡単な方法は、シンボリックモードを使用す シンボリックアクセス許可を使用すると、次の表の演算子を使用して、必要なアクセス許可セットを追加、削除、または指定できます。
Sr.No—–, | Chmod演算子&説明 |
---|---|
1 |
+ 指定された権限をファイルまたはディレクトリに追加します。 |
2 |
指定された権限をファイルまたはディレクトリから削除します。 |
3 |
= 指定されたパーミッションを設定します。 |
testfileを使用した例を次に示します。, テストファイルでls-1を実行すると、ファイルの権限が次のようになります−
$ls -l testfile-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
前の表の各chmodコマンドがテストファイルで実行され、その後にls–lが続くので、アクセス許可の変更が表示されます−
これらのコマンドを一行で組み合わせる方法があります−
$chmod o+wx,u-x,g = rx testfile$ls -l testfile-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
chmodを絶対アクセス許可で使用すると、絶対アクセス許可を持つchmodを使用します
chmodコマンドでパーミッションを変更する第二の方法は、ファイルの各パーミッションセットを指定するために番号を使用することです。,
次の表に示すように、各権限に値が割り当てられ、各権限セットの合計によってそのセットの番号が割り当てられます。
testfileを使用した例を次に示します。 テストファイルでls-1を実行すると、ファイルの権限が次のようになります。
$ls -l testfile-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
前の表の各chmodコマンドがテストファイルで実行され、その後にls−lが続きます。
所有者とグループの変更
Unixでアカウントを作成すると、所有者IDとグループIDが各ユーザーに割り当てられます。, 上記のすべての権限も、所有者とグループに基づいて割り当てられます。
所有者とファイルのグループを変更するための二つのコマンドが利用可能です−
-
chown−chownコマンドは”change owner”の略で、ファイルの所有者を変更するために使
-
chgrp-chgrpコマンドは”グループの変更”の略で、ファイルのグループを変更するために使用されます。
所有権の変更
chownコマンドはファイルの所有権を変更します。, 基本的な構文は次のとおりです。
$ chown user filelist
ユーザーの値は、システム上のユーザーの名前またはシステム上のユーザーのユーザー id(uid)のいずれかです。
次の例では、概念を理解するのに役立ちます−
$ chown amrood testfile$
指定されたファイルの所有者をユーザーamroodに変更します。
注−スーパーユーザー rootは任意のファイルの所有権を変更する無制限の機能を持ちますが、通常のユーザーは所有するファイルの所有権のみを変更できます。,
グループ所有権の変更
chgrpコマンドは、ファイルのグループ所有権を変更します。 基本的な構文は次のとおりです−
$ chgrp group filelist
groupの値は、システム上のグループの名前またはシステム上のグループのグループID(GID)です。
次の例では、概念を理解するのに役立ちます−
$ chgrp special testfile$
指定されたファイルのグループを特別なグループに変更します。
SUIDおよびSGIDファイル権限
多くの場合、コマンドが実行されると、そのタスクを実行するために特別な権限で実行する必要があります。,
例として、passwdコマンドでパスワードを変更すると、新しいパスワードは/etc/shadowファイルに保存されます。
通常のユーザーとして、セキュリティ上の理由からこのファイルに対する読み取りまたは書き込みアクセス権はありませんが、パスワードを変更するときは、このファイルへの書き込み権限が必要です。 つまり、passwdプログラムは、/etc/shadowファイルに書き込むことができるように、追加の権限を与える必要があります。
追加の権限は、SET User ID(SUID)ビットとSet Group ID(SGID)ビットとして知られるメカニズムを介してプログラムに与えられます。,
SUIDビットが有効になっているプログラムを実行すると、そのプログラムの所有者の権限が継承されます。 SUIDビットが設定されていないプログラムは、プログラムを起動したユーザーの権限で実行されます。
これはSGIDの場合にも当てはまります。 通常、プログラムの実行をごグループの権限でごグループを変更するだけでこのプログラムのグループオーナーのプログラム。
SUIDビットとSGIDビットは、アクセス許可が利用可能な場合、文字”s”として表示されます。, SUID”s”ビットは、所有者の実行権限が通常存在するpermissionビットに配置されます。
たとえば、コマンド−
$ ls -l /usr/bin/passwd-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*$
は、SUIDビットが設定されており、コマンドがルートに所有されていることを示します。 小文字のsではなく、実行位置の大文字のSは、実行ビットが設定されていないことを示します。,
- スティッキーディレクトリの所有者
- 削除されるファイルの所有者
- スーパーユーザroot
任意のディレクトリのSUIDとSGIDビットを設定するには、次のコマンドを試してください−
$ chmod ug+s dirname$ ls -ldrwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname$
div