相关疑难解决方法(0)

如何使用 capsh:我正在尝试以最少的功能运行无特权的 ping

我正在 Debian Gnu/Linux 上试验功能。

我已将 /bin/ping 复制到我当前的工作目录。正如预期的那样,它不起作用,它最初是 setuid root。

然后,我通过执行 来为我的 ping 提供最小的功能(不是 root)sudo /sbin/setcap cap_net_raw=ep ./ping,并且我的 ping 可以正常工作。

然后sudo /sbin/setcap -r ./ping撤销那个能力。它现在没有按预期工作。

我现在尝试使用capsh.

capsh 没有权限,所以我需要以 root 身份运行它,然后删除 root 并因此删除所有其他权限。

我想我也需要secure-keep-caps,这在 中没有记录capsh,但在能力手册中。我从/usr/include/linux/securebits.h. 它们看起来是正确的,因为输出--print显示这些位是正确的。

我已经摆弄了几个小时,到目前为止我有这个。

sudo /sbin/capsh --keep=1 --secbits=0x10 --caps="cap_net_raw+epi" == --secbits=0x10 --user=${USER} --print -- -c "./ping localhost"

但是ping有错误ping: icmp open socket: Operation not permitted,这是当它没有能力,会发生什么。也--print说明了Current: =p cap_net_raw+i,这还不够我们需要e。 …

capabilities

24
推荐指数
4
解决办法
1万
查看次数

尽管 procs 是以普通用户身份启动的,但什么原因导致 /proc/<pid>/* 资源被 root 拥有?

我注意到某些/proc/<pid>/proc ,例如 bash,其全部资源都可以由创建该 proc 的用户读取。然而,其他 proc,例如 chrome 或 gnome-keyring-daemon,它们的大部分/proc/<pid>/资源只能由 root 访问,尽管进程本身由普通用户拥有并且没有调用 suid。

我对内核进行了一番挖掘,发现如果任务缺少“可转储”标志,则 /proc/ 内容会受到限制,但是我很难理解在哪些情况下任务变得不可转储(setuid 情况除外,这不适用于 chrome 或 gnome-keyring):

https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/fs/proc/base.c#L1532

有没有人愿意帮助我了解底层机制及其原因?

谢谢!

编辑:

找到了一个关于为什么您不想让gnome-keyring-daemon您的用户转储您的 SSH 代理(例如)的好文档。仍然不确定如何 gnome-keyring-daemon使自己无法倾倒。

https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/Documentation/security/Yama.txt#L30

linux process kernel proc

7
推荐指数
1
解决办法
1488
查看次数

/proc/$PID 中的文件(例如 ssh-agent、Chrome)不归用户所有,而是归 root 所有

我只是在回答另一个问题在这里:-),因此一看-看看在/proc/$PID/fdssh-agent,以找出它使用套接字。但我不能。我很惊讶地注意到大多数文件和目录都属于 root。ssh-agent作为我的用户运行(它的父进程也是如此)并且没有安装 SUID root。我无法找出 KDE 的确切启动位置。我好奇; 有人可以告诉我这里发生了什么吗?

或者这根本与用户无关,进程是否可以使用一些内核魔法/proc来向公众(甚至同一用户的其他进程)隐藏(大部分)他们的信息?

我刚刚检查了/proc/$PID/fd我所有的进程,并注意到这ssh-agent不是唯一具有这个奇怪属性的进程。其他的是一堆 Chrome 进程和kdesud(也没有 SUID 根二进制文件)。

linux security permissions proc linux-kernel

4
推荐指数
1
解决办法
2135
查看次数

如何读取具有linux能力的进程的/proc/&lt;pid&gt;/fd目录?

作为非 root 用户,我正在运行一个进程。进程二进制文件被赋予了 cap_sys_resource 能力。即使该进程由同一用户拥有,该用户也无法读取其 /proc//fd 目录。/proc/pid 中的权限如下所示:

dr-xr-xr-x.   9 ec2-user ec2-user 0 May 12 01:03 .
dr-xr-xr-x. 249 root     root     0 Apr  3 13:34 ..
dr-xr-xr-x.   2 ec2-user ec2-user 0 May 12 01:03 attr
-rw-r--r--.   1 root     root     0 May 12 01:04 autogroup
-r--------.   1 root     root     0 May 12 01:03 auxv
-r--r--r--.   1 root     root     0 May 12 01:04 cgroup
--w-------.   1 root     root     0 May 12 01:04 clear_refs
-r--r--r--.   1 root     root     0 May 12 01:03 cmdline …
Run Code Online (Sandbox Code Playgroud)

root permissions proc not-root-user capabilities

4
推荐指数
1
解决办法
7440
查看次数