(데비안 컴퓨터에서) 루트로 변경하면 su
PATH가 올바르게 설정되지 않은 것 같습니다. 일부 중요한 디렉토리가 usr/local/sbin
누락되었습니다.
다음 줄이 있습니다 /etc/profile
(분명히 표준 기본 항목은 제가 작성한 것이 아닙니다).
if [ "`id -u`" -eq 0]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin/:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin"
fi
export PATH
나는 /etc/login.defs
(기본 항목도) 다음과 같습니다.
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
왜 내 PATH가 잘못 설정되어 있나요 su
?
답변1
Modern은 환경을 보호하라는 요청을 받을 때 su
더 이상 호출자로부터 재설정되지 않습니다 PATH
. 이 작업이 필요한 경우 su --login
대신 그렇게 하십시오.
에서 /usr/share/doc/util-linux/NEWS.Debian.gz
:
- new 'su' (with no args, i.e. when preserving the environment) also
preserves PATH and IFS, while old su would always reset PATH and IFS
even in 'preserve environment' mode.
...
The first difference is probably the most user visible one. Doing
plain 'su' is a really bad idea for many reasons, so using 'su -' is
strongly recommended to always get a newly set up environment similar
to a normal login. If you want to restore behaviour more similar to
the previous one you can add 'ALWAYS_SET_PATH yes' in /etc/login.defs.