/etc/environmentで宣言されたPATH環境変数は継承されませんか?

/etc/environmentで宣言されたPATH環境変数は継承されませんか?

に専念しますUbuntu 16.04.05

公式によるとDebianそしてUbuntu宣言された変数をすべてのユーザーに継承する必要があるという文書です。

それでは、次はどのように説明されますか?

root@pkara-pc01:~# cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
root@pkara-pc01:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

(つまり、パスは/etc/environmentで終わりませんroot PATH。)次の場所PATHで明示的なオーバーライドが発生しないことがわかりました。

ㅏ)/root/.profile

root@pkara-pc01:~# grep -i path /root/.profile
root@pkara-pc01:~# 

雨)/root/.bashrc

root@pkara-pc01:~# grep -i path /root/.bashrc
root@pkara-pc01:~# 

氏)/etc/profile

root@pkara-pc01:~# grep -i path /etc/profile
root@pkara-pc01:~# 

d)拡張する/etc/profile.d/だけです。PATH/snap/bin

root@pkara-pc01:~# grep -rniI -A 1 path /etc/profile.d/
/etc/profile.d/apps-bin-path.sh:3:# Expand $PATH to include the directory where snappy applications go.
/etc/profile.d/apps-bin-path.sh:4:if [ "${PATH#*/snap/bin}" = "${PATH}" ]; then
/etc/profile.d/apps-bin-path.sh:5:    export PATH=$PATH:/snap/bin
/etc/profile.d/apps-bin-path.sh-6-fi

修正する:

情報とこの問題@Kusalandraが指摘したように、

$ su -
Password: 
root@pkara-pc01:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
root@pkara-pc01:~# exit
logout
/home/pkara/Workspace/gitlab/sonar-scanner
$ sudo -i
root@pkara-pc01:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
root@pkara-pc01:~# 

しかし:

root@pkara-pc01:~# grep -i secure_path /etc/sudoers
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

secure_pathだから当てはまると思います。両方 suそしてsudoケース? (これはいいえ関連問題の説明)。

ベストアンサー1

デフォルトのパスは/etc/login.defs以下を含むから来ます(少なくともDebianではUbuntuでも同じだと思います)。

#
# *REQUIRED*  The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

これは一番下に言及されています。Debian Wiki ページあなたはのコンテキストでにリンクされていますsu

おすすめ記事