例如,假设您想要设置/usr/bin/example程序具有网络访问的能力,可以使用以下命令: sudo setcap cap_net_admin+eip /usr/bin/example 复制代码 确认权限已经成功设置。您可以使用getcap命令来验证程序的权限设置,例如: getcap /usr/bin/example 复制代码 如果您需要删除程序的权限设置,可以使用以下命令: sudo setcap ...
我们将CAP_NET_ADMIN授权给iptables程序,注意我们也要将CAP_NET_RAW授权给iptables,CAP_NET_RAW我们后面再解释,如下: setcap cap_net_admin,cap_net_raw=eip /sbin/iptables-multi 此时就可以用普通用户来管理防火墙了,如下: /sbin/iptables -A INPUT -p tcp -j ACCEPT /sbin/iptables -L -n Chain INPUT (...
1)cap_chown=eip是将chown的能力以cap_effective(e),cap_inheritable(i),cap_permitted(p)三种位图的方式授权给相关的程序文件. 2)如果改变文件名,则能力保留到新文件. 3)用setcap -r /bin/chown可以删除掉文件的能力. 4)重新用setcap授权将覆盖之前的能力. 六)CAP_DAC_OVERRIDE 1(忽略对文件的所有DAC访问...
sudo setcap cap_net_bind_service=+eip 绝对路径的应用程序地址
# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/dumpcap 那么setcap 是个啥玩意呢? 从前,要使被普通用户执行的某个程序有特殊权限,一般我们会给这个程序设置suid,于是普通用户执行该程序时就会以root的身份来执行。 比如,/usr/bin/passwd 这个可执行文件就带有suid,普通用户执行它时会以root身份执行...
setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap 完成。 可以使用 getcap /usr/bin/dumpcap验证,输出应当是:/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip 实例说明1:非root用户对小于1024端口的提权 对于编译安装的nginx,路径/tmp/nginx ...
chmod 4750 /usr/bin/dumpcap 3.赋予权限。 setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap 完成。 可以使用 getcap /usr/bin/dumpcap验证,输出应当是:/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip 现在就可以从自己的普通用户启动Wireshark抓包了...
/sbin/ip cap_net_admin=eip ~ $ /sbin/ip addr add 10.10.10.10/32 dev lo RTNETLINK answers: Operation not permitted The/sbin/iphas cap_net_admin=eip and this works on earlier version. We have a requirement on non-root containers but we must use theipcommand in multi-network setups. ...
如果在普通用户下使用特权端口将会报错。...使用 setcap 命令让指定程序拥有绑定端口的能力,这样即使程序运行在普通用户下,也能够绑定到 1024 以下的特权端口上。...# 给指定程序设置 CAP_NET_BIND_SERVICE 能力 $ setcap cap_net_bind_service=+eip /path/to/application 下面我们来看一个实例,...$ setcap ...
更优雅的处理方案问题终于解决了,偶然在kong的开源端点上发现有人为解决该问题,发了一个PR,看PR的代码,是通过判断一个环境变量来决定是否调用setcap命令的,而且还考虑了setcap作用被覆盖的场景...看man文档的技巧有时看到一个命令的用法,觉得很陌生,可以使用man命令快速学习一下。...命令里+eip是什么意思了 $ ...