전역 쉘 변수?

전역 쉘 변수?

UNIX 시스템에 대한 액세스 권한이 있는 시스템 관리자로서 root기본 쉘 변수를 제공할 수 있습니까?모두시스템 사용자?

즉, 단독 Unix 사용자로서 bash 쉘을 편집하여 환경 변수를 정의할 수 있습니다..bash_profile

export FOO="BAR"

각 사용자에 대한 개별 셸 변수를 편집하지 않고도 모든 사용자에게 기본 환경 변수 세트를 제공할 수 있는 방법이 있습니까? 특정 사용자에게 기본 변수를 제공하는 방법이 있습니까?

여기에 오랜 사용자가 있지만 *nixUNIX 시스템 관리 방식을 많이 해본 적이 없으므로 이것이 덤프/순진한 질문이라면 죄송합니다.

답변1

귀하의 질문을 올바르게 이해했다면 시스템의 모든 사용자가 액세스할 수 있는 시스템 전체 환경 변수가 필요합니다. 그렇다면 에서 설정할 수 있습니다 /etc/profile. ~에서여기,

/etc/profile파일은 크게 다르지 않지만 사용자 셸에서 시스템 전체 환경 변수를 설정하는 데 사용됩니다. 이러한 변수는 의 변수와 동일한 경우가 있지만 .bash_profile이 파일은 초기 값을 설정 PATH하거나 PS1시스템의 모든 쉘 사용자에 대해 사용됩니다.

답변2

전역 변수를 설정하는 방법은 사용자의 쉘에 따라 여러 가지 방법이 있을 수 있으며 시스템이 login.conf기능적 데이터베이스 또는 유사한 기능을 지원하는지 여부에 따라 이러한 방법은 사용자의 쉘에 관계없이 적용되어야 합니다.

가장 쉬운 방법은 아래의 관련 시스템 파일에 원하는 정의를 추가하는 것입니다 /etc. 시스템에서 사용되는 셸에 따라 여러 파일을 설정하고 관리할 수도 있습니다. 예를 들어, shand는 다른 것을 bash찾을 것으로 예상하고 /etc/profile, zsh찾고 /etc/zprofile, csh또는 tcsh찾을 것입니다.

시스템이 기능 데이터베이스를 지원하는 경우 파일 하나만 수정하면 되며 모든 설정이 올바르게 적용되어야 합니다. 예를 들어 FreeBSD에서는 setenv이를 필요로 하는 모든 사용자 클래스의 기능 에 envar 정의를 추가할 수 있습니다 .

default:\
        :setenv=BLOCKSIZE=K,FOO=BAR:\
        :tc=default:

데이터베이스를 다시 구축하고 $FOO다음에 로그인할 때 설정하세요.

없는 경우 login.conf시스템에서 전역적으로 사용자 환경을 구성하는 다른 방법이 있을 수 있습니다.

특정 사용자에 대한 변수를 설정하려면 특정 셸에서 지원하는 문이나 유사한 구문 $USER에서 변수 값을 테스트 하는 첫 번째 접근 방식을 사용해야 한다고 생각합니다 . case예를 들어 다음 sh과 같이 작동하고 호환되어야 합니다.

case $USER in
    root) FOO=ROOTBAR;;
    *) FOO=USERBAR;;
esac
export FOO

관련 정보