まず、Linux 権限に関するビデオをお勧めします。Linux 権限管理の基本的な権限については、非常にわかりやすく説明されています。
1. ファイルの権限と所有権
1. ファイルには 3 種類の権限があり、このように数字を足したり引いたりすることで識別できます。ファイルのアクセス許可。たとえば、7=4+2+1 は、読み取り、書き込み、実行の 3 つのアクセス許可があることを意味します。6=4+2 は、読み取りと書き込みのアクセス許可はあるが、実行のアクセス許可がないことを意味します。
2. Lenovo Webアプリケーションのrbac 権限管理など Linuxにもユーザー名とユーザーグループがあり、ユーザーを作成すると同じ名前のグループが作成されます。同時に。
まずrootアカウントでログインし、任意に新しいディレクトリとファイルを作成します
#新建目录mkdir abc #新建文件touch abc.txt #查看ls -all
確認すると、次のようになります:
#d开头的为目录,-开头为文件,还有l开头的为软链接等
まず上の青い部分を見てください、最初の桁はabc フォルダーを例として、最初の数字とその後の 3 桁の区切りを削除します。つまり、abc フォルダーは所有者が rwx (7) であることを意味します。グループは rx (5) を所有し、他のグループは rx (5) を所有します。
同様に、上のファイルの赤い部分は所有者名と所属するグループ名、つまりabcフォルダの所有者はroot、所属するグループはrootです。現時点では:
になります。ファイルの各パーミッションの確認
本当はテストしながらお伝えしたかったのですが、面倒なので結果だけお伝えします。新しいユーザーを自分で作成し、権限を変更して自分でテストできます。
1. ディレクトリ
a. ディレクトリを入力します (つまり cd コマンド、必要な権限は実行権限 (x) です) b. ディレクトリ内のファイルを表示します (つまり、ls コマンド)、必要な権限は読み取り権限 (r) c. ディレクトリ、つまり mkdir/touch 内のフォルダー/ファイルを作成および削除します。必要な権限は書き込み権限です (w)
ちなみに、ディレクトリは次のレベルにのみ影響し、世代には影響しません。ディレクトリ abc/sub/ と同様に、abc に w 権限がないが、sub に w 権限がある場合、sub にファイルを作成できます。もちろん、abc にも x 権限が必要です。そうでない場合は、入力できません。単独で作成しますが、アクセスできる限り (ルート管理者の方法を切り替えることができます)、abc の影響は受けなくなり、sub の影響のみを受けます。
通常、ディレクトリには読み取りおよび実行権限である 5 (rx) 権限が与えられます。画像のアップロードやキャッシュなど、作成する必要があるディレクトリのみに 7 (rwx) 権限が与えられます。 a. ファイルを開くには、cat/vim コマンドを使用して開くことができます。必要な権限は読み取り権限 (r) です
b. ファイルを変更するには、cat/vim コマンドを使用してファイルを開き、保存します。 . 必要な権限は書き込み権限(w)
c. ファイルの実行は./abc.outなどで直接実行可能 必要な権限は実行権限(x)
ここで説明が必要なのは、phpがコマンドラインから実行 (php abc.php の実行と同様) または Web 側で実行 (実行という名前) は、実際にファイルを解析のために PHP カーネルに読み込みます。そのため、読み取り権限 (r) がある限り、たとえば、abc.sh の場合、./abc.sh を直接実行する場合は実行権限 (x) が必要ですが、sh abc.sh コマンドを実行するには読み取り権限 (r) が必要です。
通常、ファイルには読み取り権限である 4(r) 権限が与えられますが、ファイルにコンテンツを書き込む必要があるログ、キャッシュなどには 6(rx) 権限が与えられます
上記の理由。 755、777、644 の権限はありませんが、Web サイトのディレクトリの権限は、実行中に使用されるユーザーと何らかの関係があるとは保証できないため、単一の権限のみです。つまり、実行中に使用されるユーザーは、所有者、グループ、またはその他の可能性があります
3. PHP 実行時の権限
ssh 経由で Linux に接続する場合、ログインするためのユーザー名が必要です。同様に、PHP がPHP 関連のファイルを処理する場合、それは特定のユーザーの下で動作する必要があります。ユーザーはどこで作成または定義されますか? 通常、PHP 環境をインストールするときにユーザーが作成されます。デフォルトでは、ユーザー グループが含まれており、このユーザーは php を読み取るときに使用されます。読み取るには、設定ファイルを表示して確認できます:#apache在配置文件httpd.conf User www Group www #nginx在配置文件nginx.conf user www www;
または、コマンド
#查看apache进程ps -ef|grep httpd #查看nginx进程ps -ef|grep nginx #查看php-pfm进行ps -ef|grep php-pfmを使用してプロセスを表示します。たとえば、次のように表示されます:
root 1663 1 0 09:14 ? 00:00:00 /www/wdlinux/apache/bin/httpd//主进程www 1697 1663 0 09:14 ? 00:00:05 /www/wdlinux/apache/bin/httpd//子进程www 1698 1663 0 09:14 ? 00:00:05 /www/wdlinux/apache/bin/httpd
第一列就是显示的哪个用户在执行它,主要看非root下的。上方说明是www用户在运行apache进程来处理php文件。一般来说apache/nginx会以root来启动主线程,然后fork出子线程来处理具体的业务,而子进程在创建时会根据配置文件中的用户名和用户组通过setuid和setgid命令来设置有效用户名和有效用户组。需要注意的是“有效”这两个字,例如,某个用户名为test,其所属组test,而apache中配置文件中设置的用户名为test,但是用户组设置为abc,这时就可能很疑惑了,那组到底是按照用户名所属的组还是配置文件中设置的组呢?答案是设置的,因为通过setgid变更了,具体谷歌百度搜索“有效用户”、“实际用户”、“setuid函数”等关键字。
这里需要注意的是,如果有安装php-pfm,则应该还需要查看php-pfm执行时的用户名及用户组。(没有安装,所以没实践过)
默认的可能是nobody或者apache等其它的用户及用户组,上方是已修改过的。此时应该在网站目录中用ls-all来确认下网站文件是属于哪个用户,分几种情况说明下吧:
a、例如网站所有者是这样:
drwxr-xr-x 2 www www 4096 Jun 6 10:23 system drwxr-xr-x 2 www www 4096 Jun 6 10:23 tmp-rw-r--r-- 1 www www 0 Jun 6 10:23 index.php ...
网站所有者为www,而php执行者也为www,那说明是具有owner权限,上方system文件夹中755中的55根本不起作用,只要是7xx就会以7(rwx)的权限来执行。
b、如果网站所有者是这样:
drwxr-xr-x 2 test www 4096 Jun 6 10:23 system drwxr-xr-x 2 test www 4096 Jun 6 10:23 tmp -rw-r--r-- 1 test www 0 Jun 6 10:23 index.php ...
网站所有者为test,所属组为www,而php执行者为www,执行组为www,那说明是说在同一组中,具有group权限,上方system文件夹中755中的7和5不起作用,只要是x5x就会以5(rx)的权限来执行。
c、如果网站所有者是这样:
drwxr-xr-x 2 test test 4096 Jun 6 10:23 system drwxr-xr-x 2 test test 4096 Jun 6 10:23 tmp -rw-r--r-- 1 test test 0 Jun 6 10:23 index.php ...
网站所有者为test,所属组为test,而php执行者为www,执行组为www,那说明是说根本没什么关系,具有other权限,上方system文件夹中755中的75不起作用,只要是xx5就会以5(rx)的权限来执行。
所以不能简单的说修改权限为755,644什么的,还需要确认程序的执行者和网站的所有者才能确定权限。
目前好多集成环境为了省事(嗯,lanmpv3等),将php的执行权限和网站所在目录都设置为www,此时一般创建完目录后为755,创建文件后为644,当php执行时,起作用的目录权限为7(所有目录拥有创建删除权限)和文件权限6(所有文件具有写权限),这种是不是挺不安全的?正常应该是目录为5,文件为4,当有特殊需求时才将权限设为7。如果出现上方说的这种情况,修改的方法一是修改apache/nginx的用户和用户组,二是修改网站文件的所有者和所有组这两个方向来修改,以确保网站的安全。
以上,只是基础的权限说明。
以上がLinuxの権限管理の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPは死んでいません。 1)PHPコミュニティは、パフォーマンスとセキュリティの問題を積極的に解決し、PHP7.xはパフォーマンスを向上させます。 2)PHPは最新のWeb開発に適しており、大規模なWebサイトで広く使用されています。 3)PHPは学習しやすく、サーバーはうまく機能しますが、タイプシステムは静的言語ほど厳格ではありません。 4)PHPは、コンテンツ管理とeコマースの分野で依然として重要であり、エコシステムは進化し続けています。 5)OpcacheとAPCを介してパフォーマンスを最適化し、OOPと設計パターンを使用してコードの品質を向上させます。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトの要件に依存します。 1)PHPは、Web開発に適しており、学習しやすく、豊富なコミュニティリソースですが、構文は十分に近代的ではなく、パフォーマンスとセキュリティに注意を払う必要があります。 2)Pythonは、簡潔な構文と学習が簡単なデータサイエンスと機械学習に適していますが、実行速度とメモリ管理にはボトルネックがあります。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
