有没有办法让我在运行程序时,就假设我是以特权管理员 (又称 root) 身份运行的?我知道这可能很危险,但为了方便,我愿意承担这个风险。
答案1
答案2
如果你只感兴趣具体的以 root 身份运行setuid 位是适当的特征。
通过设置此位,程序将以其所有者的权限运行。因此,您可以获取一个程序,将其所有者更改为 root,设置其 setuid 位,然后该程序将以 root 身份运行,无需特殊干预。
Ubuntu 中的某些程序默认为 setuid - 例如,ping
> ls -l `which ping`
-rwsr-xr-x 1 root root 35712 2011-05-03 11:43 /bin/ping
这个程序需要以root身份运行,因为只有root才能打开1024以下的端口进行监听,这是监听返回数据包所需要的。
如上所述,默认允许程序 root 权限是危险的,并且通常仅用于简单、经过良好审核的程序 - 任何可能因外部输入而被利用的程序都有可能使您的整个系统受到损害,而不仅仅是您的用户帐户可以访问的那些区域。
答案3
请不要这样做。你不仅伤害了自己,也伤害了别人。僵尸、垃圾邮件机器人和 DDoS 主机已经够多了。