작성일 댓글 남기기

[서버] crontab 명령에 대한 액세스 제어

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 명령 액세스를 거부하는 방법

  1. 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
  2. /etc/cron.d/cron.deny 파일을 편집하고 사용자 이름을 한 라인에 하나씩 추가합니다. crontab 명령에 대한 액세스가 거부될 사용자를 넣습니다.daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
  3. /etc/cron.d/cron.deny 파일이 새 항목을 포함하는지 확인합니다.# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess

crontab 명령 액세스를 지정된 사용자로 제한하는 방법

  1. 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
  2. /etc/cron.d/cron.allow 파일을 만듭니다.
  3. root 사용자 이름을 cron.allow 파일에 추가합니다.root를 파일에 추가하지 않으면 crontab 명령에 대한 수퍼유저 액세스가 거부됩니다.
  4. 사용자 이름을 한 라인에 하나씩 추가합니다.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

답글 남기기