you (kingbase) are not allowed to use this program (crontab)

操作系统限制了 kingbase 这个系统用户,不允许执行 crontab 命令,不是 Kingbase 数据库内部权限,是 Linux cron 的访问控制。

原理:由 /etc/cron.allow(白名单)、/etc/cron.deny(黑名单)控制

  1. 如果存在 /etc/cron.allow:只有写在这个文件里的用户才能用 crontab,其他全部禁止
  2. 如果没有 cron.allow:不在 cron.deny 里的用户可以使用
  3. 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 服务读取。

posted on 2026-09-18 17:51  coding早鸟  阅读(18)  评论(0)    收藏  举报