visudo를 설정했는데도 sudo 명령을 실행하면 여전히 비밀번호를 묻는 메시지가 표시됩니다.

visudo를 설정했는데도 sudo 명령을 실행하면 여전히 비밀번호를 묻는 메시지가 표시됩니다.

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이 파일을 사용해야 합니다.

관련 정보