我是 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-data
和chmod 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)chmod
和chown
是不同的命令。第一个设置权限,第二个设置所有权。您可能还希望运行
`find /var/www/html -exec chown www-data:www-data {} +`
除了您已经运行的命令之外,但这是您可以做出的选择。
(2)您可以编辑/etc/cron.allow
和添加www-data
以允许www-data
用户运行cron作业。如果您需要的话,Aman cron
或应该为您提供更多有关此信息的信息。man crontab