普通用户无法使用crontab故障排除

文章描述了一位用户在统信uosV20操作系统环境下,使用Kingbase数据库执行定时备份脚本时遇到的权限问题。用户首先尝试将用户添加到cron.allow白名单,但仍然无法通过`crontab-e`保存定时任务。进一步排查发现`/usr/bin/crontab`文件缺少s权限,导致无法写入`/var/spool/cron`。通过添加s权限给`/usr/bin/crontab`后,最终解决了问题,使得脚本能够成功执行并添加到crontab列表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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也是一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值