Linux下基于root指定用户执行命令的方法
Docker在构建镜像阶段无法配置免密码sudo。但是在实际需求场景中会遇到需要使用sudo的场景。所以,我的解决思路是镜像构建及CMD使用root,在CMD的脚本中执行需要sudo的部分,然后使用普通用户启动服务进程。
当然,基于root使用普通用户启动进程可以选择su或者runuser。我使用的是su:
1 | !/bin/bash |
注意:-mp
是保留root设置的环境变量。如果不需要保留这些变量则可以使用-l
选项。使用man命令查看su完整的手册。