/var/spool/cron/和/etc/crontab的区别

来源:互联网 发布:默纳克解密软件 编辑:程序博客网 时间:2024/06/04 19:32

crontab -e 也许有些人用的最多了,简单方便 
root用户执行的就会在/var/spool/cron/下面创建root文件 
因为网站有需求,我用root执行的crontab -e写的PHP计划任务,没有指定用户权限,导致php脚本生成的内容是root权限,也导致ftp操作不了,因为ftp那么是压制的web的权限 
那么crontab -e 指定用户会不会生效呢,毕竟crontab -e 本身就是当前用户的计划任务, 
首先我加了用户,

*/1 * * * * root echo "123" >/tmp/ceshi.log
  • 1
  • 1

测试正常输出,那就是可以指定用户 
那么指定apache

*/1 * * * * apache echo "123" >/tmp/ceshi-apache.log
  • 1
  • 1

ll /tmp/ceshi-apache.log 看到的是

-rw-r--r-- 1 root root 4 Jan  6 14:48 /tmp/ceshi-apache.log
  • 1
  • 1

虽然是root用户,apache权限低于root,但是指定了apache是没有用的,权限依然是root的

vim /var/spool/cron/apache

*/1 * * * * root echo "123" >/tmp/ceshi-root.log*/1 * * * * apache echo "123" >/tmp/ceshi-apache.log
  • 1
  • 2
  • 1
  • 2

ll /tmp/ceshi*

-rw-r--r-- 1 apache apache 4 Jan  6 14:49 /tmp/ceshi-root.log-rw-r--r-- 1 apache apache 4 Jan  6 14:49 /tmp/ceshi-apache.log
  • 1
  • 2
  • 1
  • 2

不出意料,root不会压制到apache权限,apache更不可能提升到root权限了

/etc/crontab里面指定用户就不测了,指定是谁就是谁,毕竟

-rw-r--r-- 1 root root 450 Jan  6 14:57 /etc/crontab
  • 1
  • 1

可以看到权限是root

顺便贴一下,我手动创建的/var/spool/cron/apache,用root身份创建的 
-rw-r–r– 1 root root 97 Jan 6 14:47 /var/spool/cron/apache 
虽然是root权限,但是创建的文件都是apache权限的