我尝试运行最新版本的debian和alpine,但似乎以root用户身份运行。
我期望echo $USER
如果返回空,则不应该返回root;那么我需要使用命令whoami
来验证是否还返回了root,我们已经以root模式登录到docker容器,这可能导致漏洞。
答案 0 :(得分:1)
根据此StackOverflow answer,您需要传递参数--user <user>
才能以非root用户身份登录。
示例:docker run -it --user nobody alpine
答案 1 :(得分:1)
处理此问题的常用方法是在您的Dockerfile
中覆盖它(您可以进行docker run --user
,但是这可能会使程序感到困惑,因为例如将没有主目录设置)
FROM ubuntu
RUN useradd --create-home appuser
WORKDIR /home/appuser
USER appuser
更多详细信息以及可用来保护容器的其他一些操作:https://pythonspeed.com/articles/root-capabilities-docker-security/