Linux 権限の概念と管理

1. Linux 権限の概念

Linux では、スーパー ユーザー (root) と一般ユーザーの 2 種類のユーザーが存在します

  • スーパー ユーザー: Linux システム上で制限なく何でもできる
  • 一般ユーザー: Linux では限られたことを行います。

スーパーユーザーのコマンドプロンプトは「#」、一般ユーザーのコマンドプロンプトは「$」です。
コマンド: su [username]
機能: ユーザーを切り替えます。

たとえば、root ユーザーから一般ユーザーに切り替えるには、su ユーザーを使用します。一般ユーザーからrootユーザーに切り替える場合は、su root(rootは省略可能)を使用しますが、このときrootユーザーのパスワードの入力を求められます。

2. Linuxの権限管理

2.1 ファイル訪問者の分類(人)

  • ファイルとファイル ディレクトリの所有者: u—ユーザー (中国の民間法問題)
  • ファイルおよびファイル ディレクトリの所有者が属するグループのユーザー: g - グループ (あまり多くはありません)
  • 他のユーザー: o - その他 (外国人)

    2.2 ファイルの種類とアクセス権(モノの属性)

ここに画像の説明を挿入します

2.2.1 ファイルの種類

d: フォルダー
-: 通常のファイル
l: ソフト リンク (Windows のショートカットに似ています)
b: ブロック デバイス ファイル (ハードディスク、光学式ドライブなど)
p: パイプ ファイル
c: キャラクター デバイス ファイル (スクリーンやその他のシリアルなど)デバイス)
s: インターフェースファイルの設定

2.2.2 基本的な権限

i. Read (r): ファイルの場合、Read にはファイルの内容を読み取る権限があり、ディレクトリの場合、ディレクトリ情報を参照する権限があります。
ii. Write (w): ファイルの場合、Write はファイルの内容を変更する権限を持ち、ディレクトリの場合、Write は移動されたディレクトリ内のファイルを削除する権限を持ちます。
iii. 実行 (x): ファイルの場合、実行にはファイルを実行する権限があり、ディレクトリの場合、ディレクトリに入る権限があります。
iv. 「-」は、ユーザーに権限がないことを示します。

2.3 ファイルパーミッション値の表現方法

ここに画像の説明を挿入します

2.4 ファイルアクセス権限の関連設定方法

1.chmod (強調)

機能:ファイルのアクセス権限を設定します
形式: chmod [パラメータ] 権限ファイル名
共通オプション :
R -> ディレクトリファイルの権限を再帰的に変更します
説明 :ファイルの所有者とルートのみがファイルの権限を変更できます

chmod コマンドの許可値の形式:
① ユーザー識別子 +/-= 許可文字

+: 権限コードで示される権限を
権限範囲に追加 -: 権限コードで示される権限を権限範囲から削除
=: 権限コードで示される権限を権限範囲に付与
ユーザー記号:
u: 所有者
g:同じグループ内の所有者
o: 他のユーザー
a: すべてのユーザー

例:chmod u+rwx file.txt
ファイル所有者に読み取り、書き込み、および実行の権限が追加されます。

例:chmod go-w file.txt
ファイルが所属するグループおよび他のユーザーの書き込み権限が削除されます。

例:chmod 755 file.txt
ファイル file.txt の権限を次のように設定します。

  • ファイル所有者: 読み取り、書き込み、実行 (4 + 2 + 1 = 7)
  • グループ: 読み取り、実行 (4 + 1 = 5)
  • 他のユーザー: 読み取り、実行 (4 + 1 = 5)

2. チャウン

機能: ファイルの所有者を変更します。
形式: chown [パラメータ] ユーザー名 ファイル名

chown user1 f1
chown -R user1 filegroup1

3. chgrp

機能 : ファイルまたはディレクトリが属するグループを変更する
形式 : chgrp [パラメータ] ユーザーグループ名およびファイル名
共通オプション : -R ファイルまたはディレクトリが属するグループを再帰的に変更します。

i. ファイルのグループ所有権を特定のグループに変更します。

chgrp staff file.txt

ii. ディレクトリおよびそのサブディレクトリ内のすべてのファイルとディレクトリのグループ所有権を特定のグループに再帰的に変更します。

