SSH를 통해 rsync를 사용하여 원격 배포를 구성하고 있는데 비밀번호 없이 sudo 명령을 실행해야 합니다.
이것은 내 시각적입니다.
# Allow user to execute specified commands without password
Cmnd_Alias USER_SERVICES = /bin/systemctl reload nginx, /usr/sbin/nginx
-t
[user] ALL=(ALL) NOPASSWD:USER_SERVICES
이 설정을 사용하면 암호 프롬프트 없이 지정된 명령(입력한 명령)을 수동으로 실행할 수 있다는 것을 확인할 수 있지만 스크립트 파일(아래 표시)에서 명령을 실행할 때마다 암호를 묻는 메시지가 나타납니다.
#! /bin/bash
...
sudo systemctl reload nginx
...
이 경우 비밀번호 프롬프트를 피하는 방법은 무엇입니까?
답변1
이 두 명령은 동일 systemctl reload nginx
하지 않습니다. /bin/systemctl reload nginx
첫 번째는 환경 변수에 포함된 디렉터리에 의존하는 PATH
반면, 두 번째는 환경 변수에 포함된 디렉터리에 의존하지 않습니다.
이 sudoers
파일을 사용하면 사용할 수 있으므로 /bin/systemctl reload nginx
이 파일을 사용해야 합니다.