目次
1. ファイル権限の概念
1. それは何ですか?
簡単に言えば、これはユーザーがファイルに対して実行できることです。
ファイル権限の核心 = ユーザー (ユーザー ID) + トランザクション属性 (実行できる内容)
(これは、ユーザーがファイルに対して実行できる内容を示します)
2. Linux における権限管理は、ファイル所有者、同じグループ内のユーザー、およびその他のユーザーという 3 つの異なるカテゴリ (ユーザーの ID) に分類されます。
3. 共通権限(できること):r:読み取り権限(read)、w:書き込み権限(write)、x:execute(実行)。
2. Linuxコマンド「ll」の結果の分析
1. ファイルの種類
ll コマンドによって表示される各列の最初の文字は、ファイルのファイル タイプを示します。
例: ファイルの種類を表示するには、ll コマンドを使用します。
Tuo: Windows とは異なり、Linux はファイルの種類を区別するためにファイル接尾辞を使用しません。
(Linux システムはファイルの接尾辞を参照しませんが、ファイルを区別するためにそれを表示することができます)
2. 所有者および所属グループおよびその他の利用者
llコマンドで表示される各列の12文字目から14文字目はファイルの所有者のユーザー名、15文字目から17文字目はファイルが所属するグループのユーザー名です。
所有者とそれが属するグループは、ユーザーのアイデンティティとラベルです。
3. 所有者、所属グループ、およびその他の権限。
ll コマンドで表示される各列の 2 文字目から 10 文字目は、ファイルの所有者、ファイルが属するグループ、およびその他の権限を示します。
2 番目から 4 番目の文字は、所有者が読み取り、書き込み、および実行の権限を持っているかどうかを示します。
5 文字目から 7 文字目は、所属するグループに読み取り、書き込み、および実行の権限があるかどうかを示します。
8 文字目から 10 文字目は、相手が読み取り、書き込み、実行の権限を持っているかどうかを示します。r:読み取り権限(read)、w:書き込み権限(write)、x:execute(実行)。
この権限がある場合は文字が表示され、権限がない場合は - になります。
rwx の位置は固定されています。たとえば、読み取り権限がある場合、最初の位置は r で、そうでない場合は - です。wrxやxwrなどの場合は不可です。
4. ll コマンドで表示される各列の 4 番目の文字列は、ファイルが占める容量を示します。単位はバイトです。
5. ll コマンドで表示される各列の 5 番目の文字列は、ファイルの最終更新時刻を示します。
6. llコマンドで表示される各列の6番目の文字列がファイル名を表します。
要約:
拡張 1: 権威の具体的な具現化
拡張子 2: 対応する権限がありません: 権限が拒否されました
例: 実行権限がありません:
3. Linux で権限を変更する 2 つの方法
どちらの方法でも chmod コマンドを使用します。(chmod コマンド: 権限を変更します。)
1. 方法 1:
chmod u/g/o +/- r/w/x ファイル名
(+ は権限を追加し、- は権限を削除します)
a. 所有者の権限を変更します (u):
chmod u +/- r/w/x ファイル名
たとえば、test.txt ファイルの所有者の読み取り権限を削除し、その所有者に実行権限を追加します。
(複数の権限を変更するには、それらを分けてください)
b. 所属するグループ (g) の権限を変更します。
chmod g +/- r/w/x ファイル名
例: 所属するグループの書き込み権限を削除し、所有者に実行権限を追加します。
c. 他の権限を変更します (o):
chmod o +/- r/w/x ファイル名
たとえば、所属するグループの読み取り権限を削除し、所有者に書き込み権限を追加します。
d. すべての ID の権限を変更します (a):
chmod a +/- r/w/x ファイル名
たとえば、すべての ID の実行権限を削除し、すべての ID に読み取り権限を追加します。
たとえば、所有者の読み取りおよび書き込み権限を削除し、その所有者が属するグループに書き込み権限を追加し、他の人の書き込み権限を削除します。
(複数の権限を変更するには、権限を分けてください。)
拡張 1: 権威の具体的な具現化
cat はファイルを読んでおり、読み取り権限が必要です。
> 出力リダイレクトではファイルが書き込まれており、書き込み権限が必要です。
ファイル パスを入力し、Enter キーを押してファイルを実行するには、実行許可が必要です。
拡張 2: 許可が拒否されました (許可が拒否されました)
対応する操作を実行する権限がない場合は、プロンプトが表示されます。
2. 8進修飾法
chmod XXX ファイル名
権限は、chmod と 3 桁の 8 進数を使用して変更できます。
例えば。chmod 777 テスト.txt
file.tx ファイルのすべての ID に読み取り、書き込み、および実行のアクセス許可が与えられるようにアクセス許可を変更します。
例えば。chmod664
ファイルを、所有者に対しては読み取りおよび書き込み、そのファイルが属するグループに対しては読み取りおよび書き込み、その他に対しては読み取り専用に変更します。
原理:
「はい」と「いいえ」は正確に 2 つの状態であり、バイナリでは 0 と 1 で表すことができます。アイデンティティには、判断する必要がある 3 つのアクセス許可があります。アイデンティティがどのアクセス許可を持っているかを示すために 3 桁の 2 進数を使用できます。 8 進数に変換すると、アクセス許可を表す 3 つの ID (所有者、グループ、その他) があるため、3 桁の 8 進数を使用してすべての ID のアクセス許可を表すことができます。
のように:
111 は、すべての ID が実行権限のみを持っていることを示します。
777 は、すべての ID が読み取り、書き込み、実行のアクセス許可のみを持っていることを示します。
000 は、すべての ID に権限がないことを意味します。
4. ファイルの所有者とグループを変更します。
方法1:rootユーザーで強制変更する
(一般ユーザーでは強制変更不可)
1.chown ユーザー名パス/ファイル名:ファイルの所有者 を指定したユーザーに変更します。
ディレクトリの所有者を変更する場合、オプション -R: 再帰処理を追加できます。指定したディレクトリの下にあるすべてのファイルとサブディレクトリが一緒に処理されます。
2.chgrp ユーザー名パス/ファイル名:ファイルのグループを指定したユーザーに変更します。
3.chown ユーザー名:ユーザー名 パス/ファイル名 : ファイルの所有者とグループを指定したユーザーに変更します。
(chown の後に 2 人のユーザーが続きます(真ん中で: で区切られています)。これにより、ファイルの所有者とグループが同時に指定されたユーザーに変更されます。)
方法 2: コマンドの前に sudo を追加して、root 権限レベルでコマンドを実行する
sudo を使用するには、まず現在のユーザーを信頼リストに追加する必要があります。信頼リストの追加は、ルート ID で実行する必要があります。
ユーザーを信頼リストに追加することは、この章の焦点ではないため、ここでは詳しく説明しません。さらに詳しく知りたい友達については、次を参照してください。
このコマンドを実行するには、現在コマンドを実行しているユーザーのパスワードも入力する必要があります。変更するファイルの所有者ではないユーザーのパスワード。
このようにして、root ユーザーに切り替えることなく、ファイルの所有者とグループを直接変更できます。
Tuo: ユーザー ID を他のものに直接変更するコマンドがないのはなぜですか?
他の人は確信がないからです。
5. 同一性の判断
ユーザーがファイルを操作するときは、まずファイルに関するユーザーの ID を判断する必要があります。
現在のユーザーのユーザー名を調べて、ファイルまたはその他のファイルの所有者であるかグループであるかを判断します。
判定は1回のみで、オーナーが先に判定され、一度オーナーと判定されるとグループに属していても判定されません。
(ユーザーは所有者とグループの両方になることができます)
6. システムマスク
1. Linux のデフォルト:
ディレクトリは 777 から始まる初期権限で作成されます。
通常のファイルは、666 から始まる開始権限で作成されます。
2. しかし、なぜ作成時にこのようにならないのでしょうか?
例: 新しく作成されたファイルの権限を確認します。
Linux はシステム マスクを通じていくつかの計算を実行し、新しいアクセス許可を取得し、それが作成されたディレクトリとファイルのアクセス許可になるためです。したがって、作成したファイル/ディレクトリのアクセス許可は 666/777 ではありません。
3. Linux システムのデフォルトのシステム マスクは 0002 です。(計算するときは下3桁のみを使用します)
たとえば、umask を使用してシステム マスクを表示します。
4. 最終的な権限を計算する
計算プロセス: 最終権限 = 初期権限 & (~システム マスク)
権限とシステムマスクの 8 進数 3 桁を 2 進数 9 桁に変換し(システムマスクの 8 進数は 4 桁ですが、計算に使用されるのは下 3 桁のみです)、9 キーを押します。 -digit システム マスクの 2 進数。ビットが反転され、2 進数の 2 つの文字列がビットごとに AND 演算されて、最終的な権限が得られます。
例: ディレクトリ/通常のファイルを作成した後のパーミッションの計算プロセス:
したがって、システム マスクの機能は、システムを使用して、新しく作成されたファイル/ディレクトリの初期アクセス許可を変更し、最終的なアクセス許可を生成することです。
5. umask を使用してシステム マスクを変更します。
例: umask 0777: システム マスクを 0777 に変更します。
変更されたシステム マスクの後、最終的なアクセス許可を計算するときに、変更されたシステム マスクが使用されます。
例: システム マスクを 0777 に変更してファイルを作成します。
7. ファイルを削除するために必要な権限
このユーザーが読み取り、書き込み、実行できないファイルについては、rm を使用して直接削除できます。これは、ファイルを削除するのに権限は必要ないという意味ですか?
ファイルまたはディレクトリを削除するのは、ファイルの所有者やグループではなく、ファイルが存在するディレクトリです。ディレクトリ内のファイル/ディレクトリを削除するには、ディレクトリに書き込む権限が必要です。
要約: したがって、ファイル/ディレクトリを削除できるかどうかは、ユーザーがファイル/ディレクトリの上位ディレクトリへの書き込み権限を持っているかどうかによって決まります。
したがって、ユーザーはパブリック ディレクトリにある別のユーザーのファイルを削除できます。(パブリックディレクトリを設定: ディレクトリ内の他の権限をrwxに設定)
たとえば、ユーザーがパブリック ディレクトリにある別のユーザーのファイルを削除します。
8、スティッキービット
0.インポートの問題
すべてのユーザーがディレクトリを共有し、そのディレクトリに対する読み取り、書き込み、および実行のアクセス許可を持っている場合、次のことが可能になります。
a. 複数のユーザーがディレクトリを共有し、このディレクトリ内のファイルの読み取り、書き込み、作成、および実行ができます。
b. ただし、削除できるのは自分のファイルのみであり、他のユーザーのファイルは削除できません。
これは、書き込み権限 (w) を削除することで実現できますか?
いいえ、ディレクトリの書き込み権限が削除されるため、ディレクトリ内のファイルは削除できませんが、同時にディレクトリ内にファイルを作成することもできません。
現時点では、新しい権限であるスティッキー ビットを使用します。
拡張子: パブリックディレクトリを作成する
パブリックディレクトリはルートディレクトリ(/)配下に作成する必要があり、作成したディレクトリotherのパーミッションをrwxに変更してパブリックディレクトリの作成は完了です。
1. スティッキービットの概念
スティッキー ビットも r/w/x (読み取り/書き込み/実行) のような一種の許可であり、記号 t で表されるシステム許可のフラグです。
ディレクトリ内で t (スティッキー ビット) を other に設定すると、複数のユーザーが同じディレクトリで作業しているときに自分のファイルの読み取り、書き込み、作成、削除を行うことができますが、他のユーザーのファイルを削除することはできません。
2. スティッキー ビットを設定します: chmod +t mytemp
たとえば、パブリック ディレクトリのスティッキー ビット権限を設定します。
例: スティッキー ビットの使用:
注記:
t は権限 x の特殊なケースであり、アクセスはできるが削除はできないことを意味します。
ディレクトリのみ設定可能で、設定時にユーザーを指定する必要はなく、デフォルトでは「その他」に設定されます。
スティッキー ビットは通常、それをキャンセルできる人 (root) によって設定されます。
スティッキー ビットは、複数のユーザーが同じディレクトリで作業している場合に便利です。
ユーザーは他のユーザーのホーム ディレクトリに対する権限を持たず、いかなる操作も実行できないため、他のユーザーが自分のディレクトリ内のファイルを削除できても心配する必要はありません。
拡張機能、一般的な権限の問題