.\" -*- coding: UTF-8 -*- .\" Copyright 1983-1991, The Regents of the University of California. .\" Copyright 2009-2015, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setreuid 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم setreuid, setregid \- تعيين معرف المستخدم أو المجموعة الحقيقي و/أو الفعّال .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint setreuid(uid_t \fP\fIruid\fP\fB, uid_t \fP\fIeuid\fP\fB);\fP \fBint setregid(gid_t \fP\fIrgid\fP\fB, gid_t \fP\fIegid\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBsetreuid\fP(), \fBsetregid\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* منذ glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE .fi .SH الوصف تضبط \fBsetreuid\fP() معرفي المستخدم الحقيقي والفعّال للعملية المستدعية. .P تزويد القيمة \-1 لأي من معرف المستخدم الحقيقي أو الفعّال يُجبر النظام على ترك ذلك المعرف دون تغيير. .P لا يُسمح للعمليات غير المميزة إلا بتعيين معرف المستخدم الفعّال إلى معرف المستخدم الحقيقي، أو معرف المستخدم الفعّال، أو معرف المستخدم المُعيَّن المحفوظ. .P لا يُسمح للمستخدمين غير المميزين إلا بتعيين معرف المستخدم الحقيقي إلى معرف المستخدم الحقيقي أو معرف المستخدم الفعّال. .P إذا تم تعيين معرف المستخدم الحقيقي (أي أن \fIruid\fP ليس \-1) أو تم تعيين معرف المستخدم الفعّال إلى قيمة لا تساوي معرف المستخدم الحقيقي السابق، فسيتم تعيين معرف المستخدم المُعيَّن المحفوظ إلى معرف المستخدم الفعّال الجديد. .P وبالمثل تمامًا، تضبط \fBsetregid\fP() معرفي المجموعة الحقيقي والفعّال للعملية المستدعية، وينطبق كل ما سبق مع استبدال "مستخدم" بـ "مجموعة". .SH "قيمة الإرجاع" عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .P \fIملاحظة\fP: هناك حالات قد يفشل فيها \fBsetreuid\fP() حتى عندما يكون UID المستدعي 0؛ إن إهمال التحقق من إرجاع الفشل من \fBsetreuid\fP() هو خطأ أمني جسيم. .SH الأخطاء .TP \fBEAGAIN\fP كان الاستدعاء سيغير معرف المستخدم الحقيقي (UID) للمستدعي (أي أن \fIruid\fP لا يطابق معرف المستخدم الحقيقي للمستدعي)، ولكن حدث فشل مؤقت في تخصيص هياكل بيانات النواة اللازمة. .TP \fBEAGAIN\fP لا يتطابق \fIruid\fP مع معرف المستخدم الحقيقي لـ المستدعِي وهذا الاستدعاء سيجعل عدد العمليات التابعة لمعرف المستخدم الحقيقي \fIruid\fP يتجاوز حد مورد \fBRLIMIT_NPROC\fP الخاص بـ المستدعِي. منذ لينكس 3.1، لم تعد حالة الخطأ هذه تحدث (لكن يجب على التطبيقات القوية التحقق من هذا الخطأ)؛ انظر وصف \fBEAGAIN\fP في \fBexecve\fP(2). .TP \fBEINVAL\fP واحد أو أكثر من معرفات المستخدم أو المجموعة المستهدفة غير صالح في فضاء أسماء المستخدم هذا. .TP \fBEPERM\fP العملية المستدعية ليست مميزة (على لينكس، لا تملك الإمكانية اللازمة في مساحة المستخدم الخاصة بها: \fBCAP_SETUID\fP في حالة \fBsetreuid\fP()، أو \fBCAP_SETGID\fP في حالة \fBsetregid\fP()) وتم تحديد تغيير غير (i) تبديل معرف المستخدم (المجموعة) الفعّال مع معرف المستخدم (المجموعة) الحقيقي، أو (ii) تعيين أحدهما إلى قيمة الآخر أو (iii) تعيين معرف المستخدم (المجموعة) الفعّال إلى قيمة معرف المستخدم المُعيَّن المحفوظ (معرف المجموعة المُعيَّن المحفوظ). .SH الإصدارات لا يحدد POSIX.1 جميع تغييرات UID التي يسمح بها لينكس لعملية غير مميزة. بالنسبة لـ \fBsetreuid\fP()، يمكن جعل معرف المستخدم الفعّال مساويًا لمعرف المستخدم الحقيقي أو معرف المستخدم المُعيَّن المحفوظ، وغير محدد ما إذا كانت العمليات غير المميزة قد تضبط معرف المستخدم الحقيقي إلى معرف المستخدم الحقيقي، أو معرف المستخدم الفعّال، أو معرف المستخدم المُعيَّن المحفوظ. بالنسبة لـ \fBsetregid\fP()، يمكن تغيير معرف المجموعة الحقيقي إلى قيمة معرف المجموعة المُعيَّن المحفوظ، ويمكن تغيير معرف المجموعة الفعّال إلى قيمة معرف المجموعة الحقيقي أو معرف المجموعة المُعيَّن المحفوظ. تختلف التفاصيل الدقيقة لتغييرات المعرف المسموح بها عبر التطبيقات. .P لا يقدم POSIX.1 أي تحديد حول تأثير هذه الاستدعاءات على معرف المستخدم المُعيَّن المحفوظ ومعرف المجموعة المُعيَّن المحفوظ. .SH المعايير POSIX.1\-2024. .SH التاريخ POSIX.1\-2001, 4.3BSD (ظهر لأول مرة في 4.2BSD). .P تعيين معرف المستخدم (المجموعة) الفعّال إلى معرف المستخدم المُعيَّن المحفوظ (معرف المجموعة المُعيَّن المحفوظ) ممكن منذ لينكس 1.1.37 (1.1.38). .P .\" استدعاءات النظام الأصلية \fBsetreuid\fP() و \fBsetregid\fP() في لينكس دعمت فقط معرفات المستخدم والمجموعة ذات 16 بت. لاحقًا، أضاف لينكس 2.4 \fBsetreuid32\fP() و \fBsetregid32\fP()، لدعم معرفات 32 بت. تتعامل دوال التغليف \fBsetreuid\fP() و \fBsetregid\fP() في glibc بشفافية مع الاختلافات عبر إصدارات النواة. .SS "الاختلافات بين مكتبة C والنواة" على مستوى النواة، معرفات المستخدم والمجموعة هي سمة لكل خيط. ومع ذلك، يتطلب POSIX أن تشترك جميع الخيوط في العملية في نفس بيانات الاعتماد. تعالج تطبيق الخيوط NPTL متطلبات POSIX من خلال توفير دوال تغليف لاستدعاءات النظام المختلفة التي تغير UIDs و GIDs للعملية. تستخدم دوال التغليف هذه (بما في ذلك تلك الخاصة بـ \fBsetreuid\fP() و \fBsetregid\fP()) تقنية قائمة على الإشارات لضمان أنه عندما يغير خيط واحد بيانات اعتماده، فإن جميع الخيوط الأخرى في العملية تغير أيضًا بيانات اعتمادها. للتفاصيل، انظر \fBnptl\fP(7). .SH "انظر أيضًا" \fBgetgid\fP(2), \fBgetuid\fP(2), \fBseteuid\fP(2), \fBsetgid\fP(2), \fBsetresuid\fP(2), \fBsetuid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBuser_namespaces\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .