cr_bsd_visible(9)

cr_bsd_visible9

Determine if subjects may see entities according to bsd security policies

Usage

#include <sys/proc.h>

int

cr_bsd_visible(struct ucred *u1, struct ucred *u2);

Overview

This function determines if a subject with credentials u1 is denied seeing an object or subject associated to credentials u2 by the following policies and associated sysctl(8) knobs:

security.bsd.seeotheruids

If set to 0, subjects cannot see other subjects or objects if they are not associated with the same real user ID. The corresponding internal function is cr_canseeotheruids(9).

security.bsd.seeothergids

If set to 0, subjects cannot see other subjects or objects if they are not both a member of at least one common group. The corresponding internal function is cr_canseeothergids(9).

security.bsd.see_jail_proc

If set to 0, subjects cannot see other subjects or objects that are not associated with the same jail as they are. The corresponding internal function is cr_canseejailproc(9).

As usual, the superuser (effective user ID 0) is exempt from any of these policies provided that the sysctl(8) variable security.bsd.suser_enabled is non-zero and no active MAC policy explicitly denies the exemption( see priv_check_cred(9)).

This function is intended to be used as a helper to implement cr_cansee(9) and similar functions.

Return values

This function returns zero if a subject with credentials u1 may see a subject or object with credentials u2 by the active above-mentioned policies, or ESRCH otherwise.

Errors

[ESRCH]

Credentials u1 and u2 do not have the same real user ID.

[ESRCH]

Credentials u1 and u2 are not members of any common group( as determined by realgroupmember(9)).

[ESRCH]

Credentials u1 and u2 are not in the same jail.

Releases

12 releases since FreeBSD 13.3-RELEASE; the text changed 1 time.

  1. 13.3–14.2
  2. 14.3–16.0

Authors

This function and its manual page were written by Olivier Certner ⟨[email protected]⟩.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.