在 Ubuntu 20.04 上的 Shell 脚本中使用 setuid

在 Ubuntu 20.04 上的 Shell 脚本中使用 setuid

因此,我在 Ubuntu 20.04 上的 Nginx 上有一个 Laravel PHP 应用程序。我有一个简单的 deploy.sh 脚本,它将:

  1. 将 Laravel 置于维护模式,因此如果有人访问该网站,它将返回 503 错误
  2. 使用只读部署密钥从 Github 拉取当前源代码
  3. 运行 Composer 安装
  4. 禁用维护模式

我的目标是当 Nginx 收到来自 github 的经过验证的 HTTP Webhook 请求并表明有新代码推送到存储库时,让它执行这个 shell 脚本。

现在为了服务器安全,Nginx 用户“www-data”仅具有对文件的读取权限,并且仅在需要时具有写入权限(即 /storage 写入日志和保存文件上传)。

因此,我需要以拥有所有文件“deploy”的用户身份运行 shell 脚本。当我研究这个问题时,我有点困惑。

我读过有关 setuid 的信息,但出于安全考虑,大多数 Linux 环境中的 shell 脚本都禁用了 setuid。有人能确认这是否适用于 Ubuntu 20.04 吗?如果是,还有其他方法可以实现我的需求吗?

相关内容