Linuxの権限
序章
Linux には、管理者ユーザー root と一般ユーザーの2 種類のユーザーが存在することがわかっています。
管理者ユーザー root は Linux 上で何でもできますが、一般ユーザーは限られたことしかできません。su コマンドを使用してユーザー タイプを切り替えることができますsu user
( su root
root は省略できます)。
(一般ユーザーのコマンドプロンプトは$、rootユーザーのコマンドプロンプトは#です。)
rootに切り替えるには、一般ユーザーがrootアカウントのパスワードを入力する必要があります。
Linux の場合、2 種類のユーザー、つまり 2 つの役割があります。では、ファイルやディレクトリには、ユーザーごとに異なるアクセス許可があるのでしょうか? もちろん、そのようなことはあります。この記事では、Linux ファイルのアクセス許可管理について紹介します。
ファイル訪問者の分類
Linux では、ファイルまたはディレクトリに対して 3 つの役割があります。
- ファイルの所有者:
u
(ユーザー) - ファイル所有者のグループ:
g
(グループ) - 他のユーザー:
o
(その他)
所有者、グループ、およびその他のユーザーは単なる単純な役割であり、特定のユーザーがファイルに対して特定のアクセス許可を持っている必要があるかどうかを実際に決定するわけではありません。
ファイルに対するユーザーのアクセス許可は、ファイルに対するユーザーのロールだけでなく、ファイルの属性、つまりファイルがロールに付与するアクセス許可にも依存します。この 2 つを組み合わせることでのみ、ファイルに対するユーザーの権限を知ることができます。
ファイルの種類とアクセス権
ll
ファイルのプロパティを表示すると、ファイル タイプ、さまざまな役割へのアクセス権、ファイル サイズ、最終変更時刻、ファイル名などを含む多くのファイル プロパティが表示されます。
最初の列はファイル タイプで、次の列はファイル タイプです。 9 がアクセス権としてリストされ、次の数字はリンクの数、次の 2 つの名前は所有者とグループ、最後に最終変更時刻とファイル名です。
ファイルの種類
Linux には、いくつかの種類のファイルがあります。
d
:フォルダ-
: 通常ファイルl
: ソフトリンク (Windows ショートカットのような)b
: ブロックデバイスファイル (ハードディスク、光学ドライブなど)p
: パイプライン ファイルc
: キャラクターデバイスファイル(画面などのシリアルデバイスなど)s
: ソケットファイル
アクセス許可
ファイルに対するユーザー権限には、読み取り可能、書き込み可能、実行可能の 3 種類があります。
- 読み取り
r
可能とは、読み取り可能を意味します。
読み取り可能なアクセス許可があれば、ファイルの内容を読み取ることができます。 - 書き込み
w
可能とは (書き込み):
書き込み許可があれば、ファイル内のコンテンツを書き込んだり削除したりできます。 - 実行可能
x
手段 (execute):
実行可能権限があれば、ファイルを実行できます。 -
一定の許可がないことを示します
上記のファイルのプロパティには、権限を説明する 9 つの列があります。それぞれ、所有者の権限、所属するグループの権限、および他のユーザーの権限です。各ロールの 3 つの権限の説明は、読み取り可能、書き込み可能、および実行可能であり、これらの順序は固定されています。
したがって、特定のロールの特定の権限の位置に対応する文字があれば、変更されたロールに対応する権限があることを意味し、もし存在する場合、ユーザーがその権限を持っていないことを意味します-
。file:最初の 3 列は所有者の権限です。 For は、ファイルの所有者が読み取りと書き込みは可能ですが、実行はできないことを意味します。中央の 3 列は、ファイルが属するグループであり、is は、そのグループが属していることを示します。ファイルが属するファイルは読み取りおよび書き込み可能ですが、実行可能ではありません。最後の 3 つの列は他のユーザー For で、他のユーザーは読み取りはできるが、書き込みと実行はできないことを示しています。testf
r
w
-
r
w
-
r
-
-
ファイルパーミッション値の表現方法
3 つのアクセス許可には固定位置があり、ファイルに対するロールのアクセス許可はバイナリ 0 および 1 の形式で表現できます。
このように、ファイルにはロール権限用の2^3=8 個の異なる 2 進数が含まれます。
権限を変更するコマンド
chmod ファイルのアクセス許可を変更する
chmod
ファイルのパーミッションは、コマンドを使用して変更できます。この操作は、ファイルの所有者とスーパー ユーザー root のみが実行できます(root ユーザーはパーミッションを無視すると言われていました)。
ロール +/-/= 権限による変更
chmod [选项] 用户+/-/=某项权限 文件名
ファイルの権限を変更するには、この形式を使用します。
このうち、役割を表す記号はu
(所有者)、g
(グループ)、o
(他のユーザー)、a
(すべてのユーザー)、
権限を表す記号はr
(読み取り権限)、w
(書き込み権限)、 (実行権限x
)、(権限コードで示される権限を権限範囲に追加)、(権限コードで示される権限を権限範囲から解除)、(権限コードで示される権限を権限範囲に付与):+
-
=
所属するグループから権限をg
削除する所属するグループに権限を直接付与する他のユーザーに権限を追加するw
g
w
o
w
-R オプションを使用して、ディレクトリ ファイルのアクセス許可を再帰的に変更します。
3 つの 8 進数で修飾されます
chmod [选项] 三个八进制数 文件名
ユーザーを変更するための権限
このうち、最初の 8 進数は変更された所有者権限を表し、2 番目は変更されたグループ権限を表し、3 番目はその他のユーザー権限を表します。
先頭では、すべての権限の組み合わせを表すために 8 つの 8 進数を使用しているため、ここでそれらを直接使用できます。
同様に、-R
オプションを使用して再帰処理に使用できます。
chown 所有者を変更する
chown [选项] 用户名 文件名
ファイルの所有者を変更するために使用されます。ルート ユーザーのみが、
-R
ディレクトリ内のファイルを再帰的に処理するオプションを変更できます。
chgrp 所属グループを変更する
chgrp [选项] 组名 文件名
ファイルの変更に使用されるグループ ユーザーは root ユーザーのみが使用できます
まずグループ qqq を作成し、ユーザー temp を作成して、qqq をメイン ユーザー グループにします。次に、chgrp
ファイルが属するグループを変更するために使用します: (これは、(グループ qqq を作成する) および(新しいユーザーを作成し、このグループをメイン ユーザー グループにする) 指示によって
実現できます)オプションにより、ディレクトリの再帰処理を実現できます。groupadd [用户组名称]
useradd -g [用户组名称] [新用户名称]
-R
umask ファイル許可マスクの変更または表示
umask
ファイル許可マスクを表示するために使用できます。
umask [三个八进制数]
ファイル許可マスクを変更するために使用されます。
このコマンドの使用法を紹介する前に、まずファイル許可マスクの役割を理解しましょう。
ファイル作成時の権限
通常のファイル作成時のデフォルトの権限は0666
、ディレクトリファイル作成時のデフォルトの権限は です0777
。しかし、新しいファイルまたはディレクトリを作成した後、そのアクセス許可は 0666 と 0777 ではありません。新しいファイルのアクセス許可は、
実際にはデフォルトのアクセス許可からユーザーのファイル許可マスク (8 進数) を差し引いたものになります ( 2 進 3 桁の場合)。つまり、ユーザーのファイル権限マスクはビット単位で反転され、デフォルトの権限はビット単位の AND 演算 (&) になります。
一般ユーザーのデフォルトのファイル許可マスクは で0002
、root ユーザーのデフォルトのファイル許可マスクは です。0022
次のコマンドを
使用して表示できます。umask
上記の testf2 ファイルと testdir2 ファイルの初期権限は 666 - 002 = 664 ( rw- rw- r--
) および 777 - 002 = 775 ( rwx rwx r-x
) です。バイナリで計算することもできます。
ファイル許可マスクを変更するために使用しますumask [三个八进制数]
。
ファイル許可マスクを変更した後0026
、新しく作成された通常ファイルの許可は 666 - 026 = 640 ( rw- r-- ---
) になります。
ディレクトリのアクセス許可
ディレクトリの場合:
- 実行可能権限: ディレクトリに実行可能権限がない場合、ディレクトリに cd することはできません。
- 読み取り権限: ディレクトリに読み取り権限がない場合、ls などのコマンドを使用してディレクトリ内のファイルの内容を表示することはできません。
- 書き込み権限: ディレクトリに書き込み権限がない場合、ディレクトリ内にファイルを作成したり、ディレクトリ内のファイルを削除したりすることはできません。
以前に一時ユーザーを作成したことを確認できますが、このフォルダーには他のユーザーやグループに対するアクセス許可がありません。現時点では、
qiuzeyu アカウントとしてこのディレクトリのみを表示でき、他のことはできません
。他のユーザーに対する temp の権限 (root 操作):
のみx
: (入力可能、表示および変更不可)
はいx
およびr
(入力可能、表示可能、変更不可)
はいr
w
x
(入力、表示、変更可能)
ただし、ここで問題が発生します。つまり、ユーザーが特定のディレクトリの書き込み権限を持っている限り、そのディレクトリ内のファイルの書き込み権限を持っていなくても、そのディレクトリ内のファイルを直接削除できます。 (temp 下のディレクトリに表示されます) tempdir
:
tempdir ディレクトリに他のユーザーの書き込み権限がある場合、そのディレクトリ内のファイルに対する書き込み権限があるかどうかに関係なく、このディレクトリ内のファイルを直接削除できます。
これは不合理であり、抜け穴であり、書き込むことはできません。 , ただし、このファイルを直接削除することもできます。
スティッキー ビットを使用すると、この問題を解決できます。
粘着ビット
スティッキー ビットは、 で示される他のユーザーの実行可能アクセス許可の代わりになりますt
。次を使用してスティッキー ビットをディレクトリに追加
できますchmod +t [文件名]
スティッキー ビットを設定すると、このディレクトリ内のファイルを削除できるのは、ディレクトリの所有者、ディレクトリ内のファイルの所有者、および root アカウントだけです。
要約する
これまで、
ファイル訪問者の分類、ファイルの種類とアクセス許可、ファイル許可値の表現方法、許可の変更手順、ディレクトリ許可とスティッキービットなど、 Linux ファイル許可に関する内容を紹介してきました。
この部分を明確に紹介していない、またはこの部分に問題があると思われる場合は、コメント欄に指摘してください。
この記事が少しでもお役に立てましたら、ワンクリックでつながれば幸いです
皆さんと一緒に進歩していきたいと思っています