쉘 스크립트 내에서 다른 사용자로 로그인하고 일련의 명령을 실행하는 방법은 무엇입니까?

쉘 스크립트 내에서 다른 사용자로 로그인하고 일련의 명령을 실행하는 방법은 무엇입니까?

내 요구 사항은 비밀번호 인증이 필요한 다른 사용자로 로그인하고 내 사용자 계정에서 실행하는 쉘 스크립트 내에서 해당 사용자로 일부 명령을 실행하는 것입니다.

예: user1이 스크립트를 실행 중입니다. 요구 사항은 비밀번호를 사용하여 user2로 로그인하고 단일 쉘 스크립트를 사용하여 명령 세트를 실행하는 것입니다.

답변1

여러 가지 방법을 사용할 수 있습니다.

  1. . su​su를 통해 다음과 같은 명령을 실행할 수 있습니다.

su user -c "command"

또는

su - user -c "command"

차이점은 대시가 있으면 대상 사용자의 환경을 얻을 수 있다는 것입니다. 이 명령을 사용하면 대상 사용자의 비밀번호를 묻는 메시지가 나타납니다.

  1. 사용 sudo:

sudo -u user "command"

이 명령을 사용하면 비밀번호(귀하의 비밀번호)를 사용하거나 사용하지 않고 실행합니다.

  1. 사용 ssh:

SSH를 사용하면 사용자 비밀번호, 키 비밀번호(있는 경우)를 사용하여 명령을 실행할 수 있습니다.

ssh user@localhost "command"

PS rsh와 같이 거의 불가능한 다른 가능한 방법도 있습니다.

답변2

명령을 사용하면 su [username]현재 위치에서 해당 사용자의 컨텍스트에서 명령을 실행할 수 있습니다. 다음 명령을 사용하면 su - [username]해당 사용자 홈 디렉터리로 전환됩니다. 사용자 이름을 생략하면 루트로 전환됩니다.

관련 정보