chgrp -R staff directory/

4.umask

機能: ファイル マスクを表示または変更します。
新しいフォルダーのデフォルトのアクセス許可 = 0666。
新しいディレクトリのデフォルトのアクセス許可 = 0777。
しかし、実際には、作成したファイルやディレクトリに対して表示されるアクセス許可は、上記の値ではないことがよくあります。その理由は、ファイルまたはディレクトリを作成するときに、それらも umask の影響を受けるためです。デフォルトの権限がマスクであると仮定すると、実際に作成されるファイルの権限は次のとおりです。マスク &~umask
形式: umask 権限値の
説明: 既存のアクセス権限から権限マスクを減算した後、ファイル作成時のデフォルトの権限を生成できます。スーパー ユーザーのデフォルトのマスク値は 0022、一般ユーザーの場合は 0002 です。

現在の権限マスクを表示します (記号形式):umask -s
現在の権限マスクを表示します (8 進数形式):umask -p
新しい権限マスクを 0022 に設定します::umask 0022

2.5 ディレクトリの権限

  • 実行可能権限: ディレクトリに実行可能権限がない場合、ディレクトリに cd でアクセスすることはできません。
  • 読み取り権限: ディレクトリに読み取り権限がない場合、ls などのコマンドを使用してディレクトリ内のファイルの内容を表示することはできません。
  • 書き込み権限: ディレクトリに書き込み権限がない場合、ディレクトリ内にファイルを作成したり、ディレクトリ内のファイルを削除したりすることはできません。

そこで質問です~~
つまり、ユーザーがディレクトリへの書き込み権限を持っている限り、ユーザーがファイルへの書き込み権限を持っているかどうかに関係なく、ユーザーはディレクトリ内のファイルを削除できます
。非常に科学的です。私 (Zhang San) が作成したファイルが、あなた (Li Si) によって削除されるのはなぜですか? 次のプロセスを使用して検証してみましょう。

[mzh@VM-8-6-centos dir]$ ll
total 4
drwxrwxr-x 2 hsl hsl 4096 Sep 10 19:40 abc
--w-rw---- 1 hsl hsl    0 Sep 10 19:40 test.c
-rw-rw-r-- 1 hsl hsl    0 Sep 10 19:40 test.cpp
-rw-rw-r-- 1 hsl hsl    0 Sep 10 19:40 test.txt
[mzh@VM-8-6-centos dir]$ rm test.c
rm: remove write-protected regular empty file ‘test.c’? y
[mzh@VM-8-6-centos dir]$ ll
total 4
drwxrwxr-x 2 hsl hsl 4096 Sep 10 19:40 abc
-rw-rw-r-- 1 hsl hsl    0 Sep 10 19:40 test.cpp
-rw-rw-r-- 1 hsl hsl    0 Sep 10 19:40 test.txt
[mzh@VM-8-6-centos dir]$ 

2.6 スティッキービット

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 919 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

ディレクトリが「スティッキー ビット」に設定されている場合(chmod +t を使用)、ディレクトリ内のファイルを
削除できるのは、1. スーパー管理者
、2. ディレクトリの所有者、
3. ファイルの所有者のみです。

2.7 権限に関するまとめ

  • ディレクトリの実行権限は、ディレクトリ内でコマンドを実行できるかどうかを示します。

  • ディレクトリに -x 権限がない場合、ディレクトリに -r 読み取り権限がまだある場合でも、ディレクトリ上でコマンドを実行することはできません。また、ディレクトリに cd でアクセスすることさえできません (ここで間違いやすいのは、ディレクトリに -r 読み取り権限があると考えているためです。読み取り権限がある場合は、ディレクトリに入り、ディレクトリ内のファイルを読み取ります))

  • また、ディレクトリに -x 権限はあるが -r 権限がない場合、ユーザーはコマンドを実行してディレクトリに cd できます。ただし、ディレクトリには読み取り権限がないため、ディレクトリ内で ls コマンドを実行できたとしても、ディレクトリ内のドキュメントを読み取る権限はありません。

おすすめ

転載: blog.csdn.net/originalHSL/article/details/132793968