This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit ddf38abe45889598ccedc4978f0a302216dc5538
Author: Abhishek Mishra <[email protected]>
AuthorDate: Thu Jul 16 18:55:41 2026 +0000

    Documentation: describe credential APIs and pseudo-fs ownership
    
    Document setreuid/setregid, getresuid/getresgid, and how inode_reserve
    assigns owner and group for pseudo-filesystem objects.
    
    Signed-off-by: Abhishek Mishra <[email protected]>
---
 Documentation/implementation/user_identity.rst | 29 ++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/Documentation/implementation/user_identity.rst 
b/Documentation/implementation/user_identity.rst
index ab7ecdaa6ca..5c9486901bd 100644
--- a/Documentation/implementation/user_identity.rst
+++ b/Documentation/implementation/user_identity.rst
@@ -59,6 +59,24 @@ the saved ID. Otherwise the function returns ``-1`` with 
``errno`` set to
 This implements the standard POSIX pattern of temporarily dropping privileges
 with ``seteuid()`` or ``setegid()`` and later restoring them to the saved 
value.
 
+``setreuid()`` and ``setregid()``
+---------------------------------
+
+These functions set the real and/or effective IDs in a single call. When the
+effective ID is zero, any requested real and effective values may be assigned
+and the saved set-ID is updated accordingly. When the effective ID is
+non-zero, each requested value must equal the current effective ID, saved
+set-ID, or (for the effective argument only) the real ID; otherwise the call
+returns ``-1`` with ``errno`` set to ``EPERM``. When the real ID is changed,
+or the effective ID is changed to a value not equal to the real ID, the saved
+set-ID is set to the new effective ID.
+
+``getresuid()`` and ``getresgid()``
+-----------------------------------
+
+These functions return the real, effective, and saved set-IDs for the calling
+task group. Any output pointer may be ``NULL`` if that ID is not needed.
+
 Configuration
 =============
 
@@ -69,3 +87,14 @@ Configuration
 ``CONFIG_FS_PERMISSION``
   Enables filesystem ownership and permission enforcement. Requires
   ``CONFIG_SCHED_USER_IDENTITY``.
+
+Pseudo-Filesystem Ownership
+===========================
+
+When ``CONFIG_PSEUDOFS_ATTRIBUTES`` and ``CONFIG_SCHED_USER_IDENTITY`` are both
+enabled, ``inode_alloc()`` assigns ``i_owner`` and ``i_group`` from the
+caller's effective credentials. This covers
+message queues (``mq_open()``), named semaphores (``sem_open()``), shared
+memory objects (``shm_open()``), FIFOs (``mkfifo()``), and pseudo-files
+created through the same inode reservation path. Open-time permission checks
+use ``inode_checkopenperm()`` (or ``inode_checkperm()`` for message queues).

Reply via email to