tmux 세션을 열고 비밀번호 프롬프트 없이 다른 사용자로 변경

tmux 세션을 열고 비밀번호 프롬프트 없이 다른 사용자로 변경

새 tmux 세션을 연 다음 해당 tmux 세션에서 다른 사용자로 명령을 실행하는 스크립트를 만들려고 합니다.

이것의 목적은 다른 UNIX 사용자에게 할당된 게임 서버에 대한 새로운 tmux 세션을 생성하는 것입니다. 서버에 자체 사용자를 제공하는 것이 좋은 습관이라고 들었습니다. 하지만 편의를 위해 여전히 기본 사용자의 홈 디렉터리에 서버를 시작하는 스크립트를 두고 싶습니다.내 기본 사용자가 tmux 세션을 사용할 수 있으면서도 게임 서버 사용자에 계속 로그인할 수 있기를 바랍니다.

가장 큰 문제는 우회할 수 없는 비밀번호 프롬프트가 있어서 tmux 세션에 연결하고 비밀번호를 입력한 다음 분리해야 한다는 것입니다. 내가 시도한 것은 다음과 같습니다.

#!/bin/sh

tmux new -d -s Minecraft sudo -u minecraft /home/minecraft/server/start.sh

su - Minecraftsudo로 스크립트를 실행하고 스크립트에 추가하는 모든 조합을 시도했지만 su Minecraft -c "script"모든 조합에서 tmux 세션에 연결하고 로그인해야 하거나 작동하지 않고 tmux를 열지 않습니다. 세션.

연결 후 분리를 통해 로그인할 필요 없이 tmux를 호출하는 스크립트를 실행할 때 내 sudo 비밀번호나 다른 사용자의 비밀번호를 입력할 수 있는 솔루션을 찾으려고 합니다.

답변1

두 가지 방법:

  1. 사용자가 비밀번호 없이 작업을 수행 하거나 명시적으로 /etc/sudoers수행할 수 있도록 편집하세요 .sudo -u minecraftsudo -u minecraft /home/minecraft/server/start.sh
  2. 명령 전에 sudo -u minecraft sleep 0스크립트를 실행하십시오 tmux. 비밀번호를 묻는 메시지가 표시됩니다. sudo다음 몇 분 동안의 후속 명령에는 비밀번호가 필요하지 않습니다.

답변2

ssh가 귀하의 컴퓨터에서 실행 중이고 localhost 인터페이스를 수신하고 있다고 가정하면 ssh 키를 설정하고 키의 공개 부분을 대상 사용자의 .ssh/authorized_keys파일에 넣을 수 있습니다.

그런 다음 다음을 수행할 수 있습니다.

ssh target_user@localhost 'whatever command you want to run'

관련 정보