首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux系统编程】—— 进程替换及其在操作系统中的应用与实现

    execv 在执行一个程序时,第一步仍然是要找到这个程序。与 execlv 相似,execv 需要我们提供程序的 路径 和 参数数组。...execv 的第一个参数是要执行的程序的完整路径或相对路径,后续参数是传递给程序的选项和参数,这些选项和参数通过一个数组来传递。数组的最后一个元素必须是 NULL,用来标识参数的结束。...unistd.h> int main() { // 创建一个参数数组 char *args[] = {"ls", "-l", "/home", NULL}; // 使用 execv...执行程序 /bin/ls execv("/bin/ls", args); // 如果 execv 执行失败,则打印错误信息 perror("execv failed"...execv 不会在 PATH 环境变量中查找程序,因此必须提供程序的 绝对路径 或 相对路径。在这个例子中,路径是 /bin/ls,表示我们要执行 ls 命令。

    8700

    审计 Linux 系统的操作行为的 5 种方案对比

    ; 无法记录 shell 脚本内的操作; 过滤规则可能单一; 可能需要不停的更新 bash 版本,工作量大,否则容易被发行版替换; snoopy 记录方式 snoopy 方式相对新颖,本质上是封装了 execv...目前大部分系统执行命令时都通过 execv,execve 系统调用执行,这点就和会话无关,几乎所有的情况下,只要通过这两个系统调用执行命令,就会将操作行为记录下来,从目前的最新版本(2.4.8)来看,snoopy...有几个优点: 难以绕过,只要设置了 PRELOAD,就肯定会记录; 无论是否存在 tty 会话,都会记录 execv,execve 相关的命令行操作,包含详细的进程上下文信息; 可以记录 shell...脚本内部的操作行为,脚本内的命令行操作大部分都会调用 execv,execve; 可以记录操作行为的参数, 比如指定了用户名,密码等; 过滤规则丰富,可以忽略指定 daemon,uid,也可以仅记录指定的...因为其提供了内核层面的支持,所以本质上比起 snoopy(仅封装 execv,execve 系统调用)要更加强大和健全。

    1.7K20
    领券