사용자 x는 이 프로그램(crontab)을 사용할 수 없습니다.

사용자 x는 이 프로그램(crontab)을 사용할 수 없습니다.

우분투14.04

서비스(로그인 없음) 계정(named)에 대해 crontab을 설정할 때 나타나는 동작을 이해하지 못합니다 curator.

루트로 로그인하면 다음과 같은 결과가 나타납니다.

# crontab -u curator -l
The user curator cannot use this program (crontab)

그러나 사용자 계정으로 전환하면 정상적으로 작동합니다.

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

/etc/cron.allow시스템에 빈 파일이 있고 파일이 없습니다. /etc/cron.deny에 따르면 man crontab:

/etc/cron.allow 파일이 존재하는 경우 이 명령을 사용하려면 해당 파일에 나열되어야 합니다(한 줄에 한 명의 사용자). /etc/cron.allow 파일은 없지만 /etc/cron.deny 파일은 있는 경우 이 명령을 사용하려면 /etc/cron.deny 파일에 나열되어서는 안 됩니다.

첫 번째 명령을 실행할 때 발생하는 오류를 이해하지만 crontab명시적으로 사용자 계정으로 전환하면 명령을 실행할 수 있는 이유는 무엇입니까?

사용자를 추가하면 /etc/cron.allow두 명령이 모두 제대로 작동했습니다.

답변1

crontab 소스를 확인한 결과 사용자가 열 수 없는 경우 /etc/cron.allow(예: 이후 chmod 0 /etc/cron.allow) crontab은 사용자가 해당 소스를 사용할 수 있다고 생각한다는 사실을 발견했습니다(마치 cron.allow존재하지 않는 것처럼).

그러나 루트는 모든 파일을 읽을 수 있으므로 crontab 검사 코드는 예상대로 작동합니다. 따라서 먼저 권한을 확인 /etc/cron.allow하고 SELinux/AppArmor 감사 로그를 확인하는 것이 좋습니다.

관련 정보