내 요구 사항은 비밀번호 인증이 필요한 다른 사용자로 로그인하고 사용자 계정에서 실행하는 쉘 스크립트에서 해당 사용자로 일부 명령을 실행하는 것입니다.
예: user1이 스크립트를 실행 중입니다. 요구 사항은 비밀번호를 사용하여 user2로 로그인하고 단일 쉘 스크립트를 사용하여 일련의 명령을 실행하는 것입니다.
답변1
이를 사용할 수 있는 방법은 여러 가지가 있습니다.
- 사용
su
. su를 사용하면 다음과 같은 명령을 실행할 수 있습니다.
su user -c "command"
또는
su - user -c "command"
차이점은 대시가 있으면 대상 사용자의 환경을 얻을 수 있다는 것입니다. 이 명령을 사용하면 대상 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다.
- 사용
sudo
:
sudo -u user "command"
이 명령을 사용하면 비밀번호(귀하의 비밀번호)를 사용하거나 사용하지 않고 실행할 수 있습니다.
- 사용
ssh
:
SSH를 사용하면 사용자 비밀번호, 키 비밀번호(사용 가능한 경우)를 사용하여 명령을 실행할 수 있습니다.
ssh user@localhost "command"
추신: 다른 가능한 방법도 있지만 rsh와 같이 거의 불가능합니다.
답변2
이 명령을 사용하면 su [username]
현재 위치에서 해당 사용자의 컨텍스트에서 명령을 실행할 수 있습니다. su - [username]
해당 사용자의 홈 디렉터리로 전환하려면 다음 명령을 사용합니다 . 사용자 이름을 생략하면 루트로 전환됩니다.