linux-capabilities相关内容
我正在使用Ubuntu 18.04 Desktop。以下是有关我的问题的更多详细信息。 最近,我正在编写一些想要执行此操作的测试代码:当它以非特权用户身份运行时,测试代码会尝试绑定一个特权端口(在我的示例中是端口1),并期望绑定失败。 在我的主机上,我的当前非特权用户有以下capsh --print输出: Current: = Bounding set =cap_chown,ca
..
我处于一个困难的境地,我不知道一个进程需要什么 linux 功能才能工作.最好的方法是什么,或者有什么方法可以找出需要什么上限? 我现在唯一能想到的就是使用 capsh 并删除进程的所有大写字母.然后这个过程失败了,我开始添加大写(通过删除 --drop=CAP_XZY)直到它起作用. 有什么更好的建议吗? 解决方案 基于最近的 libcap2 更新 1:(短选项):ge
..
在我的开发箱上有这个限制是很烦人的,因为除了我之外永远不会有任何用户. 我知道标准解决方法,但它们都没有完全按照我要: authbind(Debian 测试中的版本,1.0,仅支持 IPv4) 使用 iptables REDIRECT 目标将低端口重定向到高端口(ip6tables 还没有实现“nat"表,iptables 的 IPv6 版本) sudo(我试图避免以 root 身
..
我的要求 我的 python 服务器在 RHEL 上以普通用户身份运行但它需要在它无权访问的地方创建文件/目录.还需要使用随机 UID/GID 来 chown 那些文件 我的方法 在只有功能的环境中尝试这个,没有 setuid.我正在尝试使用 cap_chown 和 cap_dac_override 功能.但是我完全不知道如何让它在 systemctl 类型的环境中工作 目
..
我想知道是否有可能在没有 root 权限的情况下运行 Scapy 的“嗅探(...)". 它用于捕获某些包的应用程序中.但我不想使用 root 权限运行整个应用程序或更改 scapy 本身的任何内容. 提前致谢! 编辑: 为了测试,我使用以下代码: from scapy.all import *def arp_monitor_callback(pkt):如果 pkt 中的
..
我有以下简单的测试程序来创建UDP套接字,并使用 SO_BINDTODEVICE 将其绑定到特定的接口,这样我就可以 bind()了,因此INADDR_ANY 专门在该接口上接收UDP广播. //文件名:bindtest.c#include#include#include#include#inc
..
我正在调试使用libnetfilter_queue的程序.该文档指出,用户空间队列处理应用程序需要CAP_NET_ADMIN功能才能运行.我已经使用setcap实用程序完成了此操作,如下所示: $ sudo setcap cap_net_raw,cap_net_admin=eip ./a.out 我已经验证了以下功能的正确应用:a)程序正常运行,b)getcap返回以下输出: $
..
我能够使用以下命令启动运行systemd的docker容器 sudo docker run -it -p 8022:22 -e container = docker debug-image / sbin / init 但是,gdb无法在其中调试C进程这种环境,因为它缺少必需的 SYS_PTRACE 功能。 我尝试添加- cap-add = SYS_PTRACE
..
我有一个Qt项目,该项目使用一个在我的系统上可以正常编译的插件接口。但是,当在docker中编译同一项目时,它停止使用Qt 5.10.1,给出消息 Error:Undefined interface 。在运行 moc 的某些 strace 之后,发现找不到定义该接口的头文件,因为包含文件路径上的 statx 调用始终返回 EPERM 。文档甚至都没有提到如何产生此错误。 docker run
..
我们在用于监视网络接口流量的服务器上安装了Java 11. 初始安装(yum install java-11-openjdk-devel.x86_64)后,java命令对于 root 和常规用户都可以正常使用. 但是,我们的Java应用程序将不会以root身份运行.然后,我们运行: setcap cap_net_raw,cap_net_admin=eip /path/to/jav
..
我想给Linux提供几个文件功能(例如CAP_NET_ADMIN). 我正在使用Yocto,并且我的文件系统应为只读文件,并且在刷新软件后不得更改(这意味着通常无法正常运行的带有setcap的pkg_postinst). 在启动目标之后,是否还有其他方法可以在不更改文件结构的情况下为文件提供功能? 在构建只读rootfs时,已经执行了 解决方案 pkg_postinst脚本,因此该方法
..
我处在一个困难的情况下,我不知道一个进程需要什么Linux功能才能工作. 最好的方法是什么,或者找出所需的上限的任何方法? 我现在唯一能想到的就是使用capsh并删除进程中的所有大写字母.然后,该过程失败,我开始添加上限(通过删除--drop = CAP_XZY),直到它起作用为止. 还有更好的建议吗? 解决方案 我在此以下是示例输出: $ sudo /usr/share
..
我想使系统在没有setuid和文件"+ p"功能的情况下可用,并且通常没有在设置使用这种方法(init设置PR_SET_NO_NEW_PRIVS和基于文件系统的功能提升不再可能),您不能“重新填充"您的功能,而只需要注意不要“散布"它们. 如何在不“散布"任何授予的功能(例如,新程序的文件为setcap =ei)的情况下如何进行其他操作?只是“我相信这个新过程就像我相信自己一样".例如,为用
..
我使用LD_LIBRARY_PATH为应用程序设置某个用户库的路径.但是如果我在此应用程序上设置功能 sudo setcap CAP_NET_BIND_SERVICE=eip myapplication 然后LD_LIBRARY_PATH似乎被忽略了.当我启动该程序时,Linux抱怨它找不到某个共享库. 我猜想有某种保护措施可以防止具有扩展权限的应用程序被劫持.有解决方法吗?
..
Linux内核中似乎支持细粒度功能向进程授予特权以执行某些操作,例如打开原始套接字或提高线程优先级而未授予进程根特权. 但是我想知道是否有一种方法可以授予每用户功能.也就是说,允许非根和非suid进程获取那些功能. 解决方案 有limits.conf,可以通过它限制用户或组的某些资源. 签出 man limits.conf
..
当我之外再也没有其他用户时,在我的开发箱中设置此限制非常令人讨厌. 我知道标准变通办法,但是它们都不能完全发挥作用我想要: authbind (Debian测试版1.0,仅支持IPv4) 使用iptables REDIRECT目标将低端端口重定向到高端端口(尚未为iptables的IPv6版本ip6tables实现"nat"表) sudo(我想避免以root用户运行) SELin
..
我从ping二进制文件中删除了setuid位,并添加了cap_net_raw+p,如下所示: $ chmod 755 /bin/ping $ setcap cap_net_raw+p /bin/ping 然后我在一个终端中运行ping,并从另一个终端检查了正在运行的进程的/proc/$ PID/状态: $ ps aux | grep ping
..
我正在读取另一个生成输出(缓慢且无限)的进程的输出.因为我想实时读取此数据,所以我使用"stdbuf -oL"(行缓冲,数据为文本).我无法控制生成过程,因此无法修改源以强制刷新. 到目前为止,stdbuf可以正常工作,但是该进程使用SOCK_RAW,并且需要以root身份运行,具有setuid(0)或cap_net_raw功能.当使用setuid或功能以非root用户身份运行时,stdbu
..