摘要:
本文以dpkg为例进行演示关于setuid具体原理可查阅《Unix高级环境编程》“进程控制”章节关于“设置用户id和设置组id”的介绍1. 首先需要通过setuid(0),让程序获取临时的root权限,此处操作容易受各方面影响(如权限)导致调用失败2. 调用execl函数或system函数,执行dpkg3. 还原setuid,确保恢复原始的执行权限以上为代码编写方面的原则,以下几步为对可执行文件的权限设置4. 使用gcc -o test test.c编译生成test可执行文件5. 设置可执行文件权限,在设置前后可通过ls -l查看权限区别,此处可以在安装脚本中完成 sudo chown ro. 阅读全文