데비안의 모든 사용자에 대해 PATH를 어떻게 설정합니까?


25

데비안 레니 서버 가 있고 PATH에 www-data사용자가 /usr/local/zend/bin있기를 원하므로 cron에서 스크립트를 다음과 같이 실행할 수 있습니다 www-data.

/usr/local/zend/binPATH에 어떻게 추가 합니까? www-data에서 파일을 실행할 수 /usr/local/zend/bin있습니까?

답변:


40

PATH가 설정된 첫 번째 장소는 /etc/login.defs입니다. 루트 설정과 다른 모든 사람을위한 설정이 있습니다.

환경 변수를 정의 할 수있는 다른 곳은 /etc/environment입니다. 이 설정은 모든 사람에게 적용됩니다 (임의의 쉘 코드를 작성할 수 없음).

환경 변수를 정의 할 수있는 세 번째 장소는 /etc/profile입니다. 임의의 쉘 코드를 작성할 수 있습니다. 사용자 별 설정을 원하는 경우 해당하는 사용자 별 파일이 ~www-data/.profile있습니다. 그러나 이것은 콘솔 대화식 로그인에만 적용됩니다. 특히 명시 적으로 source하지 않는 한 cron 작업에는 적용되지 않습니다 /etc/profile.

PATH사용자 crontab에서 해당 설정 만 필요한 경우 crontab 시작 부분에 해당 설정을 작성할 수 있습니다. 전체 목록 ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin) 이 필요 하며 변수 대체를 사용할 수 없습니다 ( PATH=$PATH:/usr/local/zend/bin여기서는 작동하지 않음).


---- 예를 들어 /etc/login.defs를 어떻게 다시로드합니까?
MrCalvin

@MrCalvin 로그인하여.
Gilles 'SO-stop

1
/etc/login.defs무시해야 할 이유 가 있습니까? ENV_PATH.bashrc 가로 드 될 때 $ PATH를 업데이트 하고 에코합니다. 가운데 어딘가에 변경되었거나 이전 값을 표시 할 때 업데이트되지 않습니다. 컴퓨터를 다시 시작 했으므로 그렇지 않습니다.
Annan

@Annan 기회는 그것이 어딘가에서 바뀌고 있다는 것입니다. 필자의 답변은 2010 년에 체계화되기 전에 작성된 것입니다. 시스템에서 systemd를 사용하는 경우 PATH다른 방법을 추가하거나 대신 하여 정의하는 고유 한 방법이있을 수 있습니다 .
Gilles 'SO- 악마 그만해'

8

루트를 제외한 모든 사용자의 경로를 설정하려면 /etc/profile또는을 편집하십시오 /etc/enviroment. 루트 또는 개인 사용자의 경우 각각 .bashrc또는 .bash_profile홈 디렉토리에서 각각 편집하십시오 . 을 추가하십시오 PATH=$PATH:/new/location/.


1

에 부담을주지 않으면 서 모든 사용자에 대해 var를 설정하려면 디렉토리에 다음과 같이 profile작은 스크립트를 추가 /etc/profile.d하면됩니다.

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

그런 다음 다시 로그인하십시오.


1

나노 / etc / profile

파일 끝에 다음 줄을 추가하십시오.

수출 JAVA_HOME = / opt / jdk-12.0.1

수출 MAVEN_HOME = / opt / apache-maven-3.6.1

수출 M2_HOME = / opt / apache-maven-3.6.1

수출 M2 = / opt / apache-maven-3.6.1 / bin

내보내기 PATH = $ JAVA_HOME / bin : $ M2 : $ PATH

파일을 저장하십시오. 아래 명령을 다시 시작하거나 사용하십시오.

소스 / etc / profile

설정을 테스트하십시오.

에코 $ JAVA_HOME

javac-버전

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.