リソースへのアクセスの管理は、システム管理者にとって基本的なタスクです。この責任は、ID、リソース、および権限の3つのコンポーネントで構成されます。この記事では、リソースへのアクセスを制御するためのいくつかのユーザー、グループ、およびファイル管理コマンドについて説明します。この記事では「どうすれば…?」を使用しています。形式であり、操作するリソースがいくつかあることを前提としています。具体的には、次のトピックについて説明します。
- ディレクトリとファイルの作成
- 所有権と関連グループの管理
- 絶対モードとシンボリックモードで権限を設定する
遊び場の設置
私は約25年間ITに携わっており、そのほとんどの時間はテクニカルトレーナーとして費やされていました。つまり、私が書いているものは通常、ある種のラボまたは他の実践的な機会として構成されています。それは私が材料をカバーする方法です。そのことを念頭に置いて、記事の残りの部分を読むときに、実験するためのIDとリソースがいくつかあると仮定します。次のコマンドを使用して、遊び場を設定できます。これは、個人のLinuxボックスではなく仮想マシンで行うのが最善ですが、これらのタスクは比較的無害です。
作業する2つの新しいユーザーと2つの新しいグループを作成します。これらのアカウントでログオンすることはないため、この演習ではユーザーのパスワードを構成する必要がないことに注意してください。
# useradd user01
# useradd user02
# groupadd groupA
# groupadd groupB
注 : passwd user01
を使用します ユーザーのパスワードを設定するコマンド。
ホームディレクトリに、 playground
という名前の新しいディレクトリを作成します :
# mkdir playground
〜/ playground
に変更します cd
を使用したディレクトリ 指図。以下のコマンドと概念を使用する準備が整いました。
記事を完成させ、私がカバーしたテクニックを学んだら、2つのユーザーアカウント、グループ、およびプレイグラウンドディレクトリを削除します。 rm -fR / playground
を使用します 、 userdel user01
、および groupdel groupA
リソースを削除します。
ディレクトリとファイルを作成するにはどうすればよいですか?
mkdir
を使用します ディレクトリを作成するコマンド。 touch
コマンドは、ファイルを作成する多くの方法の1つです。
Resources
という名前のディレクトリを作成するにはどうすればよいですか ?
# mkdir Resources
ディレクトリパス(まだ存在しない一連のディレクトリ)を作成するにはどうすればよいですか?
# mkdir -p Resources/data/2020data
注 :ここでの目標は、 2020data
を作成することです ディレクトリですが、指定されたパスの data
ディレクトリはまだ存在しません。 -p
オプションは、パスを完了するために必要に応じて親ディレクトリを作成します。
file1
という名前のファイルを作成するにはどうすればよいですか ?
# touch file1
一度に複数のファイルを作成するにはどうすればよいですか?
# touch file2 file3 file4
所有権とグループを管理するにはどうすればよいですか?
プレイグラウンドディレクトリで、 Resources
に関連付けられている現在の所有者とグループを表示します ディレクトリとファイル。
権限、所有者、グループを表示するにはどうすればよいですか?
# ls -l
ls -l </ code> コマンドは、ディレクトリの内容を長い形式で表示します。長い形式には、権限と所有権の両方が含まれています。リソースを作成したユーザーアカウントもそれらのリソースを所有していることがわかります。グループの関連付けは、そのユーザーのプライマリグループでもあります。
file1
に関連付けられているユーザー/所有者を変更するにはどうすればよいですか ?
# chown user02 file1
file1
に関連付けられているグループを変更するにはどうすればよいですか ?
# chown :groupA file1
file2
の所有者とグループを同時に変更するにはどうすればよいですか。 ?
# chown user02:groupA file2
特定のchgrp
があります コマンドですが、1つのコマンド( chown
)だけを覚えておきたいです。 )そして、 chown
ではなく、両方の機能(ユーザーとグループの関連付け)に適用します ユーザーのために、 chgrp
をリコールする必要があります グループのために。
では、 chgrp
を使用するにはどうすればよいですか ?
# chgrp groupB file1
ディレクトリとそのすべてのコンテンツのユーザー/グループを変更するにはどうすればよいですか?
# chown -R user01:groupA Resources
上記のタスクは再帰的を提供します 構成。技術的には、再帰コマンドは指定されたオブジェクトごとに繰り返されます。事実上、再帰とは「これとその中のすべて」を意味します。上記の例では、 Resources
の関連ユーザー/グループを構成しています。 ディレクトリとその中のすべて。 -R
なし オプションの場合、リソース
にのみ影響します ディレクトリ自体ですが、その内容ではありません。
[読者も気に入っています:Linuxアクセス制御リスト(ACL)の概要]
権限を管理するにはどうすればよいですか?
モードの変更 またはchmod
コマンドは権限を設定します。構文は単純です:
chmod permissions resource-name
file2
の権限を操作する2つの例を次に示します。 :
# chmod 740 file2
# chmod u=rwx,g=r,o-rwx file2
ちょっと待って!それらは根本的に異なる例のように見えます(実際にはそうではありません)。それらすべての文字と数字は何ですか?
絶対モードについて話し合う必要があります およびシンボリックモード 。
絶対モードを使用するにはどうすればよいですか?
絶対モードは、権限を指定する2つの方法の1つです。このモードは8進数または数値モードと呼ばれていますが、私が学んだ用語は絶対でした。 。この用語は、必要な権限の絶対的なステートメントであるため、私にとっても最も理にかなっています。私はいつも、これは2つのモードの中で最も複雑に見えますが、実際には最も単純であると生徒に話しました。通常、彼らは同意しました。
各アクセスレベル(読み取り、書き込み、実行)には8進数の値があります:
アクセスレベル | 8進値 |
読み取り | 4 |
書き込み | 2 |
実行 | 1 |
各ID(ユーザー、グループ、その他)には次の位置があります:
アイデンティティ | 位置 |
ユーザー | 最初または左端 |
グループ | 中 |
その他 | 最後または右端 |
絶対モードの構文は、必要な権限を左から右に示します。
ユーザー(所有者)に読み取り、書き込み、実行、グループに読み取り専用、その他すべてに file2
へのアクセスを許可するにはどうすればよいですか。 アブソリュートモードを使用しますか?
# chmod 740 file2
3つの権限値はIDに関連付けられています:
ugo
740
- 7 ユーザーに割り当てられ、4 + 2 +1または読み取り+書き込み+実行(フルアクセス)の合計です
- 4 グループに割り当てられ、4 + 0 + 0(読み取り専用)の合計です
- 0 他の人に割り当てられ、0 + 0 + 0(アクセスなし)の合計です
この例では、ユーザーは rwxを持っています 、グループには rがあります のみで、他のすべてのユーザーはアクセスできません file2
へ 。
もう1つの例を見てみましょう。
ユーザー(所有者)に読み取りと書き込み、グループに読み取り専用、その他すべての読み取り専用を file2
に付与するにはどうすればよいですか。 ?
# chmod 644 file2
- ユーザーは6を持っています (読み取りと書き込み)
- グループには4があります (読み取り専用)
- 他のすべての人は4 (読み取り専用)
計算が必要ないので、これは簡単だと思います。現在の設定に基づいて特定の権限を追加または削除する必要はありません。代わりに、「権限をこれに設定する」と言います。これが最終結果です。それは絶対的な声明です。
リソース
の権限を設定するにはどうすればよいですか 絶対モードを使用してディレクトリとそのすべてのコンテンツ?
# chmod -R 744 Resources
シンボリックモードを使用するにはどうすればよいですか?
シンボリックモードはより多くのシンボルを使用しますが、シンボルは理解しやすいです。これは、標準のLinux権限を初めて使用するシステム管理者にとって魅力的です。
各アクセスレベルには記号があります:
アクセスレベル | 記号 |
読み取り | r |
書き込み | w |
実行 | x |
各IDには記号があります:
アイデンティティ | 記号 |
ユーザー | u |
グループ | g |
その他 | o |
権限を操作する演算子もあります:
タスク | オペレーター |
アクセスレベルを付与する | + |
アクセスレベルを削除する | - |
アクセスレベルを設定する | = |
一般的なchmod
コマンド構文は同じです:
command permissions directory/file
次に例を示します:
file2
の読み取り権限を他のユーザーから削除するにはどうすればよいですか シンボリックモードを使用しますか?
# chmod o-r file2
この例では、(-
)読み取り( r
)他者からの許可( o
) file2
の場合 。
別の簡単な例を次に示します。
file2
のグループに読み取りおよび書き込み権限を付与するにはどうすればよいですか。 ?
# chmod g+rw file2
これは( +
)読み取りと書き込み( rw
)グループ( g
) file2
の場合 。
シンボリックモードを使用して、ディレクトリとそのすべてのコンテンツのアクセス許可を設定するにはどうすればよいですか?
# chmod -R o=rwx,g+rw,o-rwx Resources
特別な権限とアクセス制御リスト
上記の説明では、標準のLinux権限( rwx の適用)について説明します。 ユーザー、グループ、その他すべてに。ただし、Linuxの方がはるかに柔軟性があります。特別なアクセス許可により、ユーザーは他の資格情報を使用してアプリケーションを実行し、グループの関連付けの継承を制御し、ファイルが誤って変更されないようにすることができます。特別な権限に関するこのすばらしい記事をご覧ください。
Linuxには、ユーザーやグループごとに異なる権限を適用する方法もあります。アクセス制御リスト(ACL)を使用すると、システム管理者は複数のユーザーと1つのグループのアクセス許可を定義できます。これにより、標準のアクセス許可に大幅な柔軟性が追加されます。例: user01
rw-を付与できます file1
へ 、 user02
r-を付与できます file1
へ 。これがACLに関するすばらしい記事です。
[無料コース:RedHatSatelliteの技術概要。 ]
まとめ
リソースの作成、ユーザーの管理、および権限の設定は、Linuxユーザーの基本的なタスクです。私の目標は、私たち全員が定期的に達成しなければならない一般的な質問やタスクに基づいて、すばやく簡単なガイドを提供することでした。 Linuxを初めて使用する場合は、上記の8つのコマンドをしっかりと把握しておくと、システム管理者の作業がはるかに楽になります。