web-dev-qa-db-ja.com

ユーザーが書き込みアクセス権を持つフォルダーに書き込むことができません

言う前に、グループとユーザーの許可がどのように機能するかを知っています。

私の設定は:

a。私のユーザーはmonkeyであり、グループwww-data

groups monkey

monkey : monkey adm cdrom Sudo dip www-data plugdev lpadmin sambashare

b。 Apacheのルートフォルダーは/home/monkey/var/wwwおよび権限を持っています0775所有者とwww-dataおよびグループwww-data

ls -la /home/monkey/var/www

total 8 drwxrwxr-x 2 www-data www-data 4096 Aug 12 10:37 . drwxr-xr-x 3 root root 4096 Aug 12 10:37 ..

c。しかし、私は/home/monkey/var/www/

monkey@ubuntu:~$ cp robots.txt var/www/robots.txt

cp: cannot create regular file âvar/www/robots.txtâ: Permission denied

robots.txtファイルはmonkeyユーザーの下に作成されました。

私は何が欠けていますか?

1
machineaddict

ユーザーにはプライマリグループがあり、複数の追加グループを持つことができます。ユーザープライマリグループは/ etc/passwdに設定されます。つまり:

www-data:x:30:40:www-data:/var/www:/usr/sbin/nologin

ユーザー「www-data」はグループID 40のメンバーです。

/ etc/groupの追加グループにユーザーを追加できますが、ファイルを作成すると、デフォルトではシステムはユーザーprimary groupを追加グループではなく所有者として設定します。一部のUnixはディレクトリグループをチェックし、ユーザーがこのグループのメンバーである場合、新しいファイルにはユーザーではなくディレクトリからグループ所有者が取得されます。

したがって、createファイルの場合、デフォルトではユーザー「monkey」、グループ「monkey」として実行します。そして、フォルダは次のものによって所有されているため:

  • ユーザー 'monkey'ではなく 'www-data'-ユーザー権限は使用されません
  • 「monkey」ではなく「www-data」グループ-グループ権限も使用されません
  • 「その他」の権限が使用され、t

Newgrコマンドを使用すると、プライマリグループを追加グループの1つに切り替えることができるため、新しいファイルを作成するためのグループオーナーを効果的に設定できます。

Umaskコマンドを使用すると、新しいファイルの作成に使用されるアクセス許可を調整できます。

今では助けになりますか?

1
rsm