【Linux】Linuxでの権限管理/rootユーザーと一般ユーザーの違いについて/各ユーザーのアクセス権の違いは何ですか?/スティッキービットとは何ですか?

この記事のマインドマップ:
ここに画像の説明を挿入


序文

この記事では、Linux におけるさまざまなユーザーの違いと権限の問題について具体的に説明します。


1. Linux でのユーザーの分類

Linux では、スーパー ユーザー (root) と一般ユーザーの 2 種類のユーザーが存在します。
スーパーユーザー: Linux システムでは制限なく何でもできます。
一般ユーザー: Linux では制限されたことを実行できます。
スーパーユーザーのコマンドプロンプトは「#」、一般ユーザーのコマンドプロンプトは「$」です。

コマンド: su [username] 機能: ユーザーを切り替えます。たとえば、root ユーザーから通常ユーザーに切り替えるには、su ユーザーを使用します。
通常のユーザーから root ユーザーに切り替えるには、su root (root は省略可能) を使用します。システムは root ユーザーのパスワードを入力するように求めます。

それは

su を直接入力すると、デフォルトでユーザーは強制的に root ユーザーに切り替わります (ログインする必要はありません)。このとき、root ユーザーのパスワードを入力する必要があります。

それは -

su - を直接入力すると、デフォルトで root ユーザーに切り替わります (再度ログインする必要があります)。このとき、root ユーザーのパスワードを入力する必要があります。

root アカウントの他の一般ユーザーに切り替える場合は、次のように直接入力します。

su ユーザー名

root ユーザーから他の共通ユーザーに切り替える場合、共通ユーザーのパスワードを入力する必要はありません。

一般ユーザーを切り替える場合は、次のように入力します。

su ユーザー名

一般ユーザーを切り替えるには、ログインする必要のある対応するユーザーのパスワードを入力する必要があります

ユーザーを切り替えた後、ctrl + d を押すと元のユーザーに戻ります。

sudoコマンド

sudo + 任意のコマンド
機能: このコマンドの権限を一時的に抽出します


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

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

2. ファイルの種類とアクセス権 (モノのプロパティ)

ディレクトリの下にある詳細なファイル/ディレクトリをリストすると、先頭に 10 文字が表示されることがわかります。

ここに画像の説明を挿入
最初の文字は、以下で説明するファイルの種類です。

2.1 Linux でのファイルの種類

Linux でのファイルの種類は次のとおりです。

–: テキスト、実行可能プログラム、ライブラリ ファイルなどを含む通常のファイル
d: ディレクトリ ファイル
b: ディスク ファイルを含むブロック デバイス ファイル
c: キーボード、ディスプレイ ファイルなどのキャラクター デバイス
ファイル p: パイプライン ファイル、コミュニケーションに使用されます

このうち、知っておく必要があるのは - と d で、それぞれ通常のファイルとディレクトリ ファイルです。

ファイルの接尾辞には直接的な意味がないというのはなぜですか?

Linux のシステムはファイル名接尾辞によってファイルを区別しないため、実行可能ファイルはファイル接尾辞があってもなくても実行できます。(他のソフトウェアではなく、Linux であることに注意してください)
例:

まず新しい .c ファイルを作成し、次にコンパイルして a.out ファイルを生成します。
mv a.out a.exe

これも機能します。

ただし、.c コンパイラ (gcc と呼ばれる) がコンパイルされると、.c 接尾辞が認識され、他の接尾辞はコンパイルされない可能性があります。これは、Linux 自体ではなく、Linux 上で実行される他のソフトウェアです。

概要: Linux ではファイル/ディレクトリを先頭の文字で区別しており、- であれば通常のファイル、d であればディレクトリファイルとなります。


2.2 ファイル権限属性(ロール/アイデンティティ)

ここに画像の説明を挿入

最初の文字は上で終了し、次の 9 文字が言われます。

r: 読み取り可能
w: 書き込み可能
x: 実行可能
-: 対応する権限の場所、権限なし

