私はnot/var/www/html
フォルダで777許可を与えようとしていますが、Sudo
なしでファイルを編集したいです。したがって、/var/www/html
内のホームディレクトリにフォルダのシンボリックリンクを作成します。 Sudo ln -sT /home/andre/www/moodle/ moodle
を使用して作成し、ls -la
出力は次のとおりです。
andre@andre-270E5G:/var/www/html$ ls -la
total 8
drwxr-xr-x 2 root root 4096 Mai 4 10:20 .
drwxr-xr-x 4 root root 4096 Abr 29 14:29 ..
lrwxrwxrwx 1 root root 23 Mai 4 10:20 moodle -> /home/andre/www/moodle/
したがって、私のmoodleフォルダーには、すべてのユーザーの読み取り、書き込み、実行の許可がありますが、それは私が望むものではありません。コマンドを変更しようとしてSudo chmod -R 775 moodle/
を使用しましたが、すべてのユーザーに対して読み取り、書き込み、および実行の許可を保持しました。 /home/andre/www/moodle
のmoodleフォルダーで同じことを試みましたが、同じままでした。 ls -la
の/home/andre/www/
の出力は次のとおりです。
andre@andre-270E5G:~/www$ ls -la
total 28
drwxrwxr-x 3 andre andre 4096 Mai 4 10:02 .
drwx------ 49 andre andre 20480 Mai 4 10:01 ..
drwxrwxr-x 41 andre andre 4096 Mai 4 10:02 moodle
したがって、/home/andre/www/
のmoodle
フォルダーには、必要な権限があります。
追加の問題として、localhost/moodle
にアクセスすると、403 Forbiddenエラーが発生します。
ここで何が間違っていますか?
許可の問題を解決するためにシンボリックリンクを使用するという考え全体に欠陥があり、機能しません。シンボリックリンク自体に表示される権限はほとんど無関係であり、「実際の」ディレクトリの権限を回避するために使用することはできません。 /var/www/html/moodle
から/home/andre/www/moodle/
へのシンボリックリンクを作成しても、/home/andre/www/moodle/
の権限は回避されません。 /var/www/html/moodle
で必要な権限を持っている場合に限り、/home/andre/www/moodle/
で何かをしたい人は誰でもそうすることができます。
Sudo chmod -R 775 moodle/
を実際に実行するとdidに影響がありますが、シンボリックリンクの許可を変更せず、シンボリックリンクのターゲット/home/andre/www/moodle/
の許可を変更したとは考えていません。
ウェブサーバーで発生する403エラーは、おそらくウェブサーバーに/home/andre
を入力するために必要な権限がないためです。これは「追加の問題」ではなく、同じ権限の問題によるものです。
そのため、シンボリックリンクを使用する代わりに、ファイルとWebサーバーを編集してそれらにアクセスする(または、アプリケーションによっては編集することもできる)アクセス許可を把握する必要があります。正確にこれらのアクセス許可が何であるかは、使用事例(アプリケーションとサーバーの構成)によって異なります。
一般に、ファイルを所有し、rwパーミッションを持ち、Webサーバーはグループパーミッションを介してファイルへの読み取りアクセスのみを持ち、他のすべてのユーザーはアクセス権をまったく持たないことをお勧めします。
許可の例(情報が不足しているため、ユースケースでは機能しない場合があります):
andre@fermat:/var/www/html$ ls -al moodle/
total 0
drwxr-x--- 2 andre www-data 60 mai 4 16:20 .
drwxr-xr-x 3 root root 80 mai 4 16:20 ..
-rw-r----- 1 andre www-data 0 mai 4 16:20 index.html
ディレクトリには、所有者がディレクトリを入力してそのコンテンツを変更するのに十分なアクセス権があることがわかります。Webサーバー(グループwww-data
内)が入力および読み取りを行えます。ファイル自体は、ユーザー(所有者)が読み取りおよび書き込み可能で、Webサーバー(グループwww-data
内)が読み取り可能です。他のすべてのユーザーは一切アクセスできません。
繰り返しますが、これは例としてのみ使用してください。 Webサーバーの正確なユーザー/グループは、構成によって異なります。そして、あなたのアプリケーション(moodle)は異なるパーミッションを必要とするかもしれません、あなたはそのドキュメントを調べる必要があります。
トーマス・ワードによる優れた回答 https://askubuntu.com/a/767534/71786
8つのコマンドの代わりに、わずか3つのコマンドですべての推奨手順を実行できます。
3つのコマンド:
Sudo chown -R ubuntu:www-data /var/www
Sudo find /var/www -type d -exec chmod 2750 {} \+
Sudo find /var/www -type f -exec chmod 640 {} \+
次の8つのコマンドと同じ作業を行います:
Sudo chgrp -R www-data /var/www
Sudo find /var/www -type d -exec chmod g+rx {} +
Sudo find /var/www -type f -exec chmod g+r {} +
Sudo chown -R ubuntu /var/www/
Sudo find /var/www -type d -exec chmod u+rwx {} +
Sudo find /var/www -type f -exec chmod u+rw {} +
Sudo find /var/www -type d -exec chmod g+s {} +
Sudo chmod -R o-rwx /var/www/