
Webサーバーのアクセス許可の問題を修正しようとしていて、インターネットで情報を見つけました。再帰的にchmod 777
する必要があると言っています。 Webディレクトリ。その前に、chmod -R 777
の機能を理解してください。 実行し、アクセス許可を777に設定しない理由。
この記事では、基本的なLinuxパーミッションモデルと、パーミッションに対応する数字の意味について説明します。
Linuxファイルのパーミッションについて#
Linuxでは、ファイルへのアクセスは、ファイルのアクセス許可、属性、および所有権を使用してオペレーティングシステムによって制御されます。 Linuxファイルシステムのアクセス許可モデルを理解すると、ファイルとディレクトリへのアクセスを許可されたユーザーとプロセスのみに制限し、システムをより安全にすることができます。
各ファイルは特定のユーザーとグループによって所有され、3つの異なるクラスのユーザーに対するアクセス権が割り当てられています。
- ファイルの所有者。
- グループメンバー。
- その他(その他すべて)
各ユーザークラスに適用される3つのファイル権限タイプがあり、ファイルの読み取り、ファイルへの書き込み、またはファイルの実行を許可するユーザーを指定できます。同じ権限属性が、異なる意味を持つファイルとディレクトリの両方に適用されます:
- 読み取り許可。
- ファイルは読み取り可能です。たとえば、読み取り権限が設定されている場合、ユーザーはテキストエディタでファイルを開くことができます。
- ディレクトリの内容を表示できます。ユーザーは、
ls
を使用してディレクトリ内のファイルを一覧表示できます。 コマンド。
- 書き込み権限。
- ファイルは変更または変更できます。
- ディレクトリの内容は変更できます。ユーザーは、新しいファイルの作成、既存のファイルの削除、ファイルの移動、ファイルの名前変更などを行うことができます。
- 実行権限。
- ファイルを実行できます。
- ディレクトリは
cd
を使用して入力できます コマンド。
ls
を使用してファイルのアクセス許可を表示できます 指図。次に例を示します:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| | | | | | |
| | | | | | +-----------> 7. Group
| | | | | +-------------------> 6. Owner
| | | | +--------------------------> 5. Alternate Access Method
| | | +----------------------------> 4. Others Permissions
| | +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
最初の文字はファイルタイプを示しています。通常のファイルにすることができます(-
)、ディレクトリ(d
)、シンボリックリンク(l
)、またはその他の特殊なタイプのファイル。
次の9文字はファイルのアクセス許可を表し、それぞれ3文字の3つのトリプレットです。最初のトリプレットは所有者のアクセス許可を示し、2番目のトリプレットはグループのアクセス許可を示し、最後のトリプレットは他のすべてのユーザーのアクセス許可を示します。
許可番号#
ファイルのアクセス許可は、数値形式または記号形式で表すことができます。この記事では、数値形式に焦点を当てます。
許可番号は、0〜7の範囲の3桁または4桁で構成できます。
3桁の数字を使用する場合、最初の数字はファイルの所有者の権限を表し、2番目の数字はファイルのグループを表し、最後の数字は他のすべてのユーザーを表します。
書き込み、読み取り、および実行のアクセス許可には、次の数値があります。
-
r
(読み取り)=4 -
w
(書き込み)=2 -
x
(実行)=1 - 権限なし=0
特定のユーザークラスのアクセス許可の数字は、そのクラスのアクセス許可の値の合計です。
許可番号の各桁は、4、2、1、および0の合計である可能性があります:
- 0(0 + 0 + 0)–許可なし。
- 1(0 + 0 + 1)–実行権限のみ。
- 2(0 + 2 + 0)–書き込み許可のみ。
- 3(0 + 2 + 1)–書き込みと実行のアクセス許可。
- 4(4 + 0 + 0)–読み取り許可のみ。
- 5(4 + 0 + 1)–読み取りおよび実行権限。
- 6(4 + 2 + 0)–読み取りおよび書き込み権限。
- 7(4 + 2 + 1)–読み取り、書き込み、および実行のアクセス許可。
たとえば、アクセス許可番号が750に設定されている場合、ファイルの所有者には読み取り、書き込み、実行のアクセス許可があり、ファイルのグループには読み取りと実行のアクセス許可があり、他のユーザーにはアクセス許可がないことを意味します。
- 所有者:rwx =4 + 2 + 1 =7
- グループ:r-x =4 + 0 + 1 =5
- その他:r-x =0 + 0 + 0 =0
4桁の数字を使用する場合、最初の桁は次の意味になります。
- setuid =4
- setgid =2
- sticky =1
- 変更なし=0
次の3桁は、3桁の数字を使用する場合と同じ意味です。最初の桁が0の場合は省略でき、モードは3桁で表すことができます。数値モード0755
755
と同じです 。
ファイルの権限を数値(8進数)表記で表示するには、stat
を使用します コマンド:
stat -c "%a" filename
644
chmod 777を使用しないでください#
ファイルまたはディレクトリに777のアクセス許可を設定すると、すべてのユーザーが読み取り、書き込み、実行できるようになり、セキュリティ上の大きなリスクが生じる可能性があります。
たとえば、/var/www
の下にあるすべてのファイルとサブディレクトリの権限を再帰的に変更する場合 777
へのディレクトリ 、システム上のすべてのユーザーが、そのディレクトリ内のファイルを作成、削除、または変更できます。
Webサーバーでアクセス許可の問題が発生した場合は、アクセス許可を777
に再帰的に設定するのではなく、 、ファイルの所有権をアプリケーションを実行しているユーザーに変更し、ファイルの権限を644
に設定します およびディレクトリの755
へのアクセス許可 。
ファイルの所有権は、chown
を使用して変更できます chmod
を使用したコマンドと権限 コマンド。
サーバー上にユーザー「linuxize」として実行されているPHPアプリケーションがあるとします。実行する正しい権限を設定するには:
chown -R linuxize: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
ファイルの権限を変更できるのは、root、ファイル所有者、またはsudo権限を持つユーザーのみです。 chmod
を使用するときは特に注意してください 、特に権限を再帰的に変更する場合。
結論#
Linuxシステムを管理している場合は、Linuxのアクセス許可がどのように機能するかを知ることが重要です。
777(rwxrwxrwx
)は絶対に設定しないでください )アクセス許可ファイルとディレクトリのアクセス許可。 777は、誰でもこれらのファイルを使用して何でもできることを意味します。
ご不明な点がございましたら、お気軽にコメントをお寄せください。