모든 사람에게 영향을 주는 방식으로 부팅 시 PATH를 어떻게 수정합니까?

모든 사람에게 영향을 주는 방식으로 부팅 시 PATH를 어떻게 수정합니까?

에 JDK를 설치 하고 Java를 원활하게 실행할 수 있도록 PATH 변수를 수정하는 데 사용했던 곳에 /opt쉘 스크립트를 배치했습니다 . 문제는 이것이 내 로컬 계정에서만 작동하고 . 명령을 시도하면 이라고 표시됩니다 . and 끝에 명령을 넣으려고 했지만 어느 옵션도 이 동작을 바꾸지 못하는 것 같습니다. 을 (를) 실행할 수 있기를 원합니다 . 그러면 부팅 시 PATH를 볼 수 있는 방식으로 어디에서 수정할 수 있습니까 ?/etc/profile.d/exportsudosudosudo: java: command not foundexport.bashrcrc.localsudo javasudo

편집: 기록을 위해 다음은 제가 시도한 모든 장소에 추가한 줄입니다.

export JAVA_HOME="/opt/jdk-16.0.2"
export PATH="$PATH:${JAVA_HOME}/bin"

답변1

귀하의 문제는 모든 사람이 아니거나 누구든지=루트가 아닙니다.당신의 문제는 단지sudosudo자체 PATH를 사용하기 때문입니다 . (호출) 셸이나 다른 셸 또는 셸 구성에 설정된 것을 사용하지 않습니다( sudo -i일반적인 '로그인' 구성을 사용하여 대상 사용자, 기본 루트의 셸을 실행하는 것을 사용하지 않는 한). 사용자가 제어할 수 있는 PATH를 사용하면 sudo의 존재 이유 전체를 위반하여 보안이 깨질 수 있습니다. 보다

sudo 명령 경로를 설정하는 방법
`sudo env "PATH=$PATH"`가 왜 아무 작업도 수행하지 않습니까?
sudo를 통해 PATH 전달
sudo 사용자의 PATH 변수 관련 문제

가장 직접적인 해결책은 실행하려는 프로그램의 전체 경로 이름을 사용하는 것입니다. 직접 입력하는 것보다 할 수 있어요

sudo $(which java) # or maybe $(type -p java) in bash 

Java를 검색하는 곳당신의그런 다음 쉘의 PATH는 다음과 같이 sudo를 호출합니다.결과.

관련 정보