Linuxパーミッションは、すべてのユーザーが開発の早い段階で親密になる概念です。システムを効果的に管理するには、スクリプトを実行し、ファイルを変更し、プロセスを実行する必要がありますが、アクセスが拒否されたと表示されるとどうなりますか? ?このメッセージが表示される理由を知っていますか?問題の原因がわかっている場合は、解決策を実装する方法を知っていますか?
パーミッションを計算するさまざまな方法について簡単に説明した後、Linux内の特別なパーミッションに焦点を当てます。 chmod
を詳しく調べたい場合は、 コマンド、Sudoer Shashank Hegde、Linuxパーミッションからのこの記事をチェックしてください:chmodの紹介。
TL; DRは、権限を割り当てる主な方法が2つあるということです。
シンボリックメソッド
シンボリックメソッドは次の構文を使用します:
[tcarrigan@server ~]$ chmod WhoWhatWhich file | directory
場所:
- 誰が -IDを表します:u、g、o、a(ユーザー、グループ、その他、すべて)
- 何 -アクションを表します:+、-、=(追加、削除、正確に設定)
- どれ -アクセスレベルを表します:r、w、x(読み取り、書き込み、実行)
この例は、追加したい場合です。 読む および書き込み test.txtという名前のファイルへのアクセス許可 ユーザーの場合 およびグループ 、次のコマンドを使用します:
[tcarrigan@server ~]$ chmod ug+rw test.txt
完全な開示。これは許可を割り当てるための私の好ましい方法ではありません。この方法に関する詳細情報が必要な場合は、最寄りの検索エンジンをお勧めします。
数値法
私の経験では、数値法は許可を学び、実践するための最良の方法です。これは、次の構文に基づいています。
[tcarrigan@server ~]$ chmod ### file | directory
ここでは、左から右に、文字# アクセスレベルを表します。アクセスレベルには、ユーザー、グループ、その他の3つがあります。各桁が何であるかを判別するために、以下を使用します:
- 0から開始
- 読んだ場合 権限を設定する必要があります。4を追加してください
- 書き込みの場合 権限を設定する必要があります。2を追加してください
- 実行の場合 権限を設定する必要があります。1を追加してください
これは、アクセスレベルごとに計算されます。この権限の例を解釈してみましょう:
-rw-r-x---
権限は650として表されます 。どうやってそれらの番号にたどり着いたのですか?
- ユーザーの権限は次のとおりです: rw- または4+2 = 6
- グループの権限は次のとおりです: r-x または4+1 = 5
- 他のユーザーの権限は次のとおりです: --- または0
これをコマンド構文に入れると、次のようになります。
[tcarrigan@server ~]$ chmod 650 test.txt
Linuxでの権限計算の基本を理解したところで、特別な権限を見てみましょう。 OSに含まれています。
[次のこともお勧めします:Linuxアクセス制御リスト(ACL)の概要]
特別許可の説明
特別な権限は、ユーザーに加えて4番目のアクセスレベルを構成します 、グループ 、およびその他 。特別なアクセス許可では、(名前が示すように)標準のアクセス許可セットに対する追加の特権が許可されます。前に説明したアクセスレベルごとに特別なアクセス許可オプションがあります。 Set UID:
から始めて、それぞれを個別に見てみましょう。user + s(pecial)
一般的にSUIDと呼ばれます 、ユーザーアクセスレベルの特別な権限には、 SUIDを含むファイルという1つの機能があります。 コマンドを渡すユーザーに関係なく、常にファイルを所有するユーザーとして実行されます。ファイルの所有者に実行権限がない場合は、大文字の Sを使用します ここ。
さて、これを実際的な観点から見るために、/usr/bin/passwd
を見てみましょう。 指図。このコマンドには、デフォルトでSUID権限が設定されています:
[tcarrigan@server ~]$ ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 33544 Dec 13 2019 /usr/bin/passwd
sに注意してください ここでx 通常、ユーザーの実行権限を示します。
グループ+s(特殊)
一般にSGIDと呼ばれます 、この特別な許可にはいくつかの機能があります:
- ファイルに設定すると、ファイルをグループとして実行できます。 ファイルを所有している(SUIDと同様)
- ディレクトリに設定されている場合、ディレクトリに作成されたファイルにはグループがあります。 ディレクトリ所有者の所有権に設定された所有権
[tcarrigan@server article_submissions]$ ls -l
total 0
drwxrws---. 2 tcarrigan tcarrigan 69 Apr 7 11:31 my_articles
この権限セットは小文字のsで示されます ここで、 x 通常、実行を示します グループの権限 。また、グループのメンバー間の共同作業でよく使用されるディレクトリにも特に役立ちます。グループのすべてのメンバーが新しいファイルにアクセスできます。これは、ファイルの実行にも当てはまります。 SGID 適切に使用すると非常に強力です。
SUIDについて前述したように 、所有するグループに実行権限がない場合は、大文字の S 使用されます。
その他+t(スティッキー)
最後の特別許可は「スティッキービット」と呼ばれています。この権限は、個々のファイルには影響しません。ただし、ディレクトリレベルでは、ファイルの削除が制限されます。 所有者のみ (およびルート )のファイルは、そのディレクトリ内のファイルを削除できます。この一般的な例は、/tmp
です。 ディレクトリ:
[tcarrigan@server article_submissions]$ ls -ld /tmp/
drwxrwxrwt. 15 root root 4096 Sep 22 15:28 /tmp/
権限セットは小文字のtで示されます 、ここで x 通常、実行特権を示します。
特別な権限の設定
ファイルまたはディレクトリに特別なアクセス許可を設定するには、上記の標準的なアクセス許可について概説した2つの方法(記号または数値)のいずれかを利用できます。
SGIDを設定したいとします。 ディレクトリcommunity_content
。
シンボリックメソッドを使用してこれを行うには、次のようにします。
[tcarrigan@server article_submissions]$ chmod g+s community_content/
数値的方法を使用して、chmod
の4番目の前の桁を渡す必要があります 指図。使用される数字は、標準の許可数字と同様に計算されます:
- 0から開始
- SUID =4
- SGID =2
- スティッキー=1
構文は次のとおりです。
[tcarrigan@server ~]$ chmod X### file | directory
X は特別な権限の数字です。
SGIDを設定するコマンドは次のとおりです community_content
で 数値的方法を使用する:
[tcarrigan@server article_submissions]$ chmod 2770 community_content/
[tcarrigan@server article_submissions]$ ls -ld community_content/
drwxrws---. 2 tcarrigan tcarrigan 113 Apr 7 11:32 community_content/
[無料ダウンロード:高度なLinuxコマンドのチートシート。 ]
概要
最後に、パーミッションは、効果的なLinux管理者になるために基本的に重要です。 chmod
を使用して権限を設定する方法は2つ定義されています コマンド:記号および数値。両方の方法に必要な構文と計算を調べました。また、システムでの特別な権限とその役割についても検討しました。権限と基本的な概念を理解したので、これまでにない厄介な権限が拒否されましたを解決できます。 作業を妨げようとするとエラーが発生します。