web-dev-qa-db-ja.com

/ var / wwwにアクセスして、「Sudo」なしでファイルとフォルダーを作成および編集するにはどうすればよいですか?

Webサーバー/var/wwwにフォルダーがあります。フォルダーにファイルを追加する必要がありますが、Sudoを使用しない限り、システムは私を許可しません。

ファイルを作成するためにSudoを必要とせず、FTPクライアントを使用してファイルをWebサーバーに直接アップロードできるように、フォルダーとその内容を変更するアクセス権を自分に与えることは可能ですか?

Webサーバーは重要な場合に備えてApache2です。

5
Emil Rowland

/var/www/フォルダーは、ユーザー/管理者だけでなくシステムによって操作されるため、何をしているのかわからない限り、ベース/var/wwwディレクトリーのこれらの設定をいじってはいけません。通常、私は物事をどのように実行するかで、サイト固有のディレクトリinside/var/www/を作成し、そこに自分自身に許可を与えて問題を解決します誤ってサイトのデータを上書きするシステムの(通常、独自の作成でそこにあるサブフォルダーを混乱させません)。

したがって、代わりに/var/www/のフォルダーinsideを設定し、ApacheサイトのDocumentRoot設定を変更して、Webサイトがそのサブフォルダーを指すようにすることができます。 (たとえば、/var/www/mysite/)、コマンドコマンドを実行して、他のユーザーのアクセスをブロックしながら、書き込みアクセスとWebサーバーの読み取りアクセスを自分に与えます。

まず、フォルダを作成するには、「mysite」を使用する名前に置き換えます。

Sudo mkdir /var/www/mysite

次に、アクセス権とWebServerアクセス​​権を付与します。 Apache2はデフォルトでwww-dataとして実行されます。

Sudo chown $USER:www-data /var/www/mysite

第三に、フォルダ内のすべてのファイルcreatedがグループ所有者としてwww-dataを自動的に与えられるようにする必要があります(実際にread読み取る必要があるファイル);このために「SetGID」スティッキービットを設定します。公開するべきではないデータにパスワードが保存されている場合に備えて、他のユーザー(スーパーユーザーとWebサーバーを除く)もフォルダーにアクセスしないようにすることもできます(回答の下部にある私の警告を参照)。

Sudo chmod g+s /var/www/mysite
Sudo chmod o-rwx /var/www/mysite

4番目に、Apacheサイトを編集する必要があります。初めて使用する場合は、「デフォルト」のサイト構成を使用している可能性があります。一連のタスクを実行する必要があります。

  1. 構成ファイルを見つけます-通常は/etc/Apache2/sites-enabledで。
  2. 構成ファイルを編集します-DocumentRoot行を見つけ、次のように変更します:DocumentRoot /var/www/mysite( 'mysite'を作成したディレクトリ名に置き換えます。
  3. Apacheを再起動します-Sudo service Apache2 restart

これがすべて完了したら、Sudoなしで(つまりFTP/SFTPが機能するように)文書を/var/www/mysiteに直接入れることができ、Webサーバーに必要なアクセス許可が必要です。サイトディレクトリ内のすべて。


(ITセキュリティ担当者であるため、義務的なITセキュリティ警告)

警告!

Webサイトのアクセス許可は非常に悪意があり、サイトで使用している内容によっては、多くの労力と労力をかけずに作業することはほとんど不可能です。一部のWebアプリケーションには、アクセスを許可する必要があるもの以外の世界からアクセスできないファイルもあります。

Webアプリケーションは潜在的な悪用の多くに対して脆弱であることに注意することも重要です。そのため、Apacheのソフトウェア更新プログラムだけでなく、サイトで実行するソフトウェアの更新プログラム(WordPressなど)でサイトを更新し続けることが重要です。

15
Thomas Ward