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