다음 명령(난독화된 서버 이름)은 순서대로 잘 작동합니다.
ssh xxx.sjc
sudo -u appName id
그러나 이들을 연결하려고 하면 문제가 발생합니다.
ssh xxx.sjc 'sudo -u appName id'
Sorry, user merlin2011 is not allowed to execute '/bin/id' as appName on xxx.sjc.
두 모드의 차이점으로 ssh
인해 이 문제가 발생할 수 있으며 조사하려면 어떤 단계를 수행해야 합니까?
운영 체제에 관해서는 클라이언트에서 OSX를 실행하고 서버에서 사용자 지정 Linux 배포판(회사의 다른 사람이 배포)을 실행하고 있습니다.
uname -r
3.10.0-1127.18.2.el7.x86_64
답변1
기반으로내 댓글제안
sudo -u appName id
두 경우 모두 교체해 보십시오type sudo
. 동일한 신청 경로를 보고하는지 알고 싶습니다.
그리고당신의 응답,
그렇지 않은 것 같습니다!
sudo
두 가지 다른 구성을 사용하는 두 가지 설치가 있는 것으로 보입니다 sudoers
. 사용하려는 버전이 로그인 스크립트에서 사용자에게 추가되는 위치 sudo
와 같은 비표준 위치에 있을 수 있습니다 . 즉, 해당 명령이 사용하지 않는 다른 명령을 대체하는 경우가 많습니다./usr/local/bin/sudo
/opt/bin/sudo
PATH
/usr/bin/sudo
해결 방법은 명령줄에서 "job" 명령에 대한 전체 경로를 제공하는 것 입니다 sudo
. ssh
그런데 sudo
비밀번호를 입력하라는 메시지가 표시되거나 대상 애플리케이션에 사용자 입력이 필요한 ssh -t
경우 ssh
.