1.我切换至普通用户的时候 执行crontab -e报错
错误信息如下:
/tmp/crontab.CNTrhu/crontab: Permission denied
终端卡住
/tmp 文件权限 如下图
/usr/bin/crontab
切换到普通用户 执行 crontab -e 情况如图
并且感觉卡住了
1.我切换至普通用户的时候 执行crontab -e报错
错误信息如下:
/tmp/crontab.CNTrhu/crontab: Permission denied
终端卡住
/tmp 文件权限 如下图
/usr/bin/crontab
切换到普通用户 执行 crontab -e 情况如图
并且感觉卡住了
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
1 回答2.8k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
好奇怪。你
echo $EDITOR $VISUAL
看看是不是设置成奇怪的编辑器了?如果没有设置的话,试试 EDITOR=vi crontab 能不能用?
检查一下你的编辑器是不是能用?