راجع نطاق الوصول قبل تطبيق الأمر
الصلاحية المناسبة لملف بيانات قد لا تناسب سكربتًا أو مجلدًا مشتركًا. افصل بين المالك ومجموعة الملف وبقية المستخدمين، ثم حدّد العمليات المطلوبة لكل فئة. يعرض الحساب الاختيار نفسه بالأرقام وبصيغة rwx.
يمكن إدخال ثلاث أو أربع خانات ثمانية، أو لصق حقل الصلاحيات من ls -l. عند وجود خطأ، يبقى آخر اختيار صالح وتُوقَف إمكانية نسخ الأمر حتى التصحيح. أضف المسار بعد المراجعة للحصول على أمر يستهدف عنصرًا واحدًا.
كيف تتحول القراءة والكتابة والتنفيذ إلى أرقام؟
لكل فئة، القراءة تساوي 4 والكتابة 2 والتنفيذ 1. لذلك rwx تساوي 7 وr-x تساوي 5 وr-- تساوي 4؛ وتصبح rwxr-xr-- هي 754. الترتيب هو المالك ثم المجموعة ثم الآخرون، دون جمع صلاحيات الفئات معًا.
تستخدم البتات الخاصة خانة إضافية في البداية: setuid بقيمة 4 وsetgid بقيمة 2 وsticky بقيمة 1. يضيف 4755 بت setuid إلى 755، ولا يضيف البت الخاص التنفيذ تلقائيًا.
| القيمة الثمانية | rwx | الصلاحية |
|---|---|---|
0 | --- | بلا صلاحيات |
1 | --x | تنفيذ |
2 | -w- | كتابة |
3 | -wx | كتابة + تنفيذ |
4 | r-- | قراءة |
5 | r-x | قراءة + تنفيذ |
6 | rw- | قراءة + كتابة |
7 | rwx | قراءة + كتابة + تنفيذ |
التنفيذ على المجلد يعني البحث والعبور
قراءة المجلد تتيح سرد الأسماء، والتنفيذ يتيح البحث أو العبور في المسار، والكتابة تتعلق بتغيير عناصره. وتحتاج تغييرات العناصر عادةً إلى صلاحية البحث أيضًا. لذلك يفتقد المجلد ذو النمط 644 بتات البحث.
حذف ملف يعتمد أساسًا على صلاحيات المجلد الأب والقيود ذات الصلة، لا على بت كتابة الملف وحده. قد تؤثر ACL وخيارات التركيب وسياسات الأمان كذلك. لا تحاكي الحاسبة قرار الوصول الفعلي للنظام.
تمييز الحروف الكبيرة والبتات المحتفَظ بها
تشير s/t الصغيرة إلى وجود البت الخاص مع بت التنفيذ المقابل، بينما تشير S/T الكبيرة إلى غياب التنفيذ. في مجلدات Linux، يُستخدم setgid لوراثة المجموعة وsticky لتقييد حذف العناصر وإعادة تسميتها. أما أثرها على الملفات التنفيذية فيخضع لقواعد النظام.
قد يحتفظ GNU chmod ببتات setuid/setgid للمجلد عند استخدام أربعة أرقام أو أقل. ومن أمثلة مسحها صراحةً في توثيقه chmod 00755 -- 'directory'. تقبل الحاسبة قيمًا من ثلاث أو أربع خانات ولا تفحص الحالة الموجودة على القرص.
أمثلة بحسب نوع الوصول
| القيمة الثمانية | rwx | تفصيل الصلاحيات |
|---|---|---|
644 | rw-r--r-- | يقرأ المالك ويكتب، وتقرأ المجموعة والآخرون فقط، دون تنفيذ. |
755 | rwxr-xr-x | للمالك جميع الصلاحيات العادية؛ وللمجموعة والآخرين القراءة والتنفيذ أو البحث. |
600 | rw------- | تقتصر صلاحيات القراءة والكتابة العادية على مالك الملف. |
700 | rwx------ | المالك وحده يستطيع سرد المجلد وتعديل عناصره والبحث فيه. |
2775 | rwxrwsr-x | كتابة جماعية مع setgid لوراثة المجموعة في مجلد Linux. |
1777 | rwxrwxrwt | مجلد مشترك مع sticky لتقييد الحذف وإعادة التسمية. |
chmod 644 -- 'report.txt'
chmod 755 -- 'deploy.sh'
chmod 700 -- 'private-directory'أسئلة عن صلاحيات الملفات
ما الفرق بين 755 و644؟
يضيف 755 التنفيذ للفئات الثلاث. قد يلزم لسكربت تنفيذي أو للبحث في مجلد، لكن ملفات البيانات لا تحتاج التنفيذ تلقائيًا.
هل يمكن لصق drwxr-xr-x؟
نعم. تُهمَل بادئة النوع المعروفة وتكون النتيجة 755. لا يغيّر ذلك نوع الملف. احذف علامات ACL والأعمدة الأخرى من القائمة.
هل يحل 777 كل أخطاء الصلاحيات؟
لا. يمنح القراءة والكتابة والتنفيذ لكل الفئات، لكن ضوابط أخرى قد تمنع الوصول. راجع المالك والفئة المنطبقة والمجلدات الأب قبل توسيع الصلاحيات.
هل تُقبَل صيغة u+x؟
لا تُحلَّل تعبيرات chmod النسبية. أدخل القيمة الثمانية أو rwx. لتغيير بت واحد فقط، يمكن استخدام تعبير نسبي في أمر مستقل بدل استبدال الصلاحيات العادية كلها برقم.
هل ستتغير ملفات الخادم؟
لا. يتم الحساب في المتصفح ويُجهَّز أمر لمسار حرفي واحد، دون تنفيذ أو معالجة متكررة للمجلدات. يخص umask إنشاء عناصر جديدة وليس هذا الحساب.
