我刚刚在Ubuntu上安装了apache2,并注意到/ var / www文件夹受到保护。我可以只对所有内容进行sudo,但我只希望对其进行写访问。 >

评论

这是可公开访问的服务器,还是没有直接连接到互联网的服务器?如果前者重要的是您要考虑安全决策-Internet上的服务器经常受到攻击(请查看您的/ var / log / messages或等效文件)。

这只是我的笔记本电脑,无法从互联网访问。

#1 楼

为了最好地与应该能够在/var/www中进行书写的多个用户共享,应该为其分配一个公共组。例如,Ubuntu和Debian上Web内容的默认组是www-data。确保所有需要对/var/www拥有写访问权限的用户都在该组中。 />
sudo usermod -a -G www-data <some_user>


此外,还应将目录及其下的所有目录设置为“设置GID”,以便在/var/www下创建的所有新文件和目录均由www-data组拥有。 br />
sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www


/var/www中查找所有文件,并添加所有者和组的读写权限:

sudo find /var/www -type d -exec chmod 2775 {} \;    


您可能需要登录如果您正在编辑自己帐户的权限,请退出并重新登录以进行更改。

评论


那是非常乏味的...我不能仅仅让用户访问它,就好像它是其他文件夹一样吗?

–卡森·迈尔斯(Carson Myers)
09年8月7日,0:21

这就是您授予访问权限的方式。与尝试在GUI文件管理器的对话框中导航以进行相同操作相比,复制和粘贴命令要更快。从长远来看,如果您至少阅读chmod和chgrp的手册页(“ man chmod”),它将对您有所帮助。

– jtimberman
09年8月7日在1:33

也许我第一次阅读时不理解这些命令,而您所做的编辑使其更加清晰。

–卡森·迈尔斯(Carson Myers)
09年8月7日在3:39

guid +1以强制使用Apache权限。与027的umask一起使用时效果很好。如果需要写访问权限,则就像chmod g + w dir /

– LiraNuna
09年8月7日在3:47

为什么您的组权限命令sudo chmod -R g + w而不是g + rw或g + rwX?

–甜蜜地
14年8月31日在1:24

#2 楼

读+写:

sudo chmod -R a+rw /var/www


读+写+执行:

sudo chmod -R a+rwx /var/www


#3 楼

有一种更简单的方法,请尝试执行以下命令。然后,它只是赋予正确的使用权限。

评论


您能否对命令对OP的作用有一些了解?

–n0pe
2011年9月23日下午5:35

-1由于缺乏解释。此外,chmod $ permissions -R $ file无效...

–黑光闪耀
13年1月26日在16:48

它是选项,然后是权限,而不是其他方式

– Moataz Elmasry
2014年1月17日下午13:52

须藤chmod -R 757 / var / www

–Bwyss
16年7月28日在21:39

注意:这确实会授予系统上每个人的访问权限,这可能很危险。 (我知道这是要问的,但大多数时候并不是您真正想要的。)

–玛丽安
18年5月7日在21:29

#4 楼

您也可以使用访问控制列表复制jtimberman建议的内容。 setfacl命令接受-s替换现有的ACL或-m对其进行修改; -R使目录ACL递归;和-d将指定的设置设为默认设置,这在预期即将到来的用户帐户时非常有用。 chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY


这可能是您要为指定用户或他/她的组执行的操作:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY


当然,优点是您可以指定任何特定用户,多个用户等,而无需修改组设置。与chmod不同,如果希望某些组可以访问一个目录,而其他组只能访问另一个目录,则可以使用setfacl来实现。最后,要查看目录的ACL,请运行getfacl:

getfacl DIRECTORY


,您可以指定-R来查看子目录的ACL或-d来查看默认值。 />

#5 楼

我通常使用

chmod g+w /folder/ -R


这几乎是不言而喻的。 ),g用于子文件夹的递归。

#6 楼

快速简便的答案-

a。将(-a)您的用户(user_name)添加到组(-G)www-data。

sudo usermod -a -G www-data user_name


b。递归地授予组(g)与/ var / www的所有者(u)相同的(=)权限。 Debian / Ubuntu上的2将User&Group www-data设置为/ var / www的所有者。用户的默认权限是“查看和修改内容”,但是组只能“查看内容”。因此,将您自己添加到www-data组并赋予其与wwww-data用户相同的权限,是一种快速轻松的开发方法。我在所有本地(PC /笔记本电脑)Web开发环境中都执行此操作。

#7 楼

您可以尝试chmod 0777 /var/www吗?这就是为什么最好创建一组允许的用户,并给予该组写访问权限。

评论


那么为什么要提供此解决方案,然后立即抹黑呢? -1票

– Tisch
16年8月16日在12:44



#8 楼

首先输入特定的文件夹路径,然后使用此命令…

chmod -R 777 foldername
chown username:username foldername 


评论


哇,真不好!您不会给777加上-R,尤其是在询问该问题的人是新手并且不了解风险的情况下。

–刷新
2012年3月22日在7:34

足够真实@recluze。

–vgoff
2012年11月12日0:44