【发布时间】:2017-05-21 13:50:01
【问题描述】:
我有一个创建日志文件的进程,文件权限为 644。但是,当我运行使用 LD_PRELOAD 加载特定共享对象库的进程时,文件权限设置为 2101(特别是设置了 setgid 权限)。我没有创建进程的程序的源代码,但我有 .so 文件的源代码。我确定文件权限是加载 .so 文件的结果,因为当我为创建文件的程序(我编写的)加载 .so 文件时,文件权限设置了 setuid/setgid 位.我尝试将 gdb 用于我编写的程序,但我无法单步执行代码。当我使用 gdb 加载 .so 文件启动程序时,我刚刚收到分段错误错误。我应该如何解决这个问题?我没有看到 .so 文件的源代码中设置了任何文件权限。我写的程序很简单,大概是这个样子-
#include <stdio.h>
int main(){
printf(" This is my program");
system("touch /tmp/myfile.txt");
return(0);
}
【问题讨论】:
标签: gdb shared-libraries file-permissions