crontab 명령에 대한 액세스 제어
/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 명령을 실행하려면 수퍼유저 권한이 필요합니다.
cron.deny 및 cron.allow 파일을 편집하거나 만들려면 수퍼유저 권한이 필요합니다.
SunOS 소프트웨어 설치 중 생성된 cron.deny 파일은 다음 사용자 이름을 포함합니다.
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
기본 cron.deny 파일의 사용자 이름 중 아무도 crontab 명령에 액세스할 수 없습니다. 이 파일을 편집하여 crontab 명령에 액세스가 거부될 다른 사용자 이름을 추가할 수 있습니다.
기본 cron.allow 파일은 제공되지 않습니다. 그래서 Oracle Solaris 소프트웨어 설치 후에 모든 사용자(기본 cron.deny 파일에 나열된 사용자 제외)가 crontab 명령에 액세스할 수 있습니다. cron.allow 파일을 만들면 이러한 사용자만 crontab 명령에 액세스할 수 있습니다.
crontab 명령 액세스를 거부하는 방법
- 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
- /etc/cron.d/cron.deny 파일을 편집하고 사용자 이름을 한 라인에 하나씩 추가합니다. crontab 명령에 대한 액세스가 거부될 사용자를 넣습니다.daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
- /etc/cron.d/cron.deny 파일이 새 항목을 포함하는지 확인합니다.# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess
crontab 명령 액세스를 지정된 사용자로 제한하는 방법
- 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
- /etc/cron.d/cron.allow 파일을 만듭니다.
- root 사용자 이름을 cron.allow 파일에 추가합니다.root를 파일에 추가하지 않으면 crontab 명령에 대한 수퍼유저 액세스가 거부됩니다.
- 사용자 이름을 한 라인에 하나씩 추가합니다.crontab 명령을 사용하도록 허용될 사용자를 넣습니다.root username1 username2 username3 . . .
예 8-6 crontab 명령 액세스를 지정된 사용자로 제한
다음 예는 사용자 이름 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, lp, smith는 crontab 명령에 액세스할 수 있는 유일한 사용자입니다.
$ cat /etc/cron.d/cron.allow root jones lp smith
제한된 crontab 명령 액세스를 확인하는 방법
특정 사용자가 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 파일에 나열되어 있음을 의미합니다.
출처 : https://docs.oracle.com/cd/E24846_01/html/E23088/sysrescron-23.html