84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
1.我切换至普通用户的时候 执行crontab -e报错
错误信息如下:
/tmp/crontab.CNTrhu/crontab: Permission denied
终端卡住
/tmp 文件权限 777
光阴似箭催人老,日月如移越少年。
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
如果是Ubuntu加sudo,不是参照楼上给权限
crontab这个程序必需要root的有效用户权限,才能写配置文件。
这个命令的含义是将crontab程序设置为set-user-id,意思是无论用哪个用户执行该程序,shell在调用exec执行crontab程序时,会将crontab的有效用户改成crontab的owner,即root。换句话说:被提权了。于是即使此时的crontab的实际用户是普通用户,但其有效用户是root。因此,理论上这么做是可以的。设置完成后(注意那个s):
另外看下sudo程序的权限为也是类似的:
如果是Ubuntu加sudo,不是参照楼上给权限