|
@@ -18,9 +18,9 @@ Functionality is divided into a curated set of promises (described below), which
|
|
|
|
|
|
Note that `pledge()` can be called repeatedly to remove previously-pledged promises, but it can never regain capabilities once lost.
|
|
|
|
|
|
-`promises` are applied to the current process, and will also be inherited by children created by [`fork`(2)](fork.md).
|
|
|
+`promises` are applied to the current process, and will also be inherited by children created by [`fork`(2)](help://man/2/fork).
|
|
|
|
|
|
-`execpromises` are applied if/when a new process image is created with [`exec`(2)](exec.md).
|
|
|
+`execpromises` are applied if/when a new process image is created with [`exec`(2)](help://man/2/exec).
|
|
|
|
|
|
If `promises` or `execpromises` is null, the corresponding value is unchanged.
|
|
|
|
|
@@ -35,25 +35,25 @@ If the process later attempts to use any system functionality it has previously
|
|
|
* `id`: Ability to change UID/GID
|
|
|
* `tty`: TTY related functionality
|
|
|
* `proc`: Process and scheduling related functionality
|
|
|
-* `exec`: The [`exec`(2)](exec.md) syscall
|
|
|
+* `exec`: The [`exec`(2)](help://man/2/exec) syscall
|
|
|
* `unix`: UNIX local domain sockets
|
|
|
* `inet`: IPv4 domain sockets
|
|
|
-* `accept`: May use [`accept`(2)](accept.md) to accept incoming socket connections on already listening sockets (\*)
|
|
|
+* `accept`: May use [`accept`(2)](help://man/2/accept) to accept incoming socket connections on already listening sockets (\*)
|
|
|
* `rpath`: "Read" filesystem access
|
|
|
* `wpath`: "Write" filesystem access
|
|
|
* `cpath`: "Create" filesystem access
|
|
|
* `dpath`: Creating new device files
|
|
|
* `chown`: Changing file owner/group
|
|
|
* `fattr`: Changing file attributes/permissions
|
|
|
-* `video`: May use [`ioctl`(2)](ioctl.md) and [`mmap`(2)](mmap.md) on framebuffer video devices
|
|
|
+* `video`: May use [`ioctl`(2)](help://man/2/ioctl) and [`mmap`(2)](help://man/2/mmap) on framebuffer video devices
|
|
|
* `settime`: Changing the system time and date
|
|
|
* `setkeymap`: Changing the system keyboard layout (\*)
|
|
|
* `sigaction`: Change signal handlers and dispositions (\*)
|
|
|
* `sendfd`: Send file descriptors over a local socket
|
|
|
* `recvfd`: Receive file descriptors over a local socket
|
|
|
-* `ptrace`: The [`ptrace`(2)](ptrace.md) syscall (\*)
|
|
|
-* `prot_exec`: [`mmap`(2)](mmap.md) and [`mprotect`(2)](mprotect.md) with `PROT_EXEC`
|
|
|
-* `map_fixed`: [`mmap`(2)](mmap.md) with `MAP_FIXED` or `MAP_FIXED_NOREPLACE` (\*)
|
|
|
+* `ptrace`: The [`ptrace`(2)](help://man/2/ptrace) syscall (\*)
|
|
|
+* `prot_exec`: [`mmap`(2)](help://man/2/mmap) and [`mprotect`(2)](help://man/2/mprotect) with `PROT_EXEC`
|
|
|
+* `map_fixed`: [`mmap`(2)](help://man/2/mmap) with `MAP_FIXED` or `MAP_FIXED_NOREPLACE` (\*)
|
|
|
|
|
|
Promises marked with an asterisk (\*) are SerenityOS specific extensions not supported by the original OpenBSD `pledge()`.
|
|
|
|
|
@@ -69,5 +69,5 @@ The `pledge()` system call was first introduced by OpenBSD. The implementation i
|
|
|
|
|
|
## See also
|
|
|
|
|
|
-* [`unveil`(2)](unveil.md)
|
|
|
-* [`Mitigations`(7)](../man7/Mitigations.md)
|
|
|
+* [`unveil`(2)](help://man/2/unveil)
|
|
|
+* [`Mitigations`(7)](help://man/7/Mitigations)
|