为什么这个 .pam_environment 设置阻止我登录?

为什么这个 .pam_environment 设置阻止我登录?

我正试图将东西从我的.bashrc移到.pam_enviroment。我已将以下内容放入我的.pam_environment,但这会阻止我登录,因为可能存在一些错误。然后我.pam_environment在恢复模式下将其删除。

VISUAL       DEFAULT=/usr/local/bin/vim
EDITOR       DEFAULT=/usr/local/bin/vim
PATH         DEFAULT=/usr/local/src/rbenv/bin:$PATH
WORKON_HOME  DEFAULT=$HOME/.virtualenv
GOROOT       DEFAULT=/usr/local/src/go
PATH         DEFAULT=$PATH:$GOROOT/bin
GOPATH       DEFAULT=$HOME/.go
PATH         DEFAULT=$PATH:$GOPATH/bin
PATH         DEFAULT=$PATH:/usr/local/src/llvm/tools/clang/tools/scan-build
PATH         DEFAULT=$PATH:/usr/local/src/llvm/tools/clang/tools/scan-view
PATH         DEFAULT=$PATH:/usr/local/src/.build/kint/bin
M2_HOME      DEFAULT=/opt/apache-maven/apache-maven-3.0.5
M2           DEFAULT=$M2_HOME/bin
PATH         DEFAULT=$M2:$PATH
JAVA_HOME    DEFAULT=/usr/lib/jvm/default-java
PATH         DEFAULT=$JAVA_HOME/bin:$PATH
ECLIPSE_HOME DEFAULT=/opt/eclipse
PATH         DEFAULT=$ECLIPSE_HOME:$PATH

这些设置有什么问题?正如我在上一个问题中所说,我仍在尝试找出一种对所有应用程序进行全局设置的好方法,因为以前这种方法就.profile/.bashrc足够了……

答案1

我从网上了解到遇到同样麻烦的人..pam_environment引用变量的语法必须包括花括号,修复这个问题已经解决了:

VISUAL       DEFAULT=/usr/local/bin/vim
EDITOR       DEFAULT=/usr/local/bin/vim
PATH         DEFAULT=/usr/local/src/rbenv/bin:${PATH}
WORKON_HOME  DEFAULT=${HOME}/.virtualenv
GOROOT       DEFAULT=/usr/local/src/go
PATH         DEFAULT=${PATH}:${GOROOT}/bin
GOPATH       DEFAULT=${HOME}/.go
PATH         DEFAULT=${PATH}:${GOPATH}/bin
PATH         DEFAULT=${PATH}:/usr/local/src/llvm/tools/clang/tools/scan-build
PATH         DEFAULT=${PATH}:/usr/local/src/llvm/tools/clang/tools/scan-view
PATH         DEFAULT=${PATH}:/usr/local/src/.build/kint/bin
M2_HOME      DEFAULT=/opt/apache-maven/apache-maven-3.0.5
M2           DEFAULT=${M2_HOME}/bin
PATH         DEFAULT=${M2}:${PATH}
JAVA_HOME    DEFAULT=/usr/lib/jvm/default-java
PATH         DEFAULT=${JAVA_HOME}/bin:${PATH}
ECLIPSE_HOME DEFAULT=/opt/eclipse
PATH         DEFAULT=${ECLIPSE_HOME}:${PATH}

我并不认为这是最好的方法,但我现在正在做的是设置变量.pam_environment以使它们对任何应用程序(而不仅仅是从 bash 启动的应用程序)生效,并将需要超出简单分配的额外逻辑的设置放入.profile/ 中.bashrc

相关内容