you (kingbase) are not allowed to use this program (crontab)
操作系统限制了 kingbase 这个系统用户,不允许执行 crontab 命令,不是 Kingbase 数据库内部权限,是 Linux cron 的访问控制。
原理:由 /etc/cron.allow(白名单)、/etc/cron.deny(黑名单)控制
- 如果存在
/etc/cron.allow:只有写在这个文件里的用户才能用 crontab,其他全部禁止 - 如果没有 cron.allow:不在 cron.deny 里的用户可以使用
- kingbase 被写进 cron.deny,或者 cron.allow 存在但里面没有 kingbase,就会报这个错Debian Man...
1、root 执行检查
cat /etc/cron.allow
cat /etc/cron.deny
2、修复方案(root 操作)
方案 A:推荐,加到白名单 cron.allow
echo "kingbase" >> /etc/cron.allow
一行一个用户名,添加完,切换 kingbase 验证:
su - kingbase
crontab -l
方案 B:kingbase 在黑名单里,从 cron.deny 删除
编辑 /etc/cron.deny,删掉 kingbase 那一行。
⚠️ 注意:如果 cron.allow 文件存在,优先白名单,即使不在 deny 里也不行。
备选方案(很多数据库运维推荐)
不用 kingbase 用户自己的 crontab,root 在 /etc/cron.d/ 放定时任务文件,任务指定用户 kingbase 执行,不需要给 kingbase 开放 crontab 权限,更安全。 示例 /etc/cron.d/kb_backup
0 2 * * * kingbase /kingbase/bin/sys_rman backup >> /kb_log/backup.log 2>&1
改完不需要 crontab 命令,直接由 crond 服务读取。
浙公网安备 33010602011771号