Unix 사용자 환경 변경

Unix 사용자 환경 변경

로그인하려면 비밀번호를 입력하지 않고 user1다른 Unix 사용자 환경인 에 프로젝트를 실행하고 싶습니다 .user2

"프로젝트"란 다음을 의미합니다.
- 현재 $HOME
-call user2bash 시작 스크립트를 변경합니다(프롬프트 및 전역 변수를 가져오기 위해).

나는 작은 스크립트를 작성했습니다 switch_user_env.sh.

HOME="/usr/users/$1"
cd "$HOME"

bash

. /etc/profile

if [ -f "$HOME/.bash_profile" ]; then
    . "$HOME/.bash_profile"
fi

if [ -f "$HOME/.profile" ]; then
    . "$HOME/.profile"
fi

나는 그것을 이렇게 부른다:. ./switch_user_env.sh user2

현재 쉘이 bash로 올바르게 변경되었지만 시작 스크립트가 호출되지 않았습니다.

무엇이 잘못되었는지 이해하도록 도와주실 수 있나요?

감사해요!

[편집]
switch_user_env.sh소스 코드는 GitHub에서 찾을 수 있습니다.https://github.com/pierrefevrier/switch-user-env

답변1

왜냐하면 스크립트의 나머지 부분(이후세게 때리다call)은 bash를 종료한 후에 실행됩니다(exit 명령 또는 "Ctrl+d" 입력). 스크립트 내에서 bash를 호출하면 추가 실행을 제어할 수 있습니다.

이것은 업데이트된 버전입니다:

HOME="/usr/users/$1"
cd "$HOME"

SOURCE_PROFILE=/etc/profile

if [ -f "$HOME/.bash_profile" ]; then
    SOURCE_PROFILE="$HOME/.bash_profile"
fi

if [ -f "$HOME/.profile" ]; then
    SOURCE_PROFILE="$HOME/.profile"
fi


bash --rcfile "$SOURCE_PROFILE"

관련 정보