3.4.4. 権限の管理
Linuxはマルチユーザーシステムであるため、ファイルとディレクトリ(すべてのシステムリソースとデバイスを含む)に対する許可された操作セットを制御するためのパーミッションシステムを提供する必要があります(Unixシステムでは、すべてのデバイスはファイルまたはディレクトリとして表されます)。この原則は、すべてのUnix系システムに共通しています。
各ファイルまたはディレクトリには、次の 3 つのカテゴリのユーザーに対する特定の権限があります。
• 所有者( u(ユーザーの場合)
• 所有者グループ( g(グループの場合)は、グループのすべてのメンバーを表します。
• その他( o3 種類の権利を組み合わせることができます。
• 読書(記号は r(読む場合と同様);
• 書くこと(または修正すること、 w(書く場合と同様)
• 実行(象徴は x(eXecute のように)
ファイルの場合、これらの権限は簡単に理解できます。読み取りアクセスではコンテンツの読み取り (コピーを含む) が許可され、書き込みアクセスでは変更が許可され、実行アクセスでは実行 (プログラムの場合にのみ機能します) が許可されます。
setuid セットギッド 実行可能ファイルには、特に次の 2 つの権限が関連します。 setuid セットギッド (記号化された 実行可能ファイル (文字「s」で始まる)ビットについてよく言及することに注意してください。これらのブール値は0または1で表すことができるため、ビットについてよく言及します。これらのXNUMXつの権限により、すべてのユーザーが実行できます。
プログラムに、それぞれ所有者またはグループの権限を付与します。このメカニズムにより、通常よりも高いレベルの権限を必要とする機能へのアクセスが許可されます。
から setuid ルートプログラムはスーパーユーザーIDでシステム的に実行されるため、その安全性と信頼性を確保することが非常に重要です。setuid ルートプログラムを改ざんして任意のコマンドを実行できるユーザーは、ルートユーザーになりすまし、システム上のすべての権限を掌握できます。侵入テスターは、システムへのアクセス時に権限昇格の手段として、これらの種類のファイルを定期的に検索します。
setuid セットギッド 実行可能ファイルには、特に次の 2 つの権限が関連します。 setuid セットギッド (記号化された 実行可能ファイル (文字「s」で始まる)ビットについてよく言及することに注意してください。これらのブール値は0または1で表すことができるため、ビットについてよく言及します。これらのXNUMXつの権限により、すべてのユーザーが実行できます。
プログラムに、それぞれ所有者またはグループの権限を付与します。このメカニズムにより、通常よりも高いレベルの権限を必要とする機能へのアクセスが許可されます。
から setuid ルートプログラムはスーパーユーザーIDでシステム的に実行されるため、その安全性と信頼性を確保することが非常に重要です。setuid ルートプログラムを改ざんして任意のコマンドを実行できるユーザーは、ルートユーザーになりすまし、システム上のすべての権限を掌握できます。侵入テスターは、システムへのアクセス時に権限昇格の手段として、これらの種類のファイルを定期的に検索します。
ディレクトリはファイルとは異なる扱い方をします。読み取りアクセスはディレクトリの内容(ファイルとディレクトリ)の一覧を参照する権限を与えます。書き込みアクセスはファイルの作成または削除を許可します。実行アクセスはディレクトリを通過してその内容にアクセスすることを許可します(例えば、 cd コマンド)。ディレクトリを読み取ることができなくてもディレクトリを横断できるということは、名前がわかっているエントリにアクセスする権限がユーザーに与えられますが、正確な名前を知らないとエントリを見つける権限は与えられません。
SECURITY 当学校区の セットギッド ビットはディレクトリにも適用されます。そのようなディレクトリに新しく作成された項目は
SECURITY 当学校区の セットギッド ビットはディレクトリにも適用されます。そのようなディレクトリに新しく作成された項目は
セットギッド ディレクトリと スティッキー
ビット
継承ではなく、親ディレクトリの所有者グループが自動的に割り当てられます。
クリエイターのメイングループを通常通り作成します。そのため、メイングループを変更する必要はありません( 新しいグループ 同じ専用グループの複数のユーザー間で共有されるファイル ツリーで作業する場合は、このコマンドを使用します。
当学校区の スティッキービット (文字「t」で表されます)はディレクトリ内でのみ有効な権限です。特に、すべてのユーザーが書き込み権限を持つ一時ディレクトリ(例: / tmp /: ファイルの削除を制限し、ファイルの所有者または親ディレクトリの所有者のみが削除できるようにします。これがないと、誰でも他のユーザーのファイルを削除できてしまいます。 / tmp /.
セットギッド ディレクトリと スティッキー
ビット
次の 3 つのコマンドは、ファイルに関連付けられた権限を制御します。
• chown ユーザーファイル ファイルの所有者を変更する
TIP ファイルのグループを変更すると同時に、
TIP ファイルのグループを変更すると同時に、
ユーザーの変更と
グループヘッド
所有者を変更する。 chown コマンドにはそのための特別な構文があります: chown
user:グループファイル
ユーザーの変更と
グループヘッド
• chgrp グループファイル 所有者グループを変更する
• chmod 権利ファイル ファイルの権限を変更する
権限を表す方法は2つあります。その中で、記号による表現はおそらく最も理解しやすく覚えやすいでしょう。これは前述の文字記号を使用します。ユーザーのカテゴリごとに権限を定義できます(u/g/o)を明示的に設定することで( =)を追加することで
(+)、または減算(-)。したがって、 u=rwx,g+rw,または この式は、所有者に読み取り、書き込み、実行権限を与え、所有者グループに読み取りと書き込み権限を追加し、他のユーザーの読み取り権限を削除します。このようなコマンドで追加または削除によって変更されない権限はそのまま残ります。 aは、すべての3つのカテゴリーのユーザーをカバーしているため、 a=rx 3 つのカテゴリすべてに同じ権限 (読み取りと実行は可能だが、書き込みは不可) を付与します。
(4進数の)数値表現は、各権限に値を割り当てます。読み取りは2、書き込みは1、実行はXNUMXです。権限の各組み合わせは、XNUMXつの数字の合計に割り当て、各ユーザーカテゴリには、通常の順序(所有者、グループ、その他)で値が割り当てられます。
例えば、 chmodの754 file コマンドは、所有者に読み取り、書き込み、実行権限(7 = 4 + 2 + 1 のため)、グループに読み取りと実行権限(5 = 4 + 1 のため)、その他に読み取り専用権限を設定します。 0 権利がないことを意味するので chmodの600 file 所有者には読み取りと書き込みの権限が与えられ、他のユーザーには権限が与えられません。最も一般的な権限の組み合わせは次のとおりです。 755 実行ファイルとディレクトリの場合、 644 データファイル用。
特別な権利を表すには、同じ原則に従ってこの番号の4桁目の数字を前に付けることができます。 setuid, セットギッド, スティッキー ビットはそれぞれ4、2、1です。コマンド chmodの4754 関連付けます setuid 前述の権利を持つビット。
8 進表記法を使用すると、ファイルに対するすべての権限を一度に設定することしかできないことに注意してください。既存の権限を考慮して、対応する新しい数値を計算する必要があるため、グループ所有者の読み取りアクセスなどの新しい権限を追加することはできません。
8進数表現は、 umask コマンドは、新しく作成されたファイルの権限を制限するために使用されます。アプリケーションがファイルを作成すると、システムは自動的に権限を削除することを認識し、指示的な権限を割り当てます。 umask。 入る umask シェルでは、次のようなマスクが表示されます。 0022これは、体系的に削除される権限(この場合は、グループと他のユーザーの書き込み権限)の単純な8進表現です。
新しい8進数値を与えると、 umask コマンドはマスクを変更します。シェルの初期化ファイル(例えば、 〜/ .bash_profile) を使用すると、作業セッションのデフォルトのマスクが効果的に変更されます。
TIP ファイルツリー全体の権限を変更しなければならない場合もあります。上記のコマンドはすべて
TIP ファイルツリー全体の権限を変更しなければならない場合もあります。上記のコマンドはすべて
再帰操作
持っている -R サブディレクトリ内で再帰的に操作するオプション。
ディレクトリとファイルの区別は、再帰的な操作で問題を引き起こすことがあります。そのため、権限の記号表現に「X」文字が導入されました。これは、ディレクトリにのみ適用される(権限を持たないファイルには適用されない)実行権限を表します。つまり、 chmod -R a+X ディレクトリにジョブを開始します。 すべてのカテゴリのユーザーに実行権限を追加するだけです(a) は、少なくとも 1 つのカテゴリのユーザー (その唯一の所有者であっても) がすでに実行権限を持っているすべてのサブディレクトリとファイルに対して実行されます。
再帰操作