Linux 一般用户没有crontab权限的解决办法
前言
我们在linux系统中,经常会用到定时执行xx脚本的情况,基本会用到系统工具中的crontab,但如果普通用户没有crontab权限,只有root用户有权限,怎样处理呢?两种解决思路:
1、在root用户下定义crontab任务,但是执行时,以特定用户执行。
2、授予xx用户自己的crontab任务权限,用户自己编辑自己的crontab任务。
两种解决方式(都是root用户登陆)
(1)、指定执行脚本用户
# 每天01:30 通过用户名为 user1 的用户 执行 脚本dbbackup.sh 前提是用户user1 有 dbbackup.sh 脚本的执行权限
30 01 * * * su - user1 -c "/root/bin/dbbackup.sh"
(2)、root给xx用户赋crontab权限
先查看crontab 权限列表和 禁止列表
# 如果为空,表示只有root有权限,xx用户不在列表中,则无法在xx登陆的前提下增加crontab任务
cat /etc/cron.allow # 权限列表
# 如果xx用户在此配置文件中,表示禁止使用crontab
cat /etc/cron.deny # 禁用列表
要想xx用户可以配置自己的crontab定时任务,只需要将用户名 增加到 cron.allow中即可(如果禁止列表中有此用户,记得先去掉),例如用户名为 user1
vi /etc/cron.allow
添加用户到文件中
# 给xx用户赋crontab权限
user1
保存退出,切换user1用户,编辑自己的定时任务就可以了。