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
测试正常输出,那就是可以指定用户
那么指定apache
*/1 * * * * apache echo "123" >/tmp/ceshi-apache.log
ll /tmp/ceshi-apache.log 看到的是
-rw-r--r-- 1 root root 4 Jan 6 14:48 /tmp/ceshi-apache.log
虽然是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
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
不出意料,root不会压制到apache权限,apache更不可能提升到root权限了
/etc/crontab里面指定用户就不测了,指定是谁就是谁,毕竟
-rw-r--r-- 1 root root 450 Jan 6 14:57 /etc/crontab
可以看到权限是root
顺便贴一下,我手动创建的/var/spool/cron/apache,用root身份创建的
-rw-r–r– 1 root root 97 Jan 6 14:47 /var/spool/cron/apache
虽然是root权限,但是创建的文件都是apache权限的