Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法将文件保存到/var/www/html——即使我在www数据组中_Linux_Apache_Permissions_Sudo_Chgrp - Fatal编程技术网

Linux 无法将文件保存到/var/www/html——即使我在www数据组中

Linux 无法将文件保存到/var/www/html——即使我在www数据组中,linux,apache,permissions,sudo,chgrp,Linux,Apache,Permissions,Sudo,Chgrp,我想保留root作为/var/www的所有者 我想让集团www数据访问/var/www和/var/www/*rwx 我相信apache的用户是www数据。我将自己的user:devon添加到该组中,但仍然无法将文件保存到/var/www/html。救命啊 下面是我在下面试图做的非常清楚的事情。我错过了什么 devon@cheap-dell /var $ ls -l ... drwxrwsr-x 3 root www-data 4096 Apr 22 01:06 www devon@cheap-

我想保留root作为/var/www的所有者

我想让集团www数据访问/var/www和/var/www/*rwx

我相信apache的用户是www数据。我将自己的user:devon添加到该组中,但仍然无法将文件保存到/var/www/html。救命啊

下面是我在下面试图做的非常清楚的事情。我错过了什么

devon@cheap-dell /var $ ls -l
...
drwxrwsr-x  3 root www-data 4096 Apr 22 01:06 www
devon@cheap-dell /var $ cd www
devon@cheap-dell /var/www $ ls -l
total 2
drwxrwxr-x 4 root www-data 4096 Apr 22 17:25 html
devon@cheap-dell /var/www $ id devon
uid=1000(devon) gid=1000(devon) groups=1000(devon),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)
devon@cheap-dell /var/www $ groups devon
devon : devon adm cdrom sudo dip plugdev lpadmin sambashare
devon@cheap-dell /var/www $ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
devon@cheap-dell /var/www $ groups www-data
www-data : www-data
devon@cheap-dell /var/www $ sudo usermod -a -G www-data devon
devon@cheap-dell /var/www $ # just to be sure......
devon@cheap-dell /var/www $ sudo chgrp -R www-data /var/www
devon@cheap-dell /var/www $ sudo chgrp -R www-data /var/www/*
devon@cheap-dell /var/www $ sudo chmod -R g+rw /var/www
devon@cheap-dell /var/www $ sudo useradd -g www-data devon
useradd: user 'devon' already exists
devon@cheap-dell /var/www $ # good!
devon@cheap-dell /var/www $ ls -l
total 2
drwxrwxr-x 4 root www-data 4096 Apr 22 17:25 html
devon@cheap-dell /var/www $ cd html
devon@cheap-dell /var/www/html $ touch example
touch: cannot touch ‘example’: Permission denied
devon@cheap-dell /var/www/html $ # wtf?! I'm logged in as user devon
devon@cheap-dell /var/www/html $ echo ${APACHE_RUN_USER}

devon@cheap-dell /var/www/html $ # ?? where is it?
devon@cheap-dell /var/www/html $ users ${APACHE_RUN_USER}
devon devon devon devon
devon@cheap-dell /var/www/html $ # I would have expected user www-data, right?  
devon@cheap-dell /var/www/html $ groups ${APACHE_RUN_USER}
devon adm cdrom sudo dip plugdev lpadmin sambashare
devon@cheap-dell /var/www/html $ groups devon
devon : devon adm cdrom sudo dip www-data plugdev lpadmin sambashare
devon@cheap-dell /var/www/html $ sudo usermod -a -G www-data www-data
devon@cheap-dell /var/www/html $ touch example
touch: cannot touch ‘example’: Permission denied
devon@cheap-dell /var/www/html $ # why?!

答案是:注销,然后重新登录以使组更改生效。这是巴尔马的回答

更改组后,您需要注销并再次登录,以使更改生效。groups devon将在下次登录时显示您将拥有的组。“组”显示您当前拥有的组。或者,不要注销并重新登录,而是执行一个新的GRP www DATALL,确保您还具有对目录的x权限。w还不够,太棒了。注销/登录。工作!谢谢-现在我不知道该如何接受这个答案。