약간의 수정을 거쳐 현재 별칭/함수/스크립트가 Tmux 내에서 실행되고 있는지 확인하세요.

약간의 수정을 거쳐 현재 별칭/함수/스크립트가 Tmux 내에서 실행되고 있는지 확인하세요.

알아채다:응 나도 읽었어bash 스크립트를 통해 tmux 세션에 있는지 어떻게 알 수 있나요?

sudo su -그 사이에 사용하는 경우 쉘, 쉘 스크립트, 쉘 함수 또는 별칭에서 Tmux 세션을 실행하고 있는지 어떻게 확인합니까?

질문

답변1

파일 에서 /etc/sudoers환경 변수가 sudo 환경에 전파되도록 명시적으로 허용할 수 있습니다.

Defaults    requiretty

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" 

따라서 한 가지 접근 방식은 생성된 변수를 추가 tmux하고 통과시키는 것입니다.

답변2

% sudo su -- 2<<STATE
>    TMUX='$TMUX'
>    exec 2>/dev/tty 
> STATE
# . /dev/fd/2
# { 
#   echo "$TMUX"
#   echo "$TMUX" >&2
# }

###OUTPUT

/tmp/tmux-1000/default,23878,1
/tmp/tmux-1000/default,23878,1

sudo호출 프로세스의 모든 파일 설명자를 닫지만 비밀번호를 입력할 필요 가 0,1,2없거나 입력할 수 없습니다. 그러나 단일 명령을 실행하는 데 필요한 범위에 대한 차단을 허용할 수 있는 경우 위의 작업을 수행할 수 있습니다./dev/tty<&0>&2

이 기술을 사용하여 원하는 다른 것을 휴대할 수 있습니다.

관련 정보