linux env环境设置,linux – $BASH_ENV通常设置在哪里?

这篇博客探讨了BASH_ENV变量如何在环境或初始化脚本中被设置,特别是对于非交互式登录shell的情况。内容涉及了它如何读取~/.bash_profile, ~/.bash_login和~/.profile等文件,以及可能影响环境设置的PAM和sshd配置。重点在于识别和追踪设置BASH_ENV的源头,包括可能隐藏在源文件或启动脚本中的设置方式。
摘要由CSDN通过智能技术生成

BASH_ENV仅通过环境或初始化期间获取的其他脚本进行设置.对于非交互式shell,如果该shell也是登录shell,它将仅尝试获取其他文件. (在这种情况下,它会读取〜/ .bash_profile,〜/ .bash_login和〜/ .profile ……但如果它这样做,你就不会遇到问题)

首先要看的是调用子shell的环境.

>将传递导出的BASH_ENV变量.请记住,这可能会隐藏在源文件中.

>它可以作为参数在调用脚本的同一行中输入,即BASH_ENV = blah /path/to/somecommand.sh.这就像一个疼痛的拇指,所以你可能会抓住它.

如果在您登录后设置但是无法确定在哪里,则可能需要查看构建登录环境的内容.

>所有通过登录shell获取的常用文件.男人bash为详尽的清单.

> PAM:正如评论中建议的那样,请检查/etc/security/pam_env.conf以及pam_env.so引用的所有其他文件.其他PAM模块也可以负责,但如果您的PAM配置看起来相同,则可能不是这种情况.

> sshd:它将按顺序扫描以下文件:

>〜/ .ssh / environment(在更改为主目录之前;仅当在sshd_config中启用了PermitUserEnvironment时)

>〜/ .ssh / rc(更改为主目录后;始终)

> / etc / ssh / sshrc(如果〜/ .ssh / rc不存在)

注意:sshd还将在用户的授权密钥文件中扫描环境=值行(如果启用了PermitUserEnvironment),但是在该页面中,该步骤不符合上述顺序.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值