网络服务器写入文件的安全方式

网络服务器写入文件的安全方式

我在 github 上创建了一个 webhook,它调用我的 web 服务器来更新 web 根目录中的文件。我已使用 github 上的令牌保护了发送部分,因此只有来自 github 的请求才能执行该脚本。我的问题是,由于该脚本将作为 web 服务器 (www-data) 运行,因此授予其对 web 根目录的写入权限的最佳方法是什么。授予 web 服务器用户对 web 根目录的写入权限是个好主意吗?有哪些替代方案?

答案1

首先编写一个脚本,执行所需的确切部署步骤。然后授予www-data运行权限那个特定的脚本通过 sudo。例如,使用以下 sudoers 规则:

www-data ALL=(someuser) /path/to/deploy.sh

(将“someuser”替换为实际拥有该 web 应用程序文件的帐户。)

然后 webhook 处理程序将执行:

sudo -u someuser /path/to/deploy.sh

这样,你的网络服务器就可以执行更新完全按照脚本但仍然没有不必要的权限删除文件或在网站上安装恶意软件。

相关内容