PR_SET_NO_NEW_PRIVS(2const)

PR_SET_NO_NEW_PRIVS2const

Set the calling thread's no_new_privs attribute

Usage

#include <linux/prctl.h>  /* Definition of PR_* constants */
#include <sys/prctl.h>

int prctl(PR_SET_NO_NEW_PRIVS, 1L, 0L, 0L, 0L);

Library

Standard C library (libc, -lc)

Overview

Set the calling thread's no_new_privs attribute. With no_new_privs set to 1, execve(2) promises not to grant privileges to do anything that could not have been done without the execve(2) call (for example, rendering the set-user-ID and set-group-ID mode bits, and file capabilities non-functional).

Once set, the no_new_privs attribute cannot be unset. The setting of this attribute is inherited by children created by fork(2) and clone(2), and preserved across execve(2).

Return value

On success, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.

Errors

EINVAL

The second argument is not equal to 1L.

Files

/proc/pid/status

Since Linux 4.10, the value of a thread's no_new_privs attribute can be viewed via the NoNewPrivs field in this file.

Releases

2 releases since Debian 13 (Trixie); the text changed 1 time.

  1. 13
  2. Arch

Standards

Linux.

History

Linux 3.5.

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.