www-dataユーザーをホームフォルダー内のフォルダーに渡すにはどうすればよいですか?


31

フォルダーがあります: /home/myuser/folderA

www-dataユーザーに上記への書き込みアクセスを許可したいのですが、「myuser」は通常のアクセスを持ち続けます(myuserのホームフォルダーであるため)。

どのコマンドを使用する必要がありますか?

注:www-data内の他のフォルダにアクセスしたくないです/home/myuser/

前もって感謝します。

回答:


46

まず、グループに自分を追加します www-data

usermod -a -G www-data (your username)

次に:

chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA

あなたの/home/myuser許可が他のユーザーのアクセスを許可しない限り、トリックを行う必要があります。

最初のコマンドは、フォルダーのグループ所有権をWebサーバーの所有権に変更します。2番目のコマンドは、のメンバー与えwww-data群は、読み書き、入力したディレクトリの権限、およびグループsフラグはそのディレクトリテイク内に作成されます任意のファイルことが保証されますwww-dataようにファイルを作成する場合-グループとしては、ユーザがアクセスできるようになります。myuserwww-data

Nb。これumaskは、ユーザーアカウントとWebサーバーの両方の設定にも依存します。folderAで作成されたファイルにグループrwアクセス権があること(およびneed group内で作成されたディレクトリrwx)を確認する必要があります。

あなたのウェブサーバーがあなたの/home/myuserディレクトリへのエンター権を持っていない場合(非常に賢明な)、それはあなたが何か他のことをしない限りそこに入ることはありません。2つのソルン:

  1. sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA (これはいハックであり、再起動後に繰り返す必要があります。しかし、強力なトリックを使用して、SSH刑務所内でフォルダにアクセスできるようにすることもできます。)

  2. たとえば、共有フォルダを別の場所に移動するだけです/home/shared-stuff/folderA

2番目のオプションが最適です。folderAの中のものが本当に公開されていて、誰がそれを見るかは気にしないとしましょう。次のように設定できます。

sudo mkdir -m777 /home/shared-stuff

次に、その中に、たとえば、上記のアクセス許可を持つfolderAと、www-dataが異なるアクセス許可を持つべきでないfolderBを配置できます。

$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data   4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser     4096 Jan 17 21:46 folderB

何がs入っg+rwxsてる?
T.Todua

「グループスティッキー」ビット。「最初の...」で始まる
パラグラフで

6

もう1つの方法は、Apacheの設定でユーザー名を直接変更することです。これは、ローカルマシンであり、フォルダーに対して行われた権限を破壊する他の場所から画像を保存する場合です。また、ユーザーが1人だけで、www-dataを気にしない場合にも実行します。

$ sudo vi /etc/apache2/apache2.conf

ユーザーとグループを見つけて、あなたのものを置きます
User <Your User>
Group <Your Group>

$ sudo service apache2 restart

このソリューションはそれほど安全ではないと思われますが、この設定によってどのようなセキュリティ上の脅威が生じるかを誰もが知っていますか?
フルーフ

安全ではないと確信しています。そのため、ローカルマシンの精度のみを指定しました。
シャドウ

このソリューションは、フォルダへのApacheへのすべてのアクセスを提供します...
Loenix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.