【发布时间】:2021-11-28 06:18:45
【问题描述】:
我的 php 脚本在 docker 中运行,我需要使用 www-data 用户运行它,所以在我的 dockerfile 的 ENTRYPOINT 中我可以
su www-data -s /bin/sh -c "/usr/local/bin/php xxx"
或者
sudo -u www-data "/usr/local/bin/php xxx"
我知道sudo和su之间的一般区别,但是切换到非root用户有什么区别?
到目前为止,对我来说唯一的区别是没有为基于 alpine 的 docker 安装 sudo,所以我需要先安装它。
【问题讨论】:
-
这两件事都不做。切换到
USER www-data,然后设置CMD php xxx。在 Docker 中通常不需要sudo,正确设置它可能会很棘手。 -
但在我的 ENTRYPOINT 中还有其他命令需要以 root 身份运行。