الدالة chmod()‎ في PHP

من موسوعة حسوب
< PHP

(PHP 4, PHP 5, PHP 7)

تغيِّر الدالة chmod()‎ أذونات الملف.

الوصف

bool chmod ( string $filename , int $mode )

تغيِّر هذه الدالة أذونات الملف filename إلى النمط mode، يُشار عادةً إلى mode بالأذونات.

المعاملات

filename

مسار الملف الذي ستُجرى عليه العمليَّة.

mode

نمط الأذونات المحدَّد.

تُمثَّل الأذونات بالنظام الثماني ولا تفترض الدالة تلقائيًّا أنَّ العدد المُمرَّر إليها هو قيمة ثمانيَّة إلا إذا سُبقت تلك القيمة بالرقم 0، لذا يجب إضافة 0 دومًا لتصبح القيمة بالنظام الثماني ولتعمل الدالة بطريقة صحيحة. انتبه إلى أنَّ السلاسل النصيَّة مثل g+w غير مدعومة.

<?php
chmod("/somedir/somefile", 755);   // عشري؛ خطأ
chmod("/somedir/somefile", "u+rwx,go+rx"); // سلسلة نصيَّة؛ خطأ
chmod("/somedir/somefile", 0755);  //mode ثماني؛ قيمة صحيحة للمعامل
?>

يتألف المعامل mode من ثلاثة أرقام ثمانيَّة تحدِّد أذونات الملف للمالك، وللمجموعة المالكة التي يكون المالك عضوًا فيها، ولباقي المستخدمين على التوالي. يحدِّد كلُّ رقم من تلك الأرقام الأذونات المطلوبة التي ستُمنح أو ستُضاف للمستخدم المحدَّد (المالك أو المجموعة أو باقي المستخدمين) بحسب موقع الرقم. يشير الرقم الثماني 1 إلى منح إذن التنفيذ، والرقم الثماني 2 إلى منح إذن الكتابة، والرقم الثماني 4 إلى جعل الملف قابلًا للقراءة؛ يمكنك قراءة شرح جميع الأذونات باستعمال الأمر man 1 chmod والأمر man 2 chmod على أيِّ نظام شبيه بيونكس.

<?php
// منح إذن القراءة والكتابة للمالك فقط، ولا شيء لبقيَّة المستخدمين
chmod("/somedir/somefile", 0600);

// منح إذن القراءة والكتابة للمالك، وإذن القراءة للأشخاص الآخرين
chmod("/somedir/somefile", 0644);

// منح جميع الأذونات للمالك، وإذن القراءة والتنفيذ لغيره
chmod("/somedir/somefile", 0755);

// منح جميع الأذونات للمالك، وإذن القراءة والتنفيذ لمجموعة المالك فقط
chmod("/somedir/somefile", 0750);
?>

القيم المعادة

تُعاد القيمة TRUE عند نجاح العملية، والقيمة FALSE خلاف ذلك.

ملاحظات

  • المستخدم الحالي هو المستخدم الذي تعمل PHP لديه، ويختلف عن ذاك المستخدم الذي يستعمل الصدفة العادية (normal shell) أو الوصول عبر FTP. لا يمكن لأحد تغيير الأذونات لملف سوى مالكه فقط وهذا ينطبق على جميع الأنظمة.
  • لا تعمل هذه الدالة مع الملفات البعيدة إذ يجب فحص الملف أولًا وذلك بأن يتمكن نظام ملفات الخادوم من الوصول إليه.
  • إن كان الوضع الآمن (safe mode) مفعَّلًا، فستتحقَّق PHP فيما إذا كان الملف أو المجلَّد الذي ستُجرى عليه العمليَّة يملك مُعرِّف المستخدم المالك (UID) ذاته الذي يملكه السكربت الذي ينفَّذ آنذاك. لا تستطيع أيضًا تغيير معرِّف المستخدم SUID أو معرِّف المجموعة SGID أو البتات اللاصقة (sticky bits).

انظر أيضًا

  • الدالة chown()‎: تغيير مالك الملف.
  • الدالة chgrp()‎: تغيير المجموعة المالكة للملف.
  • الدالة fileperms()‎: إعادة أذونات الملف الحالية.
  • الدالة stat()‎: إعادة معلومات حول الملف.

مصادر