ローカルホストでページを開発するときに、「Permission denied」エラーが表示されることがありますが、これはを実行することで解決できchmod -R 777 /var/www
ます。しかし、これはセキュリティ上の理由から悪い考えだと人々は言っています。
なぜ/var/www
777のchmodが必要ないのですか?
ローカルホストでページを開発するときに、「Permission denied」エラーが表示されることがありますが、これはを実行することで解決できchmod -R 777 /var/www
ます。しかし、これはセキュリティ上の理由から悪い考えだと人々は言っています。
なぜ/var/www
777のchmodが必要ないのですか?
回答:
777は一般に悪い許可であり、その理由を説明します。
カジノやラスベガスでどのように見えるかに関わらず、777はあなたにとって大当たりを意味しません。むしろ、あなたのファイルを変更したい人のための大当たり。777(およびそのい従兄弟666)は、otherへの読み取りおよび書き込み許可(および777の場合はExecute)を許可します。ファイルのアクセス許可がどのように機能するかについて詳しく知ることができますが、要するに、所有者、グループ、およびその他の 3つのアクセス許可グループがあります。他のユーザーのアクセス許可を6または7(rw-
またはrwx
)に設定すると、すべてのユーザーがこれらのファイルとフォルダーを編集および操作できるようになります。通常、想像できるように、これはセキュリティに悪影響を及ぼします。
これが私の例です:
marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test
これまでのところ、フォルダを作成し、「不正な」アクセス許可(777および666)を持つファイルを作成しました。次に、別のユーザーに切り替えて、これらのファイルを操作します。
marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco 0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test
OVERWRITE
この「悪意のある」ユーザーとして、ファイルをディレクトリに配置し、既存のファイルにテキストを挿入することができました。一方、755のディレクトリと644のファイルでは、内部のファイルとディレクトリを見ることができますが、ファイルを編集したり新しいファイルを作成したりすることはできません。
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Apacheの許可についてはumask 022
、フォルダーとファイルをそれぞれ0755と0644(別名)に固定したいと思うでしょう。これにより、ファイルの所有者として、操作に必要な最低限のアクセスレベルをApacheに提供しながら、ファイルを編集および操作できます。
/etc/passwd
と次のようなユーザーが表示されますmail
、news
とnobody
。システムの実際のすべてのユーザーがのコンテンツを変更できるようにしても/var/www
、それがすべてのプロセスをこれらの「人工」ユーザーとして実行できるようにしたいわけではありません。
ls -lah
、touch bad
または任意の他のコマンド。フォルダーとファイルをどのように操作できますか?2)継承。フォルダーとフォルダー内のファイル間の継承については説明しませんでした。ファイルの前に少なくとも2-3のステップがあります:/var
、/var/www
、/var/www/project
。どのユーザー/グループの権限が/var
必要ですか?どのユーザー/グループの権限が/var/www
必要ですか?等々。彼らはどのように協力しますか?
基本的に、777のアクセス許可を持っているからといって、自分でハッキングされることはありませんが、誰かがどこかで手掛かりを取得した場合、それを使用してアクセス許可をエスカレートし、コンピューターを完全に制御できます。最悪の部分は、アクセス許可が「7」を使用していることです。つまり、読み取り、書き込み、および実行のアクセス許可を意味します。
ハッカーがあなたのコンピューターを乗っ取りたいとしましょう。彼はWebブラウザーを使用してコンピューターに接続し、http://yourcomputer.example.com:80 /に接続します。。画像をアップロードできるページがある場合、実行可能ファイルの名前を「.jpg」で終わるように変更して、サーバーにアップロードできます。現在、彼はWebブラウザでそのファイルを参照して実行します。これは、Linuxが拡張子を気にせず、実行可能ファイルであることがわかるだけだからです。それは彼にあまり得られないかもしれませんが、それはまったく実行されたので、彼はそれがApacheユーザーとして実行されたことを知っています。次に、Apacheの設定ファイルを編集する修正バージョンをアップロードし、さらにアクセスを許可します-apacheが/ etc / passwdの内容を出力するようにしましょう。その後、その情報を使用して、システムに存在するユーザーを確認できます。その後、彼はsshを使用して接続し、一般的なパスワードを試してそれらのユーザーとしてログインします。それがうまくいかない場合は、完全なブルートフォース攻撃を使用します。彼がsudoアクセスを持つユーザーとしてログインした場合、
さて、あなたはそれはそうではないと言うかもしれません、またはそれは本当のハッカーがどのように働くかではないと言うかもしれません。それは事実ですが、ポイントは、ファイルをchmod 777に設定することにより、ハッカーが使用できるセキュリティホールを開けたということです。
代わりに、最小限の特権の原則に従う場合、そのホールは発生せず、システムをハッキングするのはそれほど難しくありません。物事を適切に行うことはより困難ですが、それを行うためにあらゆる努力をする必要があります。