细节

细节

也许我应该换个说法——满足我的需求最安全的方法是什么?

细节

我正在使用 WinSCP 修改我的 Apache document_root。目录 /var/www/html 的所有者和组为 root。使用 WinSCP,我必须以 root 身份登录才能修改这些文件,因为 sudo -s 需要密码。我不想用 root 远程登录,所以我想做的是为 /var/www/html 添加一个不需要密码的 sudoer。那可能吗?

答案1

Sudo 不是适合这项工作的工具。它控制您可以运行哪些命令,而不是您可以访问哪些文件。

适合这项工作的工具是文件权限,其中访问控制列表如果 Unix 传统用户/组/其他权限不够。

创建一个组,我们将其命名为webroot,并使其拥有该目录/var/www/html和其中的文件。

sudo addgroup webroot
chgrp -R /var/www/html
chmod -R g+ws /var/www/html

目录上的位s导致文件从目录继承组所有权。您还需要确保那里的文件是组可写的。

如果您希望能够/var/www/html使用用于上传文件的帐户进行访问,请将该帐户添加到webroot组中:

sudo adduser iusemagentonow webroot

如果您在维护新创建文件的组所有权和组写入权限时遇到困难,请使用 ACL 而不是chgrp.

sudo setfacl -d -R group:webroot:rwX /var/www/html
sudo setfacl -R group:webroot:rwX /var/www/html

请注意,/var/www/html运行 Apache 或您正在使用的任何 Web 服务器的用户和组不得写入其中的文件。除了应该由 Web 应用程序更新的数据文件之外,不得允许运行 Web 服务器的用户写入任何文件。特别是,不要允许 Web 服务器写入任何可执行文件,因为这往往会使攻击变得容易。

相关内容