dev
我在基于 Alpine 的图像上添加了一个新用户。切换到新用户后,我发现环境变量在root
和dev
用户的情况下都不同。特别是$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 "$@"; }
$PATH
root 用户的情况下的变量
# 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
?