다른 사용자가 루트에 정의된 환경 변수에 액세스하는 방법은 무엇입니까? [복사]

다른 사용자가 루트에 정의된 환경 변수에 액세스하는 방법은 무엇입니까? [복사]

testuser 에 env 변수를 정의 했습니다 root. root다음 명령을 사용하여 내부 사용자에 액세스 할 수 있습니다 .

echo $test

이제 다른 사용자로 전환합니다 myuser. 이제 변수에 su - myuser어떻게 액세스할 수 있습니까 ?testmyuser

내가 하려는 일의 예는 다음과 같습니다. 여기에 이미지 설명을 입력하세요.

답변1

당신이 사용하는 경우GNU 배쉬FOO(Linux의 로그인 셸로) 및 일부 환경 변수를 설정 하려는 경우사용자당문자열 값의 경우 다음과 같이 파일 끝 부분에 몇 줄을 추가 bar할 수 있습니다 ./etc/bash.bashrc

 # to be added in /etc/bash.bashrc
 export FOO=bar

바라보다§6.2 Bash 시작 파일더 알아보기.

물론 파일을 편집하려면(예를 들어 /usr/bin/sudo /usr/bin/emacs /etc/bash.bashrc 일부 터미널에서 한 번) 루트 권한이 필요합니다 /etc/bash.bashrc.

다음과 같은 다른 로그인 셸을 사용하도록 선택할 수도 있습니다.다루기 힘든또는물고기. 패키지를 설치하고 사용해야 합니다.chsh(1)항목 변경 /etc/passwd(참조:비밀번호(5)그리고 /etc/shells파일에 기록된쉘(5)). 그들은 같은 일을 하는 다른 방법을 가지고 있습니다.

파일이 /root/.bashrc누구나 읽을 수 있는 경우(사이버 보안 위험이 있을 수 있음) 다음을 사용할 수 있습니다.eval내장그리고정규식(1)또는벙어리 (1)그 위에 다음을 사용하십시오.명령 대체.

[email protected]자세한 내용은 이메일 (프랑스 파리 인근)을 통해 문의하시기 바랍니다 .

답변2

이는 복잡한 방법입니다.

root_test=$( sudo su -l -c 'printf "%s\n" "$test"' )

또는 루트의 쉘이 bash라고 가정합니다.

eval "$(sudo su -l -c 'declare -p test')"

어느 쪽이든 필요합니다~이 되다루트 로그인 환경에서 루트는 변수 값에 액세스합니다.

관련 정보