Linux 这些许可安全吗?

Linux 这些许可安全吗?,linux,apache,security,ubuntu,permissions,Linux,Apache,Security,Ubuntu,Permissions,我有一个LAMP服务器,在那里我运行了以下命令来设置/var/www中文件的权限: groupadd web usermod -a -G web my_user chown -R root:web /var/www chmod -R 775 /var/www chmod -R g+s /var/www 我的目标是让“web”组的任何成员都可以写入所有文件。是否有一种安全的方式允许在不改变文件所有权的情况下上传文件(例如在Wordpress中)?注意:这是一个专用服务器。将权限仅应用于目录的一种

我有一个LAMP服务器,在那里我运行了以下命令来设置/var/www中文件的权限:

groupadd web
usermod -a -G web my_user
chown -R root:web /var/www
chmod -R 775 /var/www
chmod -R g+s /var/www

我的目标是让“web”组的任何成员都可以写入所有文件。是否有一种安全的方式允许在不改变文件所有权的情况下上传文件(例如在Wordpress中)?注意:这是一个专用服务器。

将权限仅应用于目录的一种方法是使用
find
命令。例如:

# Set the owner and group on everything.
chown -R root:web /var/www

# Make *directories* read/write/execute and set the `sgid` bit.
find /var/www -type d -print | xargs chmod g+rwxs

您不想运行
chmod-R 775/var/www
,因为这将使您的所有文件都可执行,而这可能不是您想要的。

我认为您需要将那些您希望登录到系统的用户能够编辑的内容与那些必须由web用户编写才能正常运行的内容清晰地分开(例如,一个上传目录)。如果您的Apache服务器运行的凭据允许它对您的整个web层次结构进行写访问,则有人会在您的服务器上发布伟哥广告。是的--不希望这样。“web”组(上图)应该只是让root用户和网站管理员能够通过SFTP读/写文件。我的理解是,由于上面的chmod 775命令,www数据(默认Apache用户)只能获得读取权限。我是否像我认为的那样安全?是否最好不让web用户写任何目录(chmod 777),包括上载目录?请注意使用
chmod-R g+s/var/www
命令。对于目录,
s
位会更改目录中的默认文件组,但对于可执行的常规文件,它的含义不同。使用此命令,您将意外创建setgid可执行文件。您需要仅将此命令应用于目录,而不是递归地应用于所有目录。如何修复此问题?运行chmod-R g-s/var/www,返回并将其应用于目录,而不使用递归标志?@larsks-“如果您的Apache服务器运行的凭据允许它对整个web层次结构进行写访问,那么有人会在您的服务器上发布伟哥广告。"你能解释一下这句话吗?怎么会这样?谢谢!我应该怎么把775权限改成?774?一般来说,你不希望文件是可执行的,除非你真的想让人们运行它们。给定一个像
775
这样的文件模式,每个数字对应一组以八进制表示的三个权限位。所以
7
的意思是
rwx
(所有位都已设置)。根据您的目标,静态文件应该是所有者和组可写的,并且每个人都可以阅读。这就是模式
664
,或者
rw-rw-r
。CGI脚本等等都需要是可执行的。