/etc/cron.d 디렉토리의 두 파일 cron.deny 및 cron.allow를 사용하여 crontab 명령에 대한 액세스를 제어할 수 있습니다. 이러한 파일은 지정된 사용자만 자신의 crontab 파일 만들기, 편집, 표시, 제거와 같은 crontab 명령 작업을 수행하도록 허용합니다.
cron.deny 및 cron.allow 파일은 사용자 이름 목록(한 라인에 사용자 이름 하나씩)으로 구성됩니다.
이러한 액세스 제어 파일은 다음과 같이 작동합니다.
cron.allow가 있는 경우 이 파일에 나열된 사용자만 crontab 파일을 만들거나, 편집, 표시, 제거할 수 있습니다.
cron.allow가 없는 경우 cron.deny에 나열된 사용자를 제외한 모든 사용자가 crontab 파일을 제출할 수 있습니다.
cron.allow도 없고 cron.deny도 없는 경우 crontab 명령을 실행하려면 root 역할을 맡아야 합니다.
cron.deny 및 cron.allow 파일을 편집하거나 만들려면 root 역할을 맡아야 합니다.
Oracle Solaris 소프트웨어 설치 중 생성된 cron.deny 파일은 다음 사용자 이름을 포함합니다.
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
기본 cron.deny 파일의 사용자 이름 중 아무도 crontab 명령에 액세스할 수 없습니다. 이 파일을 편집하여 crontab 명령에 액세스가 거부될 다른 사용자를 추가할 수 있습니다.
기본 cron.allow 파일이 제공되지 않으므로 기본 cron.deny 파일에 나열된 사용자를 제외한 모든 사용자가 crontab 명령에 액세스할 수 있습니다. cron.allow 파일을 만들면 이러한 사용자만 crontab 명령에 액세스할 수 있습니다.
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess
root를 파일에 추가하지 않으면 crontab 명령에 대한 root 액세스가 거부됩니다.
root username1 username2 username3 . . .
다음 예는 사용자 이름 jones, temp, visitor가 crontab 명령에 액세스하지 못하게 막는 cron.deny 파일을 보여줍니다.
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess jones temp visitor
다음 예는 cron.allow 파일을 보여줍니다. 사용자 root, jones 및 smith는 crontab 명령에 액세스할 수 있는 유일한 사용자입니다.
$ cat /etc/cron.d/cron.allow root jones smith
특정 사용자가 crontab 명령에 액세스할 수 있는지 확인하려면 사용자 계정으로 로그인한 동안 crontab -l 명령을 사용합니다.
$ crontab -l
사용자가 crontab 명령에 액세스할 수 있고 이미 crontab 파일을 만든 경우 파일이 표시됩니다. 그렇지 않으면, 사용자가 crontab 명령에 액세스할 수 있지만 crontab 파일이 없어서 다음과 비슷한 메시지가 표시됩니다.
crontab: can't open your crontab file
이 사용자가 cron.allow 파일(존재하는 경우)에 나열되거나 사용자가 cron.deny 파일에 나열되지 않습니다.
사용자가 crontab 명령에 액세스할 수 없을 경우 이전 crontab 파일이 존재하는지에 관계없이 다음 메시지가 표시됩니다.
crontab: you are not authorized to use cron. Sorry.
이 메시지는 사용자가 cron.allow 파일(있는 경우)에 나열되지 않거나 사용자가 cron.deny 파일에 나열되어 있음을 의미합니다.