【发布时间】:2020-02-14 08:30:31
【问题描述】:
我以用户身份运行我的服务(给予正确的权限并添加到适当的组),但如果我愿意,我也可以以 root 身份运行它。 如何禁用此系统范围而不是单个应用程序?
【问题讨论】:
-
使用哪种编程语言?
-
我们不能防止 root 运行程序,但我们可以在到达用户代码后添加代码来纠正这种情况。 C 语言中最简单的方法是调用
setuid()系列调用之一来更改(例如)“nobody”用户。如果进程没有足够的特权,setuid将失败(我们可以忽略它返回的错误),但如果它以 root 身份运行,它将不再这样做。 -
是否有任何设置可以在系统上全局设置而不是在应用程序本身上进行编程?
-
那将是Server Fault 或Unix & Linux 问题(但我认为答案是否定的)。
标签: linux root systemd user-permissions