在libselinux中哪里可以找到函数“ setcon”的源代码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在libselinux中哪里可以找到函数“ setcon”的源代码?相关的知识,希望对你有一定的参考价值。
我试图弄清楚Selinux是如何工作的,我在几个地方看到了一个名为setcon
的函数,该函数在selinux/selinux.h
中声明,并且有一个手册页条目。但是我在libselinux的源代码中找不到此函数的实现(即源代码)。任何人都可以告诉我setcon的源代码在哪里?非常感谢。
/* Set the current security context to con.
Note that use of this function requires that the entire application
be trusted to maintain any desired separation between the old and new
security contexts, unlike exec-based transitions performed via setexeccon.
When possible, decompose your application and use setexeccon()+execve()
instead. Note that the application may lose access to its open descriptors
as a result of a setcon() unless policy allows it to use descriptors opened
by the old context. */
extern int setcon(const char * con);
答案
我自己弄清楚了。实际上,函数“ setcon”是使用几个宏在/libselinux/src/proattr.c
处定义的。
#define setselfattr_def(fn, attr) \
int set##fn(const char * c) \
\
return setprocattrcon(c, 0, #attr); \
#define all_selfattr_def(fn, attr) \
getselfattr_def(fn, attr) \
setselfattr_def(fn, attr)
all_selfattr_def(con, current)
正如我们从上面看到的,真正的功能是“ setprocattrcon”,它也定义在同一源文件中。
以上是关于在libselinux中哪里可以找到函数“ setcon”的源代码?的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )(
Android 逆向Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )(