kingbase执行添加定时备份脚本时提示没有权限问题排查及解决步骤
操作系统环境:统信uos V20。
1、crontab -e手动添加定时任务脚本也保存不了,尝试了将用户添加至cron.allow白名单,重启定时计划任务后,crontab -e还是保存不了。
crontab -e添加定时计划后保存时提示以下报错:
```powershell
crontab -e no crontab for kingbase - using an empty one crontab: installing new crontab fchown: 不允许的操作
2、kingbase执行自动备份脚本时,添加定时任务时提示没**权限;*
[kingbase@localhost logical]$ ./fast_deploy_backup8.sh
This tool help use to deploy logical backup (backup8.sh) schedual into crontab, must execute in local server
1.check back dest:
back dest is exist, do not create it
2.check backup8.sh script:
sucess to execute backup8.sh
3.add backup job:
/var/spool/cron/kingbase: 权限不够
/var/spool/cron/kingbase: 权限不够
/var/spool/cron/#tmp.localhost.localdomain.XXXXjntRKG: 权限不够
complated
4.show current crontab list:
/var/spool/cron/kingbase: 权限不够
end
[kingbase@localhost logical]$
[kingbase@localhost logical]$ exit
先把/var/spool/cron的权限设置为777。
进入目录/var/spool/cron/
[root@localhost insatll]# chmod -R 777 /var/spool/
[root@localhost insatll]# su - kingbase
[kingbase@localhost ~]$ cd KingbaseES/V8/Server/kb_scripts/kb_backup/logical/
[kingbase@localhost logical]$ ./fast_deploy_backup8.sh
This tool help use to deploy logical backup (backup8.sh) schedual into crontab, must execute in local server
1.check back dest:
back dest is exist, do not create it
2.check backup8.sh script:
sucess to execute backup8.sh
3.add backup job:
no crontab for kingbase
no crontab for kingbase
fchown: 不允许的操作
complated
4.show current crontab list:
no crontab for kingbase
end
[kingbase@localhost logical]$ exit
(即使把/var/spool/cron的权限设置为777,也一样会提示 fchown:没有权限操作)
检查 /usr/bin/crontab 的属性```
[root@localhost insatll]# ls `which crontab` -al
-rwxr--r-- 1 root root 63160 3月 14 05:47 /usr/bin/crontab
检查发现是 /usr/bin/crontab 的属性有问题,没有给予它s属性,因此低权限有误就无法使用crontab来往/var/spool/cron下写入文件
[root@localhost insatll]# chmod u+s /usr/bin/crontab
[root@localhost insatll]# ls -rtl /usr/bin/crontab
-rwsrwxrwx 1 root root 63160 3月 14 05:47 /usr/bin/crontab
[root@localhost insatll]#
[root@localhost insatll]#
[root@localhost insatll]# su - kingbase
上一次登录:四 7月 20 14:47:49 CST 2023pts/0 上
Welcome to 4.19.0-91.82.152.uelc20.x86_64
[kingbase@localhost ~]$ cd KingbaseES/V8/Server/kb_scripts/kb_backup/logical/
[kingbase@localhost logical]$ ./fast_deploy_backup8.sh
This tool help use to deploy logical backup (backup8.sh) schedual into crontab, must execute in local server
1.check back dest:
back dest is exist, do not create it
2.check backup8.sh script:
sucess to execute backup8.sh
3.add backup job:
no crontab for kingbase
no crontab for kingbase
complated
4.show current crontab list:
0 2 * * * sh /home/kingbase/KingbaseES/V8/Server/kb_scripts/kb_backup/logical/backup8.sh >>/home/kingbase/KingbaseES/V8/Server/kb_scripts/kb_backup/logical/logical_backup.log 2>&1 &
end
[kingbase@localhost logical]$
脚本执行成功。
总结:
s权限是 sid ,和passwd 一样,虽然普通用户没有passwd 的读、写、执行权限,但是加入了sid,就可以继承该文件拥有者的权限,比如写 /etc/shadow。crontab也是一样