“--no-scripts”选项是否足以解决 运行 composer 作为 root 的安全问题?

Is the "--no-scripts" option enough to account for the security concerns about running composer as root?

我想制作 .sh 文件,用于将网页从 github 自动部署到生产环境。我需要 运行 composer install ,但是当我 运行 它时,它会给我一个警告:

"Do not run composer install as root super user!"

我发现这是出于安全原因。但是我还需要 运行 其他需要的命令,例如删除一些文件和目录。

我找到的解决方法是:

composer install --no-scripts --no-interaction

问题是:够了吗? --no-script 是不是解决方案? 运行ning composer 作为 root 的最佳实践是什么?

运行 作为有权删除您所说的“文件和文件夹”的用户。 如果这样的用户不存在,创建一个,分配 ownership/privileges 然后 运行 composer 在该用户下。
简单地 运行 将其设置为 root 只是为了删除少数已知文件夹是一个薄弱的论点。

最佳做法是完全不对作曲家命令使用 sudo。如果您需要 sudo 作曲家,这通常表示您的项目文件权限设置不正确。

例如您应该有一个拥有项目目录的非 root 用户,并且您应该 运行 作为 that 用户执行所需的命令,而不需要 sudo。如果您需要 运行 作为 root,这可能意味着您在之前的 运行 中这样做了,并且已经弄乱了您的文件权限。

(最佳实践也不是在任何情况下 运行ning install,但至少 you are not running update

在极少数情况下,您需要 运行 composer 作为超级用户,并且您的环境不是非常受限(例如,构建 Docker 图像),您要注意official guidance,不仅要用--no-scripts,还要用参数--no-plugins,所以你只是在做文件复制,不执行其他脚本。