unix permissions file permissions unix with examples
Unixパーミッション:Unixのさまざまなファイルパーミッションとは何かを学ぶ
Unixは、同じリソースを異なるユーザーが共有できるマルチユーザーシステムです。
Unixのすべての権限は、特定のファイルおよびフォルダーへのアクセスを特定のユーザーまたはユーザーグループに制限することに基づいています。
=> 完全なUnixチュートリアルシリーズについては、ここをクリックしてください
学習内容:
Unixパーミッション:例を含むファイルパーミッション
ファイルへのアクセスには、次の3つのレベルがあります。
- 読み取り許可– 許可されている場合、ユーザーはファイルの内容を読み取ることができます。
- 書き込み許可– 許可されている場合、ユーザーはファイルを変更できます。
- 実行許可– 許可されている場合、ユーザーはファイルをプログラムとして実行できます。
各ファイルは、ファイルにアクセスできるユーザーを決定するために使用される一連の識別子に関連付けられています。
- ユーザーID(UID) –ファイルを所有するユーザーを指定します。デフォルトでは、これがファイルの作成者です。
- グループID(GID) –ファイルが属するユーザーグループを指定します。
最後に、各ファイルに関連付けられた3セットのアクセス許可があります。
- ユーザー権限– ファイルのUIDに一致するユーザーに与えられるアクセスのレベルを指定します。
- グループの許可– ファイルのGIDに一致するグループのユーザーに与えられるアクセスのレベルを指定します。
- その他の許可– 一致するUIDまたはGIDのないユーザーに与えられるアクセスのレベルを指定します。
同時に、このアクセス制御スキームにより、Unixシステムは非常に安全になり、同時にマルチユーザーシステムに必要な柔軟性が提供されます。
ザ・ ls -l コマンドを使用して、現在のフォルダー内の各ファイルに関連付けられているアクセス許可を表示できます。
このコマンドの出力例を以下に示します。
例:
フラグリンク所有者グループサイズ変更日名
total of 24 drwxr-xr-x 7 user staff 224 Jun 21 15:26 . drwxrwxrwx 8 user staff 576 Jun 21 15:02. -rw-r--r-- 1 user staff 6 Jun 21 15:04 .hfile drwxr-xr-x 3 user staff 96 Jun 21 15:17 dir1 drwxr-xr-x 2 user staff 64 Jun 21 15:04 dir2 -rw-r--r-- 1 user staff 39 Jun 21 15:37 file1 -rw-r--r-- 1 user staff 35 Jun 21 15:32 file2
この出力では、「合計24」は、リストされたファイルが占めるブロックの総数を示します。
残りの列は次のとおりです。
- フラグ– ファイルモードとファイル権限を示すフラグのコレクション。
- リンク– ファイルに関連付けられているリンクの数。
- 所有者– ファイルを所有するUID。
- グループ– ファイルに関連付けられているGID。
- サイズ– ファイルのサイズ(バイト単位)。
- 変更日– ファイルへの最後の変更の月、日付、時間、分。
- 名前 - ファイルまたはディレクトリの名前。
最初の列のフラグは、ファイルモードとさまざまな権限のセットを指定します。
#1)最初の文字は、ファイルのタイプを示します。
unixは2つのファイルの違いを見つけます
- –:通常のファイルを表します
- d:ディレクトリを表します
- c:キャラクターデバイスファイルを表します
- b:ブロックデバイスファイルを表します
#2)次の3文字は、ユーザー権限を示します。
- これら3つのうちの最初のものは、ユーザーが読み取り権限を持っているかどうかを示します。
-
- –:ユーザーに読み取り権限がないことを示します。
- r:ユーザーが読み取り権限を持っていることを示します。
-
- 2番目の文字は、ユーザーが許可を書き込む必要があるかどうかを示します。
-
- –:ユーザーに書き込み権限がないことを示します。
- w:ユーザーが書き込み権限を持っている必要があることを示します。
-
- 最後の文字は、ユーザーが権限を実行したかどうかを示します。
-
- –:ユーザーが権限を実行する必要がないことを示します。
- x:ユーザーが権限を実行したことを示します。
-
#3) 次の3文字は、上記のユーザー権限と同様に、グループ権限を示します。
#4) 最後の3文字は、上記のユーザー権限と同様に、パブリック権限を示します。
ファイルが通常のファイルの場合、読み取り権限により、ユーザーはファイルを開いてその内容を調べることができます。書き込み権限により、ユーザーはファイルの内容を変更できます。また、実行権限により、ユーザーはファイルをプログラムとして実行できます。
ファイルがディレクトリの場合、読み取り権限により、ユーザーはディレクトリの内容を一覧表示できます。書き込み権限により、ユーザーはディレクトリに新しいファイルを作成し、そこからファイルまたはディレクトリを削除できます。実行権限により、ユーザーはディレクトリで検索を実行できます。
アクセス許可を変更するためのUnixコマンドラインツール
Unixには、アクセス許可を変更するためのコマンドラインツールがいくつか用意されています。
ファイルの所有者のみがアクセス許可を変更できることに注意してください。
1. chmod :ファイルのアクセス許可を変更する
- 説明: このコマンドは、ファイルのアクセス許可を変更するために使用されます。これらの権限は、所有者、グループなどの読み取り、書き込み、および実行の権限です。
- 構文(シンボリックモード) :
chmod (ugoa)((+-=)(mode)) file
- 最初のオプションのパラメーターは、誰を示します–これは、(u)ser、(g)roup、(o)thers、または(a)llにすることができます
- 2番目のオプションのパラメーターはオペコードを示します。これは、パーミッションの追加(+)、削除(-)、または割り当て(=)に使用できます。
- 3番目のオプションのパラメーターは、モードを示します。これは、(r)ead、(w)rite、またはe(x)ecuteのいずれかです。
例 :file1のユーザー、グループなどの書き込み権限を追加します
$ ls -l
-rw-r–r–1ユーザースタッフ396月21日15:37file1
-rw-r–r–1ユーザースタッフ356月21日15:32file2
$ chmod ugo+w file1 $ ls -l
-rw-rw-rw-1ユーザースタッフ396月21日15:37file1
-rw-r–r–1ユーザースタッフ356月21日15:32file2
$ chmod o-w file1 $ ls -l
-rw-rw-r–1ユーザースタッフ396月21日15:37file1
-rw-r–r–1ユーザースタッフ356月21日15:32file2
- 構文(数値モード) :
chmod (mode) file
- モードは3桁の組み合わせです。最初の桁はユーザーの許可、2番目の桁はグループ、3番目の桁は他のユーザーの許可を示します。
- 各桁は、関連する権限を追加することによって計算されます。読み取り権限は「4」、書き込み権限は「2」、実行権限は「1」です。
- 例 :ユーザーに読み取り/書き込み/実行権限を付与し、グループに読み取り/実行権限を付与し、他のユーザーに実行権限を付与します。
$ ls -l
-rw-r–r–1ユーザースタッフ396月21日15:37file1
-rw-r–r–1ユーザースタッフ356月21日15:32file2
$ chmod 777 file1 $ ls -l
-rwxrwxrwx1ユーザースタッフ396月21日15:37file1
-rw-r–r–1ユーザースタッフ356月21日15:32file2
2.chown :ファイルの所有権を変更します。
- 説明 :ファイルの所有者のみがファイルの所有権を変更する権限を持っています。
- 構文 :chown (所有者) (ファイル)
- 例 :file1が現在のユーザーによって現在所有されていると想定して、file1の所有者をuser2に変更します。
$ chown user2 file1
3. chgrp :ファイルのグループ所有権を変更します。
- 説明 :ファイルの所有者のみがファイルの所有権を変更する権限を持っています。
- 構文 :chgrp (グループ) (ファイル)
- 例 :file1のグループを現在のユーザーが現在所有していると仮定してgroup2に変更します。
$ chgrp group2 file1
新しいファイルを作成するときに、Unixはデフォルトのファイル権限を設定します。 Unixは、umaskという変数に格納されている値を使用して、デフォルトの権限を決定します。 umask値は、3セットのアクセス許可のどれを無効にする必要があるかをUnixに指示します。
フラグは3桁の8進数で構成され、それぞれがユーザー、グループなどのアクセス許可マスクを表します。デフォルトの権限は、ディレクトリの「777」とファイルの「666」からumask値を差し引くことによって決定されます。 umaskのデフォルト値は「022」です。
4. umask :デフォルトのアクセス許可を変更する
qtpの記述的プログラミングとは
- 説明: このコマンドは、デフォルトのファイル権限を設定するために使用されます。これらの権限は、所有者、グループ、およびその他の権限の読み取り、書き込み、および実行です。
- 構文 :umask (モード)
- モードは3桁の組み合わせです。最初の桁はユーザーの許可、2番目の桁はグループ、3番目の桁は他のユーザーの許可を示します。
- 各桁は、関連する権限を追加することによって計算されます。読み取り権限は「4」、書き込み権限は「2」、実行権限は「1」です。
例 :ユーザーに読み取り/書き込み/実行権限を付与し、グループや他のユーザーには権限を付与しません。つまり、ファイルの権限は600になり、ディレクトリの権限は700になります。
$ umask 077
- 例 :ユーザーに読み取り/書き込み/実行権限を付与し、ディレクトリに対してグループなどに読み取り/実行権限を付与し、他のファイルに対してグループなどに読み取り専用権限を付与します。つまり、ファイルの権限は644になり、ディレクトリの権限は755になります。
$ umask 022
結論
Unixでの権限は、「ユーザー」、「グループ」、および「その他」と呼ばれるすべてのユーザーに適用できます。
権限フラグ、リンク数、所有者、グループ、サイズ、最終変更日、ファイルなどの詳細は、コマンド「ls-l」で簡単に取得できます。
=> 完全なUnixチュートリアルシリーズについては、ここをクリックしてください