今日成长笔记2016-09-05
1. 进程里是否得到了环境变量用getenv打印一下便知。
2. 进程运行时如果不知道实际用户id可以用getuid获取打印一下。
3. setuid可以设置实际用户id为0,前提是得执行文件所属者为root然后+s权限。这样有效用户id就是0了,只有有效用户id是0了(拿到了所属者的权限的切换许可),才允许切换到所属者权限,用setuid切换。
4. 升级平台软件调用了动态库,如果升级了自己(换库),库在进程中是加载了的,那么换库会导致升级程序本身崩溃掉。解决办法如下,让动态库以dlopen形式动态加载,换库之前关闭库(dlclose),换库成功之后再打开(dlopen)。并且这个动态库不要以静态形式加载,不然换库的时候无法让他退出加载。