SSH를 통한 sudo에 대한 조언

SSH를 통한 sudo에 대한 조언

로컬 서버와 SSH 실행에서 스크립트를 실행하려면 두 가지 제안이 필요합니다.

1. sudoer 업데이트 방법

서버에는 경로가 있습니다

/var/log/데이터/상태/

Parent 및 Child_dir의 모든 파일은 tomcat 사용자 및 그룹이 소유합니다.

-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221119.status
-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221116.status
-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221112.status

new_user라는 사용자가 내 스크립트의 일부로 /var/log/data/status/ 아래의 파일 이름을 바꿀 수 있기를 원합니다. 아래와 같이 sudoers 파일을 편집하려고 시도했지만 tomcat은 비밀번호가 없는 애플리케이션 사용자이기 때문에 비밀번호 없이 실행됩니다. sudoers를 변경하는 방법을 잘 모르겠습니다.

 new_user  ALL=NOPASSWD: /bin/bash /path/my_script [a-z_]* 20[0-9]*

내가 달성하고 싶은 것은 비밀번호 없이 실행하는 것입니다.

sudo -u new_user /bin/bash /path/my_script

2. SSH를 통해 스크립트 실행

내 다른 요구 사항은 SSH를 통해 다른 서버에서 동일한 스크립트를 실행하는 것입니다. 가능하면 구문에 도움을 주세요.

  • 서버 A에서(내 사용자 iamsage로 로그인) -

이런 걸 실행해야 해요

ssh new_user@remote_host "sudo -u new_user /path/my_script arg1 arg2"

답변1

배선 sudoers이 올바르지 않습니다. 이 시도

your_user ALL=(new_user) NOPASSWD: /path/my_script

그런 다음 스크립트가 실행 가능하고 #!/bin/bash첫 번째 줄이 있는지 확인하십시오.

원격 통화 제안의 큰 문제는 새로운 사용자로 로그인을 시도하므로 이를 사용할 필요가 없다는 것입니다 sudo. 다음 중 하나를 시도하되 혼합하지 마십시오.

ssh remote_host sudo -u new_user /path/my_script arg1 arg2
ssh new_user@remote_host /path/my_script arg1 arg2

두 경우 모두 원격 실행을 위해 전체 명령을 인용하는 것이 완벽하게 가능하지만 여기서는 그렇게 하지 않았습니다.

관련 정보