问题标签 [setuid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
301 浏览

c++ - 在 C++ 中将 UID 设置为非 root 用户

我正在 Ubuntu 11.04 上的 NetBeans 6.9 上使用 C++ 进行开发。我正在进行一个 system() 调用,我希望将其称为用户“peter”而不是 root。我明白那个

将用户设置为root,但如何将用户设置为peter?

谢谢,彼得。

0 投票
1 回答
509 浏览

c - 在 linux 中调用 setgid 和 setuid 后,我无法访问属于某个组的文件

让我们添加一个新组和用户并将其添加到系统组中video

创建一个文件并将其所有者更改为 root 并将组更改为video

现在考虑一个用 C 编写的简单应用程序,使用setgid()setuid()

编译完成后,我们可以以普通用户的身份运行它:

失败是因为我们没有setgid的权限所以直接作为mydaemon运行:

好的,我可以做到(我是同一个用户)并且可以按预期打开setgid文件setuid

现在以 root 身份运行它:

我可以setgid,并且setuid说我正在作为 mydaemon 运行,但我无法打开文件。(errno 13 是 EACCES:权限被拒绝)getgidgetuid

问题出在哪里?

0 投票
0 回答
138 浏览

centos - 使用 adjtime() 作为非特权用户

我正在运行 CentOS 5.4,想知道是否有任何方法可以将“adjtime()”系统调用作为非 root 用户使用。

提前感谢,非常感谢

0 投票
2 回答
5667 浏览

c - 非 root 用户的 setuid 等效项

Linux 是否有一些类似于setuid的 C 接口,它允许程序使用例如用户名/密码切换到不同的用户?setuid的问题在于它只能由超级用户使用。

我正在运行一个简单的 Web 服务,该服务需要以登录用户身份执行作业。所以主进程以root身份运行,用户登录后分叉并调用setuid切换到合适的uid。但是,我对以 root 身份运行的主 proc 不太满意。我宁愿让它作为另一个用户运行,并有一些机制可以切换到另一个类似的用户su(但不启动新进程)。

0 投票
2 回答
3567 浏览

c - C通过Makefile设置可执行权限

我正在使用 Makefile 来编译我的 C 程序并想要制作可执行的 setuid。如何使用 Makefile 设置权限?

0 投票
1 回答
2779 浏览

bash - /bin/sh does not drop privileges

Hello stackoverflow guys,

I have written a C program that simply invokes a bash shell using system("/bin/bash")

If i enable the setuid permission bit and execute the program, the invoked shell does not have euid set to 0. This is ok, because we know that bash shell drop privileges.

BUT if i change /bin/sh to point to /bin/bash using sudo ln -s /bin/bash /bin/sh

and then execute system with /bin/sh as an argument then the new invoked shell has euid=0.

I am working on ubuntu 10.04

Why this happens?

0 投票
1 回答
1022 浏览

linux - Set-user-id 位在 Linux 上如何工作?

我有以下“根文件”,其内容如下:

以下是此文件的权限:

由于为此文件设置了 set-user-id 位,我希望在执行此文件时,即使非 root 用户执行有效 uid 也会显示为 0(因为 set-user-id 位会导致使用文件所有者的有效用户 ID(在本例中为 root)执行的进程。但是,相反,我在从非根 shell 执行“根文件”时得到以下输出。

此文件/或脚本未使用有效用户 ID 0 执行。为什么会这样?

0 投票
2 回答
1547 浏览

c - 带有 setuid/功能的 stdbuf

我正在读取另一个生成输出(缓慢且无限)的进程的输出。因为我想实时读取这些数据,所以我使用“stdbuf -oL”(行缓冲,数据是文本)。我无法控制生成过程,因此我无法修改源以强制刷新。

到目前为止 stdbuf 工作得很好,但是该进程使用 SOCK_RAW 并且需要以 root 身份运行,具有 setuid(0) 或cap_net_raw功能。当使用 setuid 或功能以非 root 身份运行时,stdbuf 似乎被忽略了。让我演示一下这个问题:

这是一个简单的作家:

和一个简单的读者:

正如预期的那样,./writer | ./reader在缓冲区填满之前,什么都不显示。前置stdbuf -oL启用行缓冲,我将这些行输入阅读器:

但是,如果我添加cap_net_raw+ep它会停止工作:

使用 setuid 时观察到相同的行为:

我有兴趣了解为什么会发生这种情况以及如何在不以 root 身份运行的情况下继续使用 stdbuf。我承认我并不完全了解 setuid 在幕后所做的事情。

0 投票
2 回答
1208 浏览

linux - setuid 不生效

假设有用户 A 和 B,属于不同的组。并且其中的机器人不是root

首先,作为用户 A。

然后切换到用户 B,我的假设是用户 B 可以成功运行二进制文件并获得问候语“hello word”,但是当我实际以用户 B 身份运行二进制文件时,我得到了“权限被拒绝”。所以为什么?

0 投票
1 回答
311 浏览

linux - Linux 功能如何与零/非零 UID 相关?

功能手册页相当长,我不完全理解某些内容。

例如,一个决定我们是否可以访问 CAP_NET_RAW 的函数会是什么样子?

输入:

  • a = 有效 uid 为 0
  • b = 有一些真实的/保存的/任何 uid 为 0
  • c = CAP_NET_RAW 为 +e
  • d = CAP_NET_RAW 为 +i
  • e = CAP_NET_RAW 为 +p
  • f = CAP_NET_RAW 被排除在“边界集”之外

输出:

  • x = 我们现在可以调用socket而不是得到 EPERM
  • y = 经过一些诡计(不涉及基于文件系统chmod +ssetcap访问提升或连接到外部助手),例如,capsetp我们终于可以让自己打开原始套接字。

据我目前了解,它是这样的:

  • x = !f && (a || c)
  • y = !f && (b || a || c || e)

实际情况如何?