获取perl脚本中的当前真实用户,该脚本在docker容器中作为root用户执行

获取perl脚本中的当前真实用户,该脚本在docker容器中作为root用户执行,docker,exec,userid,perlscript,Docker,Exec,Userid,Perlscript,我想在docker容器中以root(主机上的SUDO)身份执行一个perl脚本,并在perl脚本中获取真实的用户id 例如,下面的执行应该使myscript.pl能够获取真实的用户ID(在本例中是mat),而不必将其作为附加参数显式传递给myscript.pl。。(从主机调用时,容器内的脚本应找到调用脚本的真实用户) 在容器启动期间设置为docker环境变量是不可能的,因为 脚本将由任何用户执行,我需要获取该用户的真实Id docker容器是使用Init服务启动的…因此这意味着从技术上来说,也不

我想在docker容器中以root(主机上的SUDO)身份执行一个perl脚本,并在perl脚本中获取真实的用户id

例如,下面的执行应该使myscript.pl能够获取真实的用户ID(在本例中是mat),而不必将其作为附加参数显式传递给myscript.pl。。(从主机调用时,容器内的脚本应找到调用脚本的真实用户)

在容器启动期间设置为docker环境变量是不可能的,因为

  • 脚本将由任何用户执行,我需要获取该用户的真实Id
  • docker容器是使用Init服务启动的…因此这意味着从技术上来说,也不可能设置任何用户详细信息
  • 还有

    我不想让脚本的用户传递他们的用户Id(这可能看起来是多余的,如果提供了这样的选项,他们也可以传递任何Id),从而给他们带来麻烦


    请告诉我是否有人遇到过这样的问题并解决了它?

    您找不到答案

    Docker容器与调用用户非常隔离。在调用
    docker exec
    的情况下,情况更是如此:在某个时间点,某个主机用户调用根docker守护程序来启动容器,然后在稍后的某个时间点,另一个主机用户调用根docker守护程序以作为容器内的某个其他用户运行进程

    如果您需要用户在自己的文件上以自己的ID运行脚本,那么安装所需的依赖项将非常容易,这样他们就可以以自己的身份运行脚本,而无需
    sudo
    docker

    $ myscript.pl
    
    $ myscript.pl