相关疑难解决方法(0)

以编程方式写入具有 root 权限的文件的最安全方法是什么?

一个巨大的应用程序需要在某个特定时间对需要 root 权限的文件执行少量写入。它不是真正的文件,而是作为文件暴露给 Linux 的硬件接口。

为了避免为整个应用程序授予 root 权限,我编写了一个 bash 脚本来执行关键任务。例如,以下脚本将启用硬件接口的端口 17 作为输出:

echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
Run Code Online (Sandbox Code Playgroud)

但是,由于suid我系统上的 bash 脚本被禁用,我想知道实现这一目标的最佳方法是什么。

  1. 使用此处介绍的一些解决方法

  2. sudo从主应用程序调用脚本,并相应地编辑 sudoers 列表,以避免在调用脚本时需要密码。授予 sudo 权限让我有点不舒服echo

  3. 只需编写一个 C 程序,使用fprintf,并将其设置为 suid root。对字符串和文件名进行硬编码,并确保只有 root 可以编辑它。或者从文本文件中读取字符串,同样确保没有人可以编辑该文件。

  4. 我没有想到的其他一些解决方案比上面介绍的更安全或更简单?

setuid privileges

35
推荐指数
4
解决办法
4006
查看次数

标签 统计

privileges ×1

setuid ×1