Security 如何设置将所有环境变量从根用户复制到另一个特定用户
在我的docker容器中,我以特定用户的身份运行一个命令,如从Security 如何设置将所有环境变量从根用户复制到另一个特定用户,security,docker,environment-variables,Security,Docker,Environment Variables,在我的docker容器中,我以特定用户的身份运行一个命令,如从entrypoint.sh: sudo-u appuser“$@” 这很好,但是,它不会设置在运行容器时使用--link选项创建的任何环境变量 问题 是否可以将根用户的所有环境变量设置为其他特定用户(在本例中为appuser) 注:与本次讨论相关的问题。这就是为什么我不能只使用用户命令sudo命令的原因,因为它被设计为权限提升的工具,在切换到新的用户id之前故意清理环境。如果您查看sudo手册页,您会发现: 因此,不要使用sudo-u
entrypoint.sh
:
sudo-u appuser“$@”
这很好,但是,它不会设置在运行容器时使用--link
选项创建的任何环境变量
问题
是否可以将根用户的所有环境变量设置为其他特定用户(在本例中为appuser
)
注:与本次讨论相关的问题。这就是为什么我不能只使用
用户
命令sudo命令的原因,因为它被设计为权限提升的工具,在切换到新的用户id之前故意清理环境。如果您查看sudo
手册页,您会发现:
因此,不要使用sudo-u appuser somecommand
,只需使用sudo-E-u appuser somecommand
在Ubuntu的最新版本中,runuser
命令由util linux
包提供,默认情况下不执行任何环境初始化。例如:
$ docker pull ubuntu
$ docker run -it --rm ubuntu /bin/bash
root@ded49ffde72e:/# runuser --help
Usage:
runuser [options] -u <user> <command>
runuser [options] [-] [<user> [<argument>...]]
[...]
$docker pull ubuntu
$docker run-it--rm ubuntu/bin/bash
root@ded49ffde72e:/#运行用户--帮助
用法:
运行用户[选项]-u
运行用户[选项][-][[…]]
[...]
这是Ubuntu Xenial(但是runuser
命令似乎在Ubuntu:vivid
上可用,但在Ubuntu:trusty
下不可用)
因此,您的选择是:
- 使用
,或sudo-E
- 使用较新的Ubuntu映像
$ docker pull ubuntu
$ docker run -it --rm ubuntu /bin/bash
root@ded49ffde72e:/# runuser --help
Usage:
runuser [options] -u <user> <command>
runuser [options] [-] [<user> [<argument>...]]
[...]