setcap - Man Page
set file capabilities
Examples (TL;DR)
- Set capability
cap_net_raw
(to use RAW and PACKET sockets) for a given file:setcap 'cap_net_raw' path/to/file
- Set multiple capabilities on a file (
ep
behind the capability means "effective permitted"):setcap 'cap_dac_read_search,cap_sys_tty_config+ep' path/to/file
- Remove all capabilities from a file:
setcap -r path/to/file
- Verify that the specified capabilities are currently associated with the specified file:
setcap -v 'cap_net_raw' path/to/file
- The optional
-n root_uid
argument can be used to set the file capability for use only in a user namespace with this root user ID owner:setcap -n root_uid 'cap_net_admin' path/to/file
Synopsis
setcap [-q] [-n <rootuid>] [-v] {capabilities|-|-r} filename [ ... capabilitiesN fileN ]
Description
In the absence of the -v (verify) option setcap sets the capabilities of each specified filename to the capabilities specified. The optional -n <rootuid> argument can be used to set the file capability for use only in a user namespace with this root user ID owner. The -v option is used to verify that the specified capabilities are currently associated with the file. If -v and -n are supplied, the -n <rootuid> argument is also verified.
The capabilities are specified in the form described in cap_from_text(3).
The special capability string, '-', can be used to indicate that capabilities are read from the standard input. In such cases, the capability set is terminated with a blank line.
The special capability string, '-r', is used to remove a capability set from a file. Note, setting an empty capability set is not the same as removing it. An empty set can be used to guarantee a file is not executed with privilege in spite of the fact that the prevailing ambient+inheritable sets would otherwise bestow capabilities on executed binaries.
The '-f', is used to force completion even when it is in some way considered an invalid operation. This can affect '-r' and setting file capabilities the kernel will not be able to make sense of.
The -q flag is used to make the program less verbose in its output.
Exit Code
The setcap program will exit with a 0 exit code if successful. On failure, the exit code is 1.
Reporting Bugs
Please report bugs via:
https://bugzilla.kernel.org/buglist.cgi?component=libcap&list_id=1090757
See Also
capsh(1), cap_from_text(3), cap_get_file(3), capabilities(7), user_namespaces(7), captree(8), getcap(8) and getpcaps(8).
Referenced By
capabilities(7), cap_iab(3), capsh(1), getcap(8), getpcaps(8), libcap(3), nethogs(8).