사용자가 crontab을 사용할 수 있는지 확인하는 방법은 무엇입니까?

사용자가 crontab을 사용할 수 있는지 확인하는 방법은 무엇입니까?

특정 사용자가 crontab을 사용할 수 있는지 확인하고 싶습니다. 쉘 스크립트에서 이 유효성 검사를 사용하고 싶습니다.

이를 수행하는 올바른 방법은 무엇입니까?

답변1

VISUAL=true EDITOR=true crontab -e 2>/dev/null

이 명령은 자동이지만 종료 상태는 스크립트(및 이를 실행하는 사용자)를 사용할 수 있는지 여부를 나타냅니다 crontab.

다른 사용자 추가를 테스트하려면 -u username( crontab지원하는 경우) 스크립트에 -u다른 사용자를 대신하여 실행할 수 있는 충분한 권한이 있는 경우에만 작동합니다. 권한 이 없는 스크립트는 다른 사용자가 사용할 수 없는 것처럼 crontab종료 상태를 갖습니다 .1crontabsudo -u username …sudo아니면 아닐지도 몰라구성에 따라 환경을 설정할 수 있습니다.

결점:

  • 지원할 crontab수도 있고 지원하지 않을 수도 있습니다 -e(POSIX에서는 선택 사항이라고 말합니다).
  • 이 방법은 "사용자가 사용할 수 있는지 crontab"를 정확하게 확인하는 것이 아니라 "스크립트가 crontab사용자를 대신하여 사용할 수 있는지"를 확인하는 것입니다. 이것은 당신이 원하는 것일 수도 있고 아닐 수도 있습니다. "특정 사용자"가 "스크립트를 실행하는 사용자"를 의미하는 경우에는 그럴 필요가 없으며 -u메서드는 제대로 작동합니다.

이점:

  • /etc/cron.allowand를 분석할 필요가 없습니다 /etc/cron.deny(사용된 경우 구현 정의 디렉터리에 있음). 최종 답변을 구성하기 위해 논리를 구축할 필요가 없습니다. crontab그것은 당신을 위해 모든 것을 스스로 할 것입니다.

노트:

  • 내 Kubuntu 18.04.5 LTS에서 이전에 crontab확인했지만VISUALEDITORPOSIX 사양만 언급되었습니다 EDITOR. 이것이 바로 이 답변이 두 가지 변수를 설정하는 이유입니다.
  • 더 좋아 보일 수도 있지만 crontab -lcrontab이 없으면 명령은 실패를 반환합니다(적어도 내 Kubuntu에서는 그렇게 작동합니다).
  • VISUAL=true crontab -e내 Kubuntu 18.04.5 LTS에서 crontab 이 존재하지 않으면아니요빈 것을 설치하십시오. 다른 구현에 대해서는 잘 모르겠습니다. crontab이 없으면 빈 crontab을 설치하면 부작용이 발생할 수 있습니다.

관련 정보