注: 各場所に対応する権限は常に同じであるため、順序が乱れた問題が発生する可能性はありません。
注: 各場所に対応する権限は常に同じであるため、順序が乱れた問題が発生する可能性はありません。
注: 各場所に対応する権限は常に同じであるため、順序が乱れた問題が発生する可能性はありません。
最初の 3 つの位置は所有者の権限に対応し、真ん中の 3 つはそれが属するグループの権限に対応し、最後の 3 つは他の人の権限に対応します。

ロールの 3 文字ごとに、
所有者、グループ、その他が含まれます。

所有者と他の人の違いについて話しましょう。ファイルやプロジェクトの場合、誰かがそれを作成したはずです。それを作成した人を所有者と呼びます。所有者は自分のプロジェクトを自由に表示および変更できますが、他の人は自由に変更できます。 people view/ この項目を変更するには、所有者の同意が必要です。
つまり、他の人は自由にアイテムを閲覧できません

所属するグループに関しては、所有者の同僚である個人/グループが存在する場合、所有者はこれらの人々を自分のグループに引き込んで同じ権限を与えることができます。

上の図に対応するフレームの内容について説明します。
ここに画像の説明を挿入
中央の列の数字については、後で説明します。

詳細があります。上記のファイル/ディレクトリには、所有者とそれが属するグループの 2 つの ID しかないため、他のものはどうなるでしょうか?
実際、ある人がファイル/ディレクトリの所有者でも、所属するグループの所有者でもない場合、その人は他人です。
したがって、Linux では他者の ID は表示されません。

要約:

Linux でのアクセス許可値の 2 つの表現方法:
ここに画像の説明を挿入

chmodコマンドとchownコマンド/権限の変更

方法 1:

命令:

chmod : モードの変更、モード/権限の変更

例えば:

chmod u-rwx test.c は、
test.c ファイルに対する r、w、x 権限を所有者から減算します。

chmod u-rwx、g-rwx、x-rwx test.c は、
所有者、属するグループなどの test.c ファイルの r、w、および x 権限を削除します。

chmod u+rwx、g+rwx、x+rwx test.c
test.c ファイルに対する所有者、グループ、およびその他のユーザーの r、w、x 権限を増加します。

方法 2:
各場所に対応するアクセス許可は使用可能かどうかのどちらかであるため、バイナリ形式で表現できます。
例:

chmod 000 test.c
test.c ファイルに対する所有者のアクセス許可を—、グループのアクセス許可を—、その他のユーザーのアクセス許可を—に変更します

chmod 777 test.c test.c
ファイルに対する所有者のアクセス許可を読み取り、書き込み、および実行可能に変更します。ファイルが属するグループのアクセス許可は読み取り、書き込み、実行可能になり、他の人のアクセス許可は読み取り、書き込み、および実行可能になります。
7 は 2 進数の 111 に対応するため、実行可能です。各 1 に対応する位置は、読み取り可能、書き込み可能、​​および実行可能です。

chmod 776 test.c test.c
ファイルに対する所有者のアクセス許可を読み取り、書き込み、実行可能に変更し、そのファイルが属するグループのアクセス許可を読み取り、書き込み、実行可能にし、他の人のアクセス許可を読み取り、書き込み可能にします。ただし、実行可能ではありません。理由は
6 対応するバイナリは 110 で、その他はファイルの読み取りと書き込みは可能ですが、実行可能ではないアクセス許可を持っています。

ヒント: オーナーとグループができること

ファイルの所有者とグループが同じ人物である場合、システムはその人物を認証する際に、最初に所有者から認証を開始します。認証が成功した場合、グループがその人物に属していても、システムは認証を行いません。グループをもう一度見てください。

つまり、システムが認証を実行する場合、個人は 1 つの ID にのみ対応できます。

2. 所有者にとって、ファイルを所有している場合でも、ファイルに対するアクセス許可が読み取り専用で書き込み不可であれば、書き込みはできません。

ファイルを所有しているだけだからといって、そのファイルに書き込めるわけではありません。
例えば:

ここに画像の説明を挿入
test.c ファイルの所有者は zhangsan ですが、このファイルに対する権限は読み取り専用および実行専用であり、書き込み権限がないため、書き込み操作を完了できません。

