搜索

首页  >  问答  >  正文

Linux 普通用户执行crontab -e 没有权限

1.我切换至普通用户的时候 执行crontab -e报错

错误信息如下:

/tmp/crontab.CNTrhu/crontab: Permission denied

终端卡住

/tmp 文件权限 777


大家讲道理大家讲道理2960 天前1713

全部回复(2)我来回复

  • 代言

    代言2016-11-11 13:49:06

    crontab这个程序必需要root的有效用户权限,才能写配置文件。

    chmod u+s /usr/bin/crontab

    这个命令的含义是将crontab程序设置为set-user-id,意思是无论用哪个用户执行该程序,shell在调用exec执行crontab程序时,会将crontab的有效用户改成crontab的owner,即root。换句话说:被提权了。于是即使此时的crontab的实际用户是普通用户,但其有效用户是root。因此,理论上这么做是可以的。设置完成后(注意那个s):

    -rwsr-xr-x. 1 root root 51784 /usr/bin/crontab

    另外看下sudo程序的权限为也是类似的:

    ---s--x--x. 1 root root 123832 /usr/bin/sudo

    回复
    0
  • 代言

    代言2016-11-11 13:48:34

    如果是Ubuntu加sudo,不是参照楼上给权限

    回复
    0
  • 取消回复