混淆 User:Group 对于 /var/www 和 Crontab 用户来说什么是最好的?

混淆 User:Group 对于 /var/www 和 Crontab 用户来说什么是最好的?

我是 Linux 服务器的新手。

我有两个问题对此感到困惑。

1 1. user:group 现在我像这样 chown 我的 /var/www/html 。

我的nginx.conf已设置server{ user www-data }

在终端我设置

chown -R root:www-data /var/www/html find /var/www/html -type d -exec chmod 775 {} + find /var/www/html -type f -exec chmod 664 {} + find /var/www/html/uploads/images -type d -exec chmod 775 {} +

我做的事正确吗?或者需要设置为 www-data:www-data ?

2 2.关于crontab,有很多TUT,但不清楚运行crontab的用户。问题是

如果我使用adam用户登录并且我的服务器属于该用户root:www-data,或者www-data:www-data我如何将 crontab 提供给该用户而不是adam用户?因为它需要perm才能写入备份等文件。

答案1

1) 一般来说, 中的文件/var/www应属于root:www-datachmod 644,而/var/www其本身和所有子目录应属于chmod 755

他们应该不是用户可写,www-data除非绝对有必要(对于可执行文件来说,这是三倍),因为可写的文件www-data可以被设法破坏 Web 服务器本身或 Web 服务器运行的脚本的攻击者修改(除非您使用suexec,在这种情况下,他们会拥有脚本所有者的权限而不是 Web 服务器的权限,这通常不会好得多,而且可能更糟)。如果 无法写入任何内容www-data,则获得访问权限的攻击者所造成的损害www-data将大大减少。

2)cron作业由调用该作业的用户运行crontab。如果它在 root 的 crontab 中,则它以 root 身份运行。如果它在 adam 的 crontab 中,则它以 adam 的身份运行,等等。

例外情况是/etc/etc/crontab/etc/cron.d/*等)下的系统范围 crontab。这些 crontab 的作业规范格式包括一个附加字段,指定运行作业的用户。

答案2

(1)chmodchown是不同的命令。第一个设置权限,第二个设置所有权。您可能还希望运行

`find /var/www/html -exec chown www-data:www-data {} +`

除了您已经运行的命令之外,但这是您可以做出的选择。

(2)您可以编辑/etc/cron.allow和添加www-data以允许www-data用户运行cron作业。如果您需要的话,Aman cron或应该为您提供更多有关此信息的信息。man crontab

相关内容