setcap

 

2022-12-15

允许非 root 用户绑定 1024 以下端口(包含 80):

Terminal window
1
# 应用路径不能是软链接
2
setcap 'cap_net_bind_service=+ep' /path/to/program
3
4
# 有另一种是写 eip, 目前不知道两者的区别
5
setcap 'cap_net_bind_service=+eip' /path/to/program
  • e (effective):指 cap_net_bind_service 权限。
  • i (inheritable) :可以将 cap_net_bind_service 权限传递给它所启动的子进程
  • p (permitted) :程序在执行时可以使用 cap_net_bind_service 权限。

查看是否配置成功

Terminal window
1
getcap /path/to/program

删除

Terminal window
1
sudo setcap 'cap_net_bind_service=-ep' /path/to/program

参考