호출된 스크립트의 권한을 제어하기 위한 것입니까, 아니면 스크립트가 실행되는 시기나 실행 여부에도 영향을 줍니까? 루트가 아닌 사용자를 위해 cron을 설정하면 재부팅 후 해당 사용자로 로그인하지 않은 경우에도 항상 실행되어야 한다고 가정합니다. 그렇죠?
답변1
Unix는 원래 여러 사람이 동일한 물리적 컴퓨터를 사용하는 다중 사용자 시스템으로 설계되었음을 기억하십시오. (오늘날과 달리 대부분의 Unix 시스템은 단순히 취약점을 제한하기 위해 여러 사용자 계정으로 한 사람만 사용합니다.)
따라서 사용자별 crontab의 원래 목적은 모든 사람이 정기적으로 실행하고 싶은 작업을 예약할 수 있도록 하는 것이었습니다(시스템 crontab 편집 권한을 부여하여 다른 모든 사람의 작업을 방해하지 않고). 하지만 지금은 주로 작업 실행 권한을 제어하는 용도로만 사용됩니다.
예, crontab이 저장되면 해당 사용자가 로그인했는지(또는 로그인한 적이 있는지) 여부에 관계없이 작업이 실행됩니다. 기본 cron 데몬은 사용자별 crontab과 시스템 crontab을 실행합니다.
답변2
또한 루트가 아닌 crontab의 작업은 이 사용자로 실행됩니다. /etc/crontab
및 /etc/cron.d
etc. 디렉토리 에 있는 동안 /etc/cron.daily
시스템 관리자는 추가 항목이 있으므로 작업을 실행할 사용자 계정을 선택할 수 있습니다.
에서 man 5 crontab
:
The format of a cron command is very much the V7 standard, with
a number of upward-compatible extensions. Each line has five
time and date fields, followed by a user name if this is the
system crontab file, followed by a command.
답변3
기본적으로 권한이 없는 사용자가 cron 작업을 실행할 수 있습니다. 예, 정기적인 작업을 수행하려면 크론 작업이 필요합니다. 예, 재부팅 후에도 지속됩니다.
"정기적으로 영원히" 의미를 원하지 않는 경우 at/batch는 유사한 기능을 제공합니다.