非root用户用C语言执行root用户才能实现的命令

ailurus 2011-09-15 10:18:59
比如与防火墙有关的命令,备份恢复、系统配置什么的,该如何实现呢?
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ailurus 2011-09-15
  • 打赏
  • 举报
回复
在linux中每个进程有三个[实际上有第4个]用户标识符.
real uid : 真实用户ID.
saved uid : 已保存用户ID
effective uid : 有效用户ID
真实用户ID(real uid)是login时的用户.而在运行过程中,
用于所有的安全检查的是有效用户ID(effective uid).
一般情况下:
real uid = saved uid = effective uid
在某些场合下,使用用setuid,setruid函数可以改变effective uid,从而
使得程序运行时具有特殊的权限.常见的例子是linux系统中的passwd命令,
由于所有的用户信息包括用户密码都保存在/etc/passwd文件中,而/etc/passwd
文件只有root权限可以读写,若想让每个用户都只可以修改自己的密码,就必须
让普通用户暂时获得有限的读写/etc/passwd的权限.用setuid就可以解决这个
问题.
nice_cxf 2011-09-15
  • 打赏
  • 举报
回复
显然是不行的,不然系统的安全谁来保证啊
jackyjkchen 2011-09-15
  • 打赏
  • 举报
回复
这时候如果给你执行了,就是linux的安全漏洞了!

请sudo运行,要么发行版提供这个明明干嘛?你有见过那个root级的指令不用sudo就能跑的?

ailurus 2011-09-15
  • 打赏
  • 举报
回复
是修改相关的uid吧,linux方面知识了解不多,各位帮下忙吧

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