为什么我新创建的用户没有继承 $PATH 变量

为什么我新创建的用户没有继承 $PATH 变量

dev我在基于 Alpine 的图像上添加了一个新用户。切换到新用户后,我发现环境变量在rootdev用户的情况下都不同。特别是$PATH变量是不同的。但我认为它不应该有所不同出口全球范围内/etc/profile

$ cat /etc/profile

export CHARSET=UTF-8
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PAGER=less
export PS1='\h:\w\$ '
umask 022

for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done
composer(){ su-exec deploy composer.phar "$@"; }

$PATHroot 用户的情况下的变量

# env | grep $PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

$PATH变量的情况dev

# adduser -D -u 2500 -s /bin/sh dev
# su dev
$ env | grep $PATH
PATH=/bin:/usr/bin

我知道我可以添加.sh内部profile.d目录并再次导出$PATH变量,但为什么它没有按照这个问题继承(如果进程继承了父进程的环境,为什么我们需要导出?)?除了为dev用户创建新的配置文件之外,还有其他方法可以继承环境变量吗?这些环境变量是在哪里为用户设置的dev

相关内容