フォルダーがあります:/home/myuser/folderA
Www-dataユーザーに上記への書き込みアクセスを許可したいのですが、「myuser」は通常のアクセス権を持ち続けます(とにかくmyuserのホームフォルダーなので)。
どのコマンドを使用する必要がありますか?
注:www-data
が/home/myuser/
内の他のフォルダーにアクセスできないようにします。
前もって感謝します。
まず、グループ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
を取ることを保証しますグループ-ファイルをmyuser
として作成すると、www-data
ユーザーがアクセスできます。
Nb。これは、ユーザーアカウントとWebサーバーの両方のumask
設定にも依存します。folderAで作成されたファイルにrw
アクセスグループ(および必要なグループrwx
内に作成されたディレクトリがあることを確認する必要があります)
あなたのウェブサーバーがあなたの/home/myuser
ディレクトリへの入力権を持っていない場合(かなり賢明です)、あなたは何か他のことをしない限りそこに入ることはできません。 2つのソルン:
Sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(これはいハックであり、再起動後に繰り返す必要があります。しかし、強力なトリックを使用して、SSH刑務所内のフォルダにアクセスすることもできます。)
共有フォルダを別の場所に移動するだけです。 /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
別の方法は、Apache configでユーザー名を直接変更することです。これは、それがローカルマシンであり、フォルダーに対して行われた権限を破壊する他の場所から画像を保存する場合です。また、ユーザーが1人だけで、www-dataを気にしない場合にも実行します。
$ Sudo vi /etc/Apache2/Apache2.conf
ユーザーとグループを見つけて、あなたのものを置きますUser <Your User>
Group <Your Group>
$ Sudo service Apache2 restart