3. グループとファイルの所有者が異なる場合、グループ内のユーザーが書き込み権限を持っていれば、ファイルに書き込むことができます。

例:
ここに画像の説明を挿入
test.c ファイルでは、所有者は zhangsan で、それが属するグループは dzt です。この時点で、所有者の ID は zhangsan ですが、dzt が属するグループはファイルに対する rwx 権限を持つことができます。

umaskコマンドとパーミッション値の関係

Linux では、

作成された通常ファイルのデフォルトの権限値は 666
ディレクトリファイルのデフォルトの権限値は 777

ただし、Linux で特別な計算を行うと、通常のファイルは 665 になり、ディレクトリ ファイルは 775 になります。
ここに画像の説明を挿入
この理由は、許可マスクと呼ばれる umask にあります。

権限マスク: umask に表示される権限は、最終的なファイル権限には表示されません。

例えば:

デフォルトの umask は: 0002
、つまり:
000 000 010
通常のファイルを作成する場合、デフォルトのパーミッション値は 666、つまり:
110 110 110 になります
。計算後、
通常のファイルの最終的なパーミッション値は:
110 110 100となります。

つまり、
最終権限 = 開始権限 & (~umask)

umaskを変更する方法:

umask + 対応する権限マスク(umask 0001または umask 0555
など)

通常のファイルおよびディレクトリファイル用の rwx 関数

通常のファイルの場合:

r: ファイルが読み取れるかどうか
w: ファイルが書き込めるかどうか
x: ファイルが実行できるかどうか

ディレクトリ ファイルの場合:

r: ディレクトリの内容の閲覧を許可するかどうか
w: 現在のディレクトリでの作成、変更、削除を許可するかどうか
x: 該当するディレクトリへの入場を許可するかどうか

概要: 通常のファイルの場合、デフォルトの権限値が 666 であるのは、実行可能ファイルが少ないためであり、ファイルを実行可能にしたい場合は、手動で追加できます。
ディレクトリ ファイルの場合は、実行権限が必要です。つまり、ディレクトリに入る必要があります。そうでないと意味がありません。

3. スティッキービットとは正確には何ですか?

私たちは、人生においてファイルを共有する必要があることを知っています。

ファイルを他の人が読み取り、書き込み、実行できるように設定すると、他の人が共有ファイルに入って操作できるようになります。
しかし、他の誰かが共有ファイルを削除した場合はどうなるでしょうか? 書き込み権限があるので自然にファイルを削除できるのですが、そのような事態を避けるために、

最初の方法: 所有者が他の人の書き込み権限を削除します。
しかし、他の人の書き込み権限が削除されると、他の人もファイルに情報を書き込む必要があるため、共有ファイル/ディレクトリの良好な共有効果が得られなくなるという新たな問題が発生します。
したがって、最初の方法はお勧めできません。

粘着ビット

ファイルを削除できるかどうかは、ファイル自体によってではなく、ファイルが配置されているディレクトリによって決まることがわかっています。

したがって、スティッキー ビットはディレクトリの下に設定する必要があります。

スティッキー ビットは特別な実行権限です。その機能は、他の人が共有ディレクトリ/ファイルを通常どおり読み取り、書き込み、実行できるようにすることですが、削除することはできません。ファイルの所有者/ルートのみがスティッキー ビットを削除できます
。 :chmod o+t ディレクトリ名
または chmod +t ディレクトリ名

他の人のアクセス許可を書き込まないでください。デフォルトでは、スティッキー ビットは、対応するディレクトリ内の他の人の実行可能アクセス許可にも影響します。

一般に、スティッキー ビットは、他のユーザーが共有ファイル/ディレクトリを削除できないように生成されますが、他のユーザーが共有ディレクトリ/ファイルを通常どおり操作できることも保証します。

要約する

この記事では主に、Linux でのアクセス許可の管理、さまざまなユーザー間の違い、アクセス許可マスク、スティッキー ビット、その他の問題について説明します。

おすすめ

転載: blog.csdn.net/w2915w/article/details/130869824