/etc/environment에 선언된 PATH 환경 변수가 상속되지 않습니까?

/etc/environment에 선언된 PATH 환경 변수가 상속되지 않습니까?

에 전념합니다 Ubuntu 16.04.05.

공식에 따르면데비안그리고우분투선언된 변수가 모든 사용자에게 상속되어야 한다는 문서입니다.

그러면 다음은 어떻게 설명됩니까?

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

이건 하단에 언급되어 있어요데비안 위키 페이지귀하는 의 컨텍스트에서 에 링크되어 있습니다 su.

관련 정보