何度も投稿された質問をしようとしています。しかし、多くのガイドや記事を読んだにもかかわらず、まだ疑わしい部分があります。
sudo権限(セカンダリグループ「sudo」)を持つユーザーと、「Webサーバー」にのみ使用したいユーザーを持つUbuntu 14.04サーバーがあります。
詳しく説明します。
私のWebサーバーユーザーは、www-dataグループ(デフォルトグループ)の一部である「jack」です。
仮想ホストはJackのホームディレクトリを指し、そこにさまざまなサブドメインを持つサブフォルダを含む「alias」というサブフォルダを作成しました。
はい。
/home/jack/public_html <-- main site
/home/jack/alias/forum <-- subdomain
/home/jack/alias/wiki <-- subdomain
/home/jack/alias/cloud <-- subdomain
私が知りたいことは:
- 最初の質問-
ジャックがユーザーグループではなく、プライマリグループwww-dataに属し、セカンダリグループwww-dataに属するのは正しいですか?
- 2番目の質問-
友達がWebサーバーフォルダの権限をこのように設定するように提案しました。
chgrp www-data /home/jack/public_html
chmod g+rwxs /home/jack/public_html
エイリアスフォルダも同じです。今は大丈夫に見えますが、問題があります...
- Webサーバーにファイルをロードすると、root権限は次のようになります。
ジャック:www-data0644
- ファイルがwww-dataによって生成された場合(例:cms経由)
www-データ:www-data0666
FTPなどでファイルを手動で編集すると、権限が変更され、さまざまな「ネットワークアプリケーション」に問題が発生します。
どうすれば解決できますか?
ベストアンサー1
最初の質問:とにかく。これを行う方法はいくつかあります。これを行うLinux標準の方法は、あなたが行うのとは異なりますが、あなたの方法も機能します。 Linuxの標準のように、ApacheアカウントでWebサーバーを実行しないという事実は、少なくとも他の問題がある可能性があることを示唆していますが、最初の質問の終わりは何も指していません。
2番目の質問:the_velour_fogが提案したように、すべてのネットワークファイルに権限を設定する必要があります。しかし、私はその方法に同意しません。
chgrp -R www-data /home/jack/public_html
大丈夫で、何の問題も起こらないでしょう。しかし、他のコマンドに-Rを追加するだけでは十分ではありません。
chmod -R g+rwXs,o-w /home/jack/public_html
このバリアントでは、実行可能ファイルとしてマークされていないファイルの実行権限は設定されません。また、実際にはそうしたくないので、すべてのファイルに対する他の書き込み権限も削除します。
もちろん、このchmodはWebサーバーが権限0666でファイルを生成する問題の一時的な方法です。あなたのWebサーバーに問題がある場所が正確にどこにあるかはわかりませんが、ある時点であなたのWebサーバーのユーザーが似たようなことをしたumask 0
のでumask 02
。
不正な権限を持つFTPを使用するファイルについては、それがFTPサーバーの問題であるかどうか、ファイルが転送される前に作成される方法に問題があるかどうかはわかりません。これらのファイルは確立されたセッションでも作成する必要がありますが、適用中に作成することumask 02
もできます。umask 022
(umask 22
技術的には、前の0は読者に数字が8進数であることを思い出させます。
権限の問題がFTPサーバーに関連している場合は、問題を解決するのではなくFTPに切り替えることをお勧めします。 FTPは非常に安全でないプロトコルであるためですscp
。sftp
2019年の主な価値は匿名転送を可能にしますが、Webサーバーを使用して匿名でファイルをインポートすることができ、Webサーバーアカウントに匿名でインポートまたはプッシュしたくありません。インストールされていてプロセスが実行されている場合は、scp
Ubuntuサーバーで両方を使用できます。sftp
ssh
sshd