.\" -*- coding: UTF-8 -*- .\" Copyright 1992, Drew Eckhardt .\" Copyright 2006-2014, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH chmod 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم chmod, fchmod, fchmodat \- تغيير أذونات ملف .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint chmod(const char *\fP\fIpath\fP\fB, mode_t \fP\fImode\fP\fB);\fP \fBint fchmod(int \fP\fIfd\fP\fB, mode_t \fP\fImode\fP\fB);\fP .P \fB#include \fP /* تعريف ثوابت AT_* */ \fB#include \fP .P \fBint fchmodat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpath\fP\fB, mode_t \fP\fImode\fP\fB, int \fP\fIflags\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P .nf .\" || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) .\" || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) \fBfchmod\fP(): منذ glibc 2.24: _POSIX_C_SOURCE >= 199309L glibc 2.19 إلى glibc 2.23 _POSIX_C_SOURCE glibc 2.16 إلى glibc 2.19: _BSD_SOURCE || _POSIX_C_SOURCE glibc 2.12 إلى glibc 2.16: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200809L glibc 2.11 وما قبله: _BSD_SOURCE || _XOPEN_SOURCE >= 500 .fi .P \fBfchmodat\fP(): .nf منذ glibc 2.10: _POSIX_C_SOURCE >= 200809L قبل glibc 2.10: _ATFILE_SOURCE .fi .SH الوصف تغير استدعاءات النظام \fBchmod\fP() و \fBfchmod\fP() بتات وضع الملف. (يتكون وضع الملف من بتات أذونات الملف بالإضافة إلى بتات set\-user\-ID و set\-group\-ID و sticky.) تختلف استدعاءات النظام هذه فقط في كيفية تحديد الملف: .IP \[bu] 3 يغير \fBchmod\fP() وضع الملف المحدد الذي يُعطى اسم مساره في \fIpath\fP، والذي يُفك مرجعه إذا كان رابطًا رمزيًا. .IP \[bu] يغير \fBfchmod\fP() وضع الملف المشار إليه بواصف الملف المفتوح \fIfd\fP. .P يُحدد وضع الملف الجديد في \fImode\fP، وهو قناع بتات يُنشأ بجمع صفر أو أكثر مما يلي بعملية OR: .TP 18 \fBS_ISUID\fP (04000) set\-user\-ID (تعيين معرف المستخدم الفعّال للعملية عند \fBexecve\fP(2)) .TP \fBS_ISGID\fP (02000) set\-group\-ID (تعيين معرف المجموعة الفعّال للعملية عند \fBexecve\fP(2); القفل الإلزامي، كما هو موصوف في \fBfcntl\fP(2); أخذ مجموعة ملف جديد من الدليل الأب، كما هو موصوف في \fBchown\fP(2) و \fBmkdir\fP(2)) .TP \fBS_ISVTX\fP (01000) البت اللاصق (علم الحذف المقيد، كما هو موصوف في \fBunlink\fP(2)) .TP \fBS_IRUSR\fP (00400) قراءة من المالك .TP \fBS_IWUSR\fP (00200) كتابة من المالك .TP \fBS_IXUSR\fP (00100) تنفيذ/بحث من المالك (ينطبق "بحث" على الأدلة، ويعني أنه يمكن الوصول إلى الإدخالات داخل الدليل) .TP \fBS_IRGRP\fP (00040) قراءة من المجموعة .TP \fBS_IWGRP\fP (00020) كتابة من المجموعة .TP \fBS_IXGRP\fP (00010) تنفيذ/بحث من المجموعة .TP \fBS_IROTH\fP (00004) قراءة من قبل الآخرين .TP \fBS_IWOTH\fP (00002) كتابة من قبل الآخرين .TP \fBS_IXOTH\fP (00001) تنفيذ/بحث من قبل الآخرين .P يجب أن يتطابق UID الفعال للعملية المستدعية مع مالك الملف، أو يجب أن تكون العملية مميزة (لينكس: يجب أن تمتلك القدرة \fBCAP_FOWNER\fP). .P إذا لم تكن العملية المستدعية مميزة (لينكس: لا تمتلك القدرة \fBCAP_FSETID\fP)، ولم تتطابق مجموعة الملف مع معرف المجموعة الفعال للعملية أو أحد معرفات مجموعاتها الإضافية، فسيتم إيقاف بت \fBS_ISGID\fP، لكن هذا لن يتسبب في إرجاع خطأ. .P كإجراء أمني، اعتمادًا على نظام الملفات، قد يتم إيقاف بتات تنفيذ set\-user\-ID و set\-group\-ID إذا تمت كتابة ملف. (في لينكس، يحدث هذا إذا لم تمتلك عملية الكتابة القدرة \fBCAP_FSETID\fP.) في بعض أنظمة الملفات، يمكن للمستخدم الفائق فقط تعيين البت اللاصق، والذي قد يكون له معنى خاص. بالنسبة للبت اللاصق، وبتات set\-user\-ID و set\-group\-ID على الدلائل، انظر \fBinode\fP(7). .P .\" .\" في أنظمة ملفات NFS، سيؤثر تقييد الأذونات فورًا على الملفات المفتوحة بالفعل، لأن التحكم في الوصول يتم على الخادم، لكن الملفات المفتوحة تُحتفظ بها من قبل العميل. قد يتأخر توسيع الأذونات للعملاء الآخرين إذا تم تمكين التخزين المؤقت للسمات عليهم. .SS fchmodat() تعمل استدعاء النظام \fBfchmodat\fP() بنفس طريقة \fBchmod\fP() تمامًا، باستثناء الاختلافات الموصوفة هنا. .P إذا كان \fIpath\fP نسبيًا، فسيتم تفسيره نسبة إلى الدليل المشار إليه بواسطة واصف الملف \fIdirfd\fP (بدلاً من نسبته إلى دليل العمل الحالي للعملية المستدعية، كما تفعل \fBchmod\fP() لمسار نسبي). .P إذا كان \fIpath\fP نسبيًا وكان \fIdirfd\fP هو القيمة الخاصة \fBAT_FDCWD\fP، فسيتم تفسير \fIpath\fP نسبة إلى دليل العمل الحالي للعملية المستدعية (مثل \fBchmod\fP()). .P إذا كان المسار \fIpath\fP مطلقاً، فُيتجاهل \fIdirfd\fP. .P يمكن أن يكون \fIflags\fP إما 0، أو يتضمن الأعلام التالية: .TP \fBAT_EMPTY_PATH\fP (منذ لينكس 6.6) .\" commit 5daeb41a6fc9d0d81cb2291884b7410e062d8fa1 .\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed إذا كان \fIpath\fP سلسلة فارغة، فسيُعمل على الملف الذي يشير إليه \fIdirfd\fP (والذي ربما تم الحصول عليه باستخدام الراية \fBO_PATH\fP في \fBopen\fP(2)). في هذه الحالة، يمكن لـ \fIdirfd\fP أن يشير إلى أي نوع من الملفات، وليس فقط المجلدات. وإذا كان \fIdirfd\fP هو \fBAT_FDCWD\fP، فسيُنادى على مجلد العمل الحالي. هذه الراية خاصة بلينكس؛ عرّف \fB_GNU_SOURCE\fP للحصول على تعريفها. .TP \fBAT_SYMLINK_NOFOLLOW\fP إذا كان \fIpath\fP رابطًا رمزيًا، لا تقم بإلغاء الإشارة إليه: بدلاً من ذلك، تعامل مع الرابط نفسه. .P انظر \fBopenat\fP(2) لشرح الحاجة إلى \fBfchmodat\fP(). .SH "قيمة الإرجاع" عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء اعتماداً على نظام الملفات، قد تُرَد أخطاء أخرى غير تلك المذكورة أدناه. .P الأخطاء الأكثر عمومية لـ \fBchmod\fP() مدرجة أدناه: .TP \fBEACCES\fP أُذونات البحث مرفوضة في أحد مكونات بادئة المسار. (انظر أيضًا \fBpath_resolution\fP(7).) .TP \fBEBADF\fP (\fBfchmod\fP()) واصف الملف \fIfd\fP غير صالح. .TP \fBEBADF\fP (\fBfchmodat\fP()) \fIpath\fP نسبي لكن \fIdirfd\fP ليس \fBAT_FDCWD\fP ولا واصف ملف صالح. .TP \fBEFAULT\fP المسار \fIpath\fP يشير إلى خارج مساحة العناوين التي يمكن الوصول إليها. .TP \fBEINVAL\fP (\fBfchmodat\fP()) علم غير صالح محدد في \fIflags\fP. .TP \fBEIO\fP حدث خطأ إدخال/إخراج. .TP \fBELOOP\fP وُجد عدد كبير جدًا من الوصلات الرمزية أثناء تحليل \fIpath\fP. .TP \fBENAMETOOLONG\fP المسار \fIpath\fP طويل جداً. .TP \fBENOENT\fP الملف غير موجود. .TP \fBENOMEM\fP ذاكرة النواة المتوفرة غير كافية. .TP \fBENOTDIR\fP أحد مكونات بادئة المسار ليس دليلاً. .TP \fBENOTDIR\fP (\fBfchmodat\fP()) \fIpath\fP نسبي و \fIdirfd\fP هو واصف ملف يشير إلى ملف غير دليل. .TP \fBENOTSUP\fP (\fBfchmodat\fP()) \fIflags\fP حدد \fBAT_SYMLINK_NOFOLLOW\fP، وهو غير مدعوم. .TP \fBEPERM\fP لا يتطابق UID الفعال مع مالك الملف، والعملية ليست مميزة (لينكس: لا تمتلك القدرة \fBCAP_FOWNER\fP). .TP \fBEPERM\fP الملف معلم بأنه غير قابل للتغيير أو للإلحاق فقط. (انظر \fBFS_IOC_SETFLAGS\fP(2const).) .TP \fBEROFS\fP الملف المسمى يقع في نظام ملفات للقراءة فقط. .SH الإصدارات .SS "الاختلافات بين مكتبة C والنواة" تنفذ دالة الغلاف \fBfchmodat\fP() لمكتبة GNU C الواجهة المحددة بواسطة POSIX الموصوفة في هذه الصفحة. تختلف هذه الواجهة عن استدعاء النظام الأساسي للينكس، الذي \fIلا\fP يحتوي على وسيطة \fIflags\fP. .SS "ملاحظات glibc" على النوى الأقدم حيث \fBfchmodat\fP() غير متوفرة، تتراجع دالة غلاف glibc إلى استخدام \fBchmod\fP(). عندما يكون \fIpath\fP اسم مسار نسبي، تقوم glibc ببناء اسم مسار بناءً على الرابط الرمزي في \fI/proc/self/fd\fP الذي يتوافق مع وسيطة \fIdirfd\fP. .SH المعايير POSIX.1\-2024. .SH التاريخ .TP \fBchmod\fP() SVr4, POSIX.1\-1988, 4.4BSD. .TP \fBfchmod\fP() SVr4, 4.4BSD, SUSv1, POSIX.1\-1996. .TP \fBfchmodat\fP() POSIX.1\-2008. لينكس 2.6.16،‏ glibc 2.4. .TP \fBAT_SYMLINK_NOFOLLOW\fP POSIX.1\-2008، glibc 2.32، لينكس 6.5. .SH "انظر أيضًا" \fBchmod\fP(1)، \fBchown\fP(2)، \fBexecve\fP(2)، \fBopen\fP(2)، \fBstat\fP(2)، \fBinode\fP(7)، \fBpath_resolution\fP(7)، \fBsymlink\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 .