/ var / www / htmlの権限を変更する


12

私はしばらくの間このトピックhttps://help.ubuntu.com/community/FilePermissionsを研究しましたが、何らかの理由でそれを機能させることができません。

特に、これらの行は私に最も興味があります:

指定したディレクトリにある各ファイルとフォルダーのすべてのアクセス許可を一度に変更するには、sudo chmod with -Rを使用します

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

入力したものは次のとおりです。

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

次に、sftpの変更を確認しました。

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

出力から、htmlディレクトリがルートによってのみ変更可能であることが明らかです。

私(非ルート)がhtmlディレクトリにファイルをアップロードできるように、どうすればこれを変更できますか?

私もテストしました:

ファイルの所有者は、chownコマンドを使用して変更できます。たとえば、foobarファイルの所有者をtuxに変更するには:

$ sudo chown tux foobar

サーバーから入力しました:

sudo chown mark owner

無効。


再帰的な-rオプションがありません。777は-never-の正しい変更です(tオプション(スティッキービット)も設定しない限り)質問:なぜ2番目のコマンドでdirが空で、3番目のコマンドでindex.htmlで満たされるのですか?これらのコマンドは同じ状況で発行されます。sudo chown mark owner何をするのでしょうか?そこに「所有者」と呼ばれるファイルまたはディレクトリを導入する
理由は

ファイルまたはディレクトリの所有権を取得するには、新しい所有者、グループ(オプション)、およびファイルまたはディレクトリを指定する必要があります。たとえばsudo chown user:user mydocs、新しい所有者とグループがuserあり、所有権を取得しているディレクトリがどこにあるかmydocs
ガンスハイム

1
この場合、ディレクトリの所有権はそのままにして、その特定のディレクトリのアクセス許可を変更して、そのディレクトリに書き込み、読み取り/書き込みアクセス許可を設定します。コマンドはsudo chmod 766 -r /var/www/html
-Gansheim

@Rinzwindはls -l、ホームディレクトリからコマンドを発行したようです。@Mark表示/操作しようとしているディレクトリにいる場合を除き、パスを指定する必要があります。この場合、次のようにコマンドを発行する必要がありますls -l /var/www/html
-Gansheim

1
みんなが指摘したように、chmod権限をchown変更し、所有者を変更します。755最初の数字(7)は「所有者」にすべての許可があることを意味し、2番目と最後の数字(5)は「グループ」と「その他」の両方に読み取りと実行の許可があることを意味します。ユーザーをグループに追加し、グループにも完全なアクセス許可を付与して、それほど多くの変更を行う必要がないようにすることができます。
サミュエル

回答:


10

この場合、ディレクトリの所有権はそのままにします。特定のディレクトリのアクセス許可を変更して書き込みができるようにするには、読み取り/書き込みアクセス許可を設定します(コマンドは)sudo chmod 766 -R /var/www/html。これにより7、所有者に完全な権限6、グループに読み取り/書き込み、全員に読み取り/書き込みが6再帰的に割り当てられます。


9

自分をそのディレクトリの所有者にすることができます

sudo chown pi /var/www/html

しかし、あなたは間違いなく許可を設定したい

chmod 755 -R /var/www/html

-R(再帰)オプションを使用すると、スクリプトファイルと.htaccessファイルがすべて同じに設定されます。


新しいスクリプトを追加するときは、必ずこの方法でも設定してください。

chmod 755 /var/www/html/cgi-bin/newscript.cgi

一部のCGIプログラムには、次のような独自の要件があることに注意してください。

Bestdam Webサイト訪問者ロガー+ヒットカウンター

抜粋:

テキストエディタでbdlogger.plファイルを開き、必要に応じてshebang行を変更します。

サーバーで、cgi-binディレクトリの下にbdloggerサブディレクトリを作成し、ASCIIモードを使用してスクリプトとデータファイルをFTPにFTPで転送します。

UNIX / Linuxサーバーを使用している場合、ファイルをchmodします。

bdlogger.pl to 755
all other files to 666

次のSSIディレクティブタグをWebページに追加します。

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->

5

wwwフォルダーの所有者を「root」から「Me」に設定する必要があります。

ターミナルから次のコマンドを実行します:

sudo chown -R your_system_username /var/www

うまくいきますように!!


2

上記の答えはトリックをほとんど行いますが、これはより健全なアプローチです。で提供するWebアプリを追加するため、/ var / www / html内のファイルを変更する可能性がありますApache2。これを実現するには、次の手順が必要です

  1. www-dataフォルダーのデフォルトの所有権を持つユーザーグループにユーザーを追加します。どうして?原因は、Webアプリで動的に変更を行う場合、たとえin wordpressであっても、このグループのユーザーに書き込み権限が必要になるためです。これを行うには、次のように記述しsudo adduser username grouptoaddますsudo adduser username www-data。この場合はになります。
  2. 次にread/write permissionschmodコマンドを使用して変更する必要があります。あなたはユーザーグループの一員であり、を使用して所有権を変更する必要はありませんchown。これを行うには、単に実行します:sudo chmod -R 766 directory、この場合はになりますsudo chmod -R 766 html。スポーティな気分であれば(777)、アプリの安全性に応じて、完全な書き込み権限を取得できます。

これ-Rは、再帰的な関数であり、コマンドをすべてのサブディレクトリに適用できます。これが困っている人の助けになることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.