에서는 /etc/cron.d/myjob
bash 스크립트를 실행하고 해당 stdout 및 stderr을 로그 파일로 리디렉션하는 cron 작업을 만들었습니다. 스크립트에는 sudo
실행할 명령 한 줄이 포함되어 있습니다.
로그 파일에서:
sudo: no tty present and no askpass program specified
이로 인해 내가 알아야 할 몇 가지 문제가 발생할 수 있습니까?
/etc/cron.d/
파일의 cron 작업을 포함하면 안되는지 알고 싶습니다 sudo
.
감사해요.
답변1
"만약"은 판단입니다.
호출된 명령은 /etc/cron.d/
지정된 사용자(사용자 root
또는 다른 사용자인지 여부, cron 라인에 정의됨)로 실행됩니다. 따라서 일반적인 상황에서는 필요하지 않습니다 sudo
.
하지만 만약 당신이하다호출되는 스크립트가 있으므로 올바르게 입력했는지 sudo
확인해야 합니다 . sudoers
특히:
- 항목이 스크립트를 실행하는 사용자에게 할당되었는지 확인하십시오(아마도
root
). NOPASSWD
누구도 암호를 입력하지 않고도 실행할 수 있도록 항목에 속성이 설정되어 있는지 확인하십시오 .
표시되는 오류는 sudo
명령에 비밀번호가 필요하지만 비밀번호를 제공할 터미널이 없기 때문입니다.
잘 작성된 스크립트는 올바른 권한으로 실행되고 있는지 감지하고 sudo
전혀 호출하지 않지만, 거기에는 잘못된 스크립트가 많이 있습니다 :-)