Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

posix-caps-ng

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

posix-caps-ng

node.js wrapper for the libcap-ng POSIX capabilities library

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

This is a node.js module that provides libcap-ng bindings to modify the capabilities of the current process.

The most likely use for this is obviously setting CAP_NET_BIND_SERVICE to enable binding to privileged ports such as 80 or 443.

To use a capability this the user running the program needs to have the capability, too. This can be achieved by using pam_cap and granting the capability via the /etc/security/capability.conf file.

Unfortunately the node binary also needs the capability - but only in its inheritable set. Executing setcap cap_net_bind_service+i /usr/bin/node as root does the job.

Usage:

var caps = require('posix-caps-ng');
caps.set_cap(caps.CAP_NET_BIND_SERVICE, caps.EFFECTIVE, true);

If the application does not start any child processes which also need this cap, it is a good idea to clear it from the inheritable set after enabling it and possibly also removing the cap altogether after binding to the privileged port:

caps.set_cap(caps.CAP_NET_BIND_SERVICE, caps.ALL, false);

Functions

  • bool has_cap(cap, type) - check if the given cap is set
  • bool set_cap(cap, types, set) - set/remove the given cap
  • bool clear_caps() - remove all caps
  • string get_caps(type) - get a string containing all set caps

type can be one of caps.EFFECTIVE, caps.PERMITTED, caps.INHERITABLE.
types can be any combination (binary OR) of those flags.

Keywords

FAQs

Package last updated on 26 Dec 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc