Linux のユーザー、グループ、および権限

まず、Linux のセキュリティ モデル
1. セキュリティ 3A
Authentication (認証)、Authorization (認可)、Accounting (監査) (AAA) は、コンピュータ リソースへのアクセス、ポリシーの適用、監査の使用、およびサービス請求書の提供に必要な情報に使用されます。 etc. インテリジェントに機能する基本コンポーネントを表す用語。効果的なネットワーク管理とシステム セキュリティ管理には、これら 3 つのプロセスを組み合わせたことが重要であるということにほとんどの人が同意します。

最初のステップでは、認証ポリシーによってユーザーを識別する方法が提供され、通常、認証が成功する前にユーザーは有効なユーザー名と有効なパスワードを入力する必要があります。認証プロセスは、アクセス権を取得するための独自の基準を持つ各ユーザーによって異なります。AAA サービスは、その基準 (パスワード) をデータベース内のパスワードと比較します。一致する場合、ユーザーはコンピュータへのアクセスを許可されます。一致しない場合、認証は行われません。失敗し、アクセスが拒否されます。

2 番目のステップでは、認証が完了した後、ユーザーに特定のことを実行し、関連タスクを処理する権限を与える必要があります。システムにログインした後、ユーザーは関連コマンドの実行を試みることができます。認可プロセスでは、ユーザーがコマンドを実行する権利を持っているかどうかが判断されます。簡単に言えば、承認はポリシーを適用するプロセスであり、ユーザーが使用できるアクティビティ、リソース、またはサービスの種類または品質を決定するプロセスです。通常、認可は認証のコンテキスト内で行われます。ユーザーを認証すると、そのユーザーにはさまざまな種類のアクセスやアクティビティも許可されることになります。

AAA フレームワークの最後の項目は監査です。これは、アクセス中のリソース使用量を監視および測定することを意味します。認証、認可、および監査サービスは通常、専用の AAA サービス (これらの機能を実行するプログラム) によって提供されます。

2. Linux へのユーザー ログインの背後で何が起こるか
2. Linux システムのユーザーとグループ、および関連ファイル
1. Linux システムのユーザー タイプ
一般に、Linux ユーザーは管理者と一般ユーザーに分けられます。管理者のデフォルト名は次のとおりです。 root; その UID は: 0 2、一般ユーザーの UID: 1 ~ 60000 はシステムによって自動的に割り当てられます; システム ユーザーとログイン ユーザーに分けられます システム ユーザー: 1 ~ 499 (CentOS6)、1 ~ 999 (CentOS7)システム ユーザーは、デーモン プロセスによって取得されたリソースにアクセス許可を割り当てる責任があります。 ログイン ユーザー: 500+、1000+ (CentOS7) 対話型ログインを使用します。 2.
Linux のユーザー グループ管理者グループ
のグループ ID (GID)も 0 です。 rootグループと呼ばれます(rootグループに他のユーザーを追加しても一般ユーザーです) 一般グループは、システムグループと通常グループに分かれます。 システムグループ:1~499、1~999(CENTOS7) 通常グループ: 500+、1000+ (CENTOS7)

Linux グループの種類
ユーザーのプライマリ グループ (プライマリ グループ)
ユーザーは 1 つのプライマリ グループに所属する必要があり、グループ名はユーザー名と同じで、ユーザーが 1 人だけ含まれ、プライベート グループ ユーザーの追加グループが含まれます
。 (補助グループ)
ユーザーは、ゼロまたは複数の補助グループに所属できます。
3. Linux ユーザーおよびグループの主な設定ファイル
ユーザーおよびグループの設定ファイルは、/etc フォルダーにあります。
/etc/passwd: ユーザーとその属性情報を保存します。 (名前、UID、メイングループIDなど)
/etc/group: グループとその属性情報を保存
/etc/shadow: ユーザーのパスワードとその関連属性を保存
/etc/gshadow: グループのパスワードとその関連属性を保存
passwd file format
passwd file format:
1:2:3:4:5 :6:7 # 各ユーザーは特定の形式のテキスト レコードの行を使用します 1
: ログイン名: ログイン名 (steve)
2: passwd: パスワード (x )
3: UID: ユーザーID (1000)
4: GID: ログインデフォルトのグループ番号 (1000)
5:GECOS: ユーザーのフルネームまたはコメント
6: ホームディレクトリ: ユーザーのホームディレクトリ (/home/steve)
7: シェル: ユーザーデフォルトでシェル (/bin/bash)シャドウ
ファイル形式を使用します

daemon:*:18027:0:99999:7::: # 各ユーザーは特定の形式のテキスト レコードの行を使用します
1:2:3:4:5:6:7:8:9
1: ログイン名
2:ユーザーパスワード: 通常は sha512 で暗号化されます
3: 1970 年 1 月 1 日からパスワードが最後に変更された時点まで
4: パスワードは数日以内に変更できます (0 はいつでも変更できることを意味します)
5: パスワードは必ず変更してください数日以内に変更される 変更される (99999 は無期限を意味します)
6: システムはパスワードの有効期限が切れる数日前にユーザーに通知します (デフォルトでは 1 週間)
7: パスワードの有効期限が切れてから数日後、アカウントはロックされます
8 : 1970 年 1 月 1 日から数えて、アカウントから何日後 無効
9: 未使用の
グループ ファイル フォーマット
グループ ファイル フォーマット
デーモン用に予約❌2:
1:2:3:4
1: グループ名: グループ名です
2: グループパスワード: 通常は設定する必要はありません。パスワードは /etc/gshadow に記録されます。
3: GID: グループの ID です。
4: 現在のグループを追加グループとして含むユーザーリスト (区切り文字はカンマです)
gshdow ファイルformat
gshdow file format
daemon:::
1:2:3:4
1: グループ名: グループの名前
2: グループのパスワード:
3: グループ管理者のリスト: グループ管理者のリスト。グループのパスワードとメンバーを変更します
。 4:現在のグループを追加グループとして含むユーザー リスト: 複数のユーザー間はカンマを使用して区切ります
3. Linux システムでのユーザーおよびグループ管理コマンド
1. 関連するファイル操作
vipw および vigr vipw、vigr - パスワード、グループ、シャドウパスワードまたはシャドウグループファイルの編集
-g、--group

グループデータベースを編集します。
-p、--passwd
passwd データベースを編集します。
-s、--shadow
シャドウまたは gshadow データベースを編集します。
pwck
pwck - パスワードファイルの整合性を検証する

grpck
grpck - グループファイルの整合性を検証する

2. ユーザーおよびグループ管理コマンド
ユーザー管理コマンド

useradd usermod userdel

グループアカウントメンテナンスコマンド

groupadd groupmod groupdel

useradd ユーザーの作成
オプション\使用法 useradd [オプション] LOGIN
-u UID ユーザー UID を指定します
。 -o -u オプションと連携します。UID の一意性はチェックしません。異なるユーザー名と UID を持つユーザーを作成できます。
-g GID GID は、基本グループを示します。ユーザーが所属するグループ名、または GID を指定できます
-c ユーザーのコメント情報を指定する場合は "COMMENT"
-d ホーム ディレクトリとしてパス (存在しない) を指定する場合は HOME_DIR
-s ユーザーのデフォルトを指定する場合は SHELLシェル プログラム。使用可能なリストは /etc/shells ファイルにあります。
- G GROUP1[,GROUP2,…] ユーザーの追加グループを指定します。グループは事前に存在している必要があります。
-N プライベート グループをプライマリ グループとして作成しません。 users グループをプライマリ グループとして使用します
-r システム ユーザーを作成します CentOS 6: ID<500、CentOS 7: ID< 1000
-m システム ユーザーのホーム ディレクトリを作成します
-M 非システム ユーザーのホーム ディレクトリを作成しませ
んデフォルト値設定ファイル /etc/default/useradd
デフォルト設定を表示または変更します useradd -D 現在のデフォルト値を表示します
useradd –D -s SHELL 新しいユーザーのデフォルト シェルを変更します
useradd –D –b BASE_DIR デフォルトのホーム ディレクトリを変更します新しいユーザーの
useradd –D –g GROUP 新しいユーザーのグループを変更します。 新しいユーザー
の関連ファイルとコマンド
/etc/default/useradd
/etc/skel/*
/etc/login.defs
newusers passwd 形式ファイルを使用してユーザーを
バッチで作成します。 chpasswd 1 行に複数のユーザー パスワードの形式をバッチ変更します。 username:passwd
usermod ユーザー属性を変更します。
Parameters\Usage usermod [OPTION] login
-u UID 新しいユーザー ID を指定します。 UID
-g GID 新しいメイン グループを指定します
-G GROUP1[,GROUP2,…[,GROUPN]]] 新しい追加グループを指定します。元の追加グループは上書きされます。元のグループを保持する場合は、-a オプションを使用する必要があります。同時に -s SHELL
新しいデフォルトの SHELL
-c 'COMMENT' 新しいコメント情報
-d HOME 新しいホーム ディレクトリは自動的に作成されません。新しいホーム ディレクトリを作成して元のホーム データを移動する場合は、 - を使用します。 m オプション
-l ログイン名 新しい名前
-L ユーザーを指定するロック、つまり、/etc/shadow パスワード列に感嘆符を追加します!
-U ユーザーを指定するロックを解除します、/etc/shadow パスワード列の ! を削除します
- e YYYY-MM-DD ユーザー アカウントの有効期限を指定します
-f INACTIVE 非アクティブ期間を設定します
userdel delete User
Option\Usage userdel [OPTION]... ログイン
-f, --force ユーザーを強制的に削除します
-r, --remove ユーザーの削除ホーム ディレクトリとメールボックス
ID ユーザー関連の ID 情報を表示するコマンド
Option\Usage id [OPTION]... [USER]
-u 表示 UID
-g 表示 GID
-G ユーザが属するグループの ID を表示 -n表示名、 su コマンドを
使用して ugG と連携する必要があります。
ユーザーを切り替えるか、他のユーザーとしてコマンドを実行します。
Options\Usage [user [args...]]
ユーザーを切り替える方法
su UserName 非ログイン切り替え、つまり対象ユーザーの設定ファイルは読み取られず、現在の作業ディレクトリは変更されません
su - UserName ログインの切り替え、ターゲット ユーザーの設定ファイルが読み取られます、ホーム ディレクトリに切り替え、完全に
root に切り替え、su を使用してパスワードなしで他のユーザーに切り替えます。root 以外のユーザーは必要があります。
別の ID に切り替えるためのパスワードコマンドを実行します
。 UserName -c 'COMMAND' コマンドを実行した後も、現在のユーザーになります。
オプション: -l --login
su -l UserName は su - UserName と同等です
passwd コマンドを使用して、パスワードを設定します。
Options\Usage passwd [OPTIONS] UserName: 指定したユーザーのパスワードを変更します。
共通オプション
-d 指定したユーザーのパスワードを削除します
。 -l 指定したユーザーをロックします。
-u 指定したユーザーの
ロックを解除します。 -e 次回ログイン時にユーザーにパスワードを変更させます。
-f 必須操作
-n mindays 最低利用期間を指定
-x maxdays 最大利用期間
-w warndays 警告を開始する何日前
-i inactivedays 非アクティブ期間
–stdin 標準入力からユーザーのパスワードを取得する
例: echo “PASSWORD” | passwd --stdin
USERNAME に関連するその他のコマンド user
chfn 個人情報を指定する
chsh シェル
フィンガーを指定する関連するコメント情報を表示
groupadd コマンドを使用してグループを作成する
オプション\使用法 groupadd [OPTION]... group_name
-g GID GID 番号を指定します; 範囲 [GID_MIN, GID_MAX]
-r システム グループを作成します
CentOS 6: ID<500
CentOS 7: ID<1000
groupmod を変更してグループを削除 groupdel
オプション\使用法 groupmod [OPTION]... group
-n group_name グループの新しい名前を指定します
-g GID 新しい GID
グループの削除: groupdel groupdel GROUP
gpasswd コマンドはグループ パスワード
オプションを変更します\usage gpasswd [オプション] GROUP
-a user 指定したグループにユーザーを追加します
-d user 指定したグループからユーザー user を削除します
-A user1,user2,… 管理者権限を持つユーザーのリストを設定します
newgrp コマンド: メイン グループを一時的に切り替えます。 ユーザーがこのグループに属していない場合は、グループ メンバーを表示するには、グループ パスワード groupmems と groups を変更する
必要があります。 Options \Usage groupmems [オプション] [アクション]オプション: -g、--group groupname 指定したグループに変更します (root のみ)アクション: -a、 --add username グループに参加するユーザーを指定します-d、 --delete username グループからユーザーを削除します-p、 --purge グループからすべてのメンバーを削除します-l、- -list グループ メンバー リストグループを表示 [オプション].[ユーザー名]... ユーザーが属するグループのリストを表示します練習用の質問と回答ユーザー gentoo を作成します、追加のグループは bin と root、デフォルトのシェルは /bin/csh、コメント情報は "Gentoo Distribution" useradd -G bin,root - s /bin/csh -c "Gentoo Distribution" gentoo は次のユーザー、グループ、およびグループ メンバーシップを作成しますwebs という名前のグループ groupadd webs user nginx、webs を追加のグループとして使用しますuseradd -G webs nginxユーザー ワニス、Webs を追加グループとして使用 useradd -G webs varnish

















ユーザー mysql はシステムに対話的にログインできず、webs のメンバーではありません。nginx、varnish、および mysql のパスワードは、magedu useradd
mysql -s /bin/nologin
cat > passwd <<EOF
nginx:magedu
varnish:magedu です。
mysql:magedu
EOF
echo passwd | chpasswd
4. Linux システムにおけるファイル権限管理
1. ファイル属性とコマンド
ファイル属性

ファイル属性操作コマンド
chown ファイルの所有者を設定
chgrp ファイルのグループ情報を設定
chown/chgrpでファイルの所有者とグループを変更
オプション/使い方 chown [OPTION]… [OWNER][:[GROUP]] FILE …
chown OWNER file ファイルの所有者を変更
chown OWNER:GROUP 所有者とグループを同時に変更
chown:GROUP グループのみ変更、コロンも可 置換
-R: 再帰
chown [OPTION]... - -reference=RFILE FILE... ファイルの所有者を継承します 所属グループ ファイルの
所属グループを変更します: chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE ...
-R Recursive
2. ファイル権限
ファイル権限は、主に 3 種類のオブジェクトに対して定義されます。
owner 所有者、u
group グループに属する、g
other その他、o 各
ファイルは、訪問者の種類ごとに 3 種類の権限を定義します。
r Readable
w Writable
x eXcutable
各タイプの権限に対応する特定の許可される動作
ファイル
r ファイル表示ツールを使用して取得できます コンテンツ
w はその内容を変更できます
x このファイルをカーネルに送信して、プロセスを開始できます。 ディレクトリ
r
ls を使用して、このディレクトリ内のファイル リストを表示できます
。 w このディレクトリにファイルを作成でき、このディレクトリ内のファイルを削除することもできます。
x ls を使用できます。 -l このディレクトリ内のファイルを表示するには メタデータ (r と連携する必要があります)、このディレクトリ
X に cd して、ファイル x の権限ではなく、ディレクトリ x の権限のみを与えることができます。
ファイルの権限を変更するには、touch chmod を使用します。
オプション/使用法
chmod [OPTION]... OCTAL-MODE FILE...
-R: 権限を再帰的に変更します
chmod [OPTION]... MODE[,MODE]... FILE...
MODE: ユーザーのクラスのすべての権限を変更します
u= g= o= ug= a= u=, g=
ユーザーのクラスの特定または一部のビットを変更します
u+ u - g+ g- o+ o- a+ a- + -
chmod [オプション]... --reference=RFILE FILE...
RFILE ファイルのパーミッションを参照し、FILE を同じ RFILE
パーミッションに変更します。 設定例
chgrp Market files
chown root:admins testfile
chmod u +wx,gr,o=rx file
chmod -R g+rwX /pat /to/dir
chmod 600 ファイル
chown steve file1
umask を使用して、= 666-
デフォルト新しく作成されたファイルとディレクトリのデフォルトの権限ルートの umask は 022 ですデフォルトでは、現在のシェル環境のumask は次のとおりです。呼び出し設定ファイル: グローバル設定: /etc/bashrc ユーザー設定: ~/.bashrc演習ユーザー docker に /testdir ディレクトリに対する実行権限がない場合、どのような操作が実行できませんか? Docker はファイルを作成、名前変更、または削除できず、ディレクトリにファイルの内容を追加できず、このディレクトリに切り替えることもできません。ユーザー mongodb に /testdir ディレクトリに対する読み取り権限がない場合、どのような操作を実行できませんか? ユーザー redis に /testdir ディレクトリへの書き込み権限がない場合、このディレクトリ内の読み取り専用ファイル file1 を変更および削除できますか? いいえ。ユーザー zabbix が /testdir ディレクトリに対する書き込みおよび実行権限を持っている場合、このディレクトリ内の読み取り専用ファイル file1 を変更および削除できますか? 読み取り専用ファイルは、ディレクトリに対する実行権限を持っているため、読み取りのみが可能で変更できません。すべてのファイルは削除できます。















/etc/fstab ファイルを /var/tmp にコピーし、ファイルの所有者を読み取りおよび書き込み権限のある tomcat に設定します。また、そのファイルが属するグループは読み取りおよび書き込み権限のあるアプリ グループであり、その他のグループには権限がありません。 cp / etc/fstab /var/tmp/–> chown tomcat:apps /var/tmp–> chmod 660 /var/tmp/fstab が
ユーザー git のホーム ディレクトリを誤って削除しました。ユーザーのホーム ディレクトリと対応する権限を再構築して復元してください。属性 cp -a /etc/skel/ /home/ git/ --> chown -R git:git /home/git/–>chmod -R 700 /home/git 5 つ目は、
Linux システムの特別なアクセス許可
です。 1. 3 つの特別な権限
SUID SGUI
Linux の実行可能ファイルに対する Sticky 実行可能ファイルとディレクトリの Sticky ビットを設定するために使用されます. ファイルの所有者またはルートのみがファイルを削除できます. 2. SUID 権限は実行可能ファイルに使用され
ます
.ファイルには実行権限があります
プロセスとして開始した後、プロセスの所有者は元のプログラム ファイルの所有者になります
SUID はバイナリ実行可能プログラムに対してのみ有効です; SUID 設定はディレクトリでは意味がありません 権限
設定
chmod u+s FILE...
chmod us FILE ...
3. SGID 権限は実行可能ファイルに使用されます。
実行可能プログラム ファイルをプロセスとして開始できるかどうか: イニシエータがプログラム ファイルに対する実行権限を持っているかどうかによって決まります。プロセスとして開始した後、
プロセスは次のプロセスに属します。元のプログラム ファイル
権限設定:
chmod g+s FILE...
chmod gs FILE...
4. SGID 権限は、共同ディレクトリを作成するディレクトリに使用されます。
デフォルトでは、ユーザーがファイルを作成すると、そのグループはユーザーが属するメイン グループに属します
。 SGID、ディレクトリ このディレクトリに書き込み権限を持つユーザーが作成したファイルは、
このディレクトリのグループに属します。これは通常、共同ディレクトリの
権限設定を作成するために使用されます:
chmod g+s DIR...
chmod gs DIR...
5スティッキー ビットの権限
には、書き込みが許可されています。 通常、ユーザーは、ファイルの権限や所有権に関係なく、ディレクトリ内の任意のファイルを削除できます。ディレクトリにスティッキー ビットが設定されている場合、ファイルの
所有者またはルートのみがファイルを削除できます。 .
ファイルのスティッキー設定は意味がありません
。 権限設定:
chmod o+t DIR...
chmod ot DIR...
例:
ls -ld /tmp
drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp
数字を使用して、特別な権限を示します
特別な権限番号の方法
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod 4777 /tmp/a.txt
6. 特別な権限ビット マッピング
SUID: ユーザー、所有者の実行権限ビット s を占有、
所有者は x 権限 S を持ち、
所有者は x 権限を持たないSGID グループ、実行権限ビットsを占有
グループ所有者の
x 権限
S グループには x 権限がありません
スティッキーなその他、他の実行権限ビットを占有します
t 他の人は x 権限
を持っています T 他のグループは x 権限を持っていません v
7. ファイル固有の属性を設定する
chattr +i ファイルは削除、名前変更できません。変更された
chattr +a ファイルは追加のみ可能 コンテンツ
lsattr ファイルは特定の属性を表示する
6 番目、Linux ファイル システムの
FACL FACL の正式名は次のとおりです: File Access Control List
ACL: Access Control List は、柔軟な権限管理を実装するために使用されます。
ファイル所有者、グループなどに、より多くのユーザー設定権限
CentOS7 ではデフォルトで作成される xfs および ext4 ファイルシステムには ACL 機能がありますが、
以前のバージョンの CentOS7 では、手動で作成された ext4 ファイルシステムにはデフォルトで ACL 機能がありません。手動で追加するには、
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 / mnt/test
ACL の有効な順序: 所有者 –> カスタム ユーザー –> 属するグループ | カスタム グループ –> その他
**複数のユーザーまたはグループのファイルおよびディレクトリへのアクセス権 rwx を付与 **
mount -o acl /directory facl 関数を有効にする
getfacl ファイル |ディレクトリ
setfacl -mu:wang:rwx ファイル|ディレクトリ
setfacl -mg:admins:rw ファイル| ディレクトリ
setfacl -xu:wang file|directory
setfacl -b file1 はすべての ACL 権限をクリアします
getfacl file1 | setfacl --set-file=- file2 file1 の ACL 権限を file2 にコピーします
マスクは所有者とその他を除くユーザーとグループにのみ影響します 最大権限
マスクは次のとおりです。制限されたアクセス許可 (有効なアクセス許可) になる前に、ユーザーのアクセス許可と論理的に AND 演算される必要があります。
有効にするには、ユーザーまたはグループの設定がマスク アクセス許可の設定の範囲内に存在する必要があります。
setfacl -m マスク::rx ファイル
–set オプション元の ACL 項目をすべて削除し、新しいものに置き換えます
。UGO の設定を含める必要があることに注意してください。 -m のように単に ACL を追加することはできません。例
:
setfacl --set u::rw, u :wang:rw,g::r,o::- file1
ACL のバックアップと復元
メインのファイル操作コマンド cp と mv はどちらも ACL をサポートしていますが、cp コマンドに -p パラメータを追加する必要があります。ただし、tar などの一般的なバックアップ ツールは、ディレクトリやファイルの ACL 情報を保持しません。
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1

おすすめ

転載: blog.csdn.net/wang11876/article/details/132665042