言う前に、グループとユーザーの許可がどのように機能するかを知っています。
私の設定は:
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
ユーザーの下に作成されました。
私は何が欠けていますか?
ユーザーにはプライマリグループがあり、複数の追加グループを持つことができます。ユーザープライマリグループは/ 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」として実行します。そして、フォルダは次のものによって所有されているため:
Newgrコマンドを使用すると、プライマリグループを追加グループの1つに切り替えることができるため、新しいファイルを作成するためのグループオーナーを効果的に設定できます。
Umaskコマンドを使用すると、新しいファイルの作成に使用されるアクセス許可を調整できます。
今では助けになりますか?