ما الذي تفعله
تحوّل حاسبة chmod أذونات ملفات Unix وLinux بين الطرق الثلاث الشائعة لكتابتها: شبكة من مربعات الاختيار للقراءة والكتابة والتنفيذ، ورقم ثماني مثل 755، وسلسلة رمزية مثل rwxr-xr-x. وتكتب أيضًا أمر chmod المقابل بالصيغتين الثمانية والرمزية، وتشرح من يستطيع فعل ماذا، وتدعم البتات الخاصة setuid وsetgid واللاصق. يعمل كل شيء داخل متصفحك.
طريقة الاستخدام
- حدّد مربعات المالك والمجموعة والآخرين، أو اكتب الوضع في مربع الإدخال. يقبل الصيغة الثمانية (
644و0644و4755)، وسلاسل بأسلوبls -l(rw-r--r--أو-rw-r--r--مع نوع الملف في البداية)، وتعابير chmod مثلu=rwx,g=rx,o=أوa+x. - تتبع المربعات والنتائج ما تكتبه، والنقر على مربع يعيد كتابة الوضع بالصيغة نفسها.
- حدّد اسم الملف في الخيارات وفعّل تكراري (-R) إن أردت تطبيق الوضع على شجرة مجلدات كاملة. انسخ الأمر الجاهز بنقرة واحدة.
الأوضاع الشائعة
chmod 755 deploy.sh # rwxr-xr-x
chmod 644 index.html # rw-r--r--
chmod 600 ~/.ssh/id_ed25519 # rw-------
chmod 1777 /tmp # rwxrwxrwt
- 755 للمجلدات والسكربتات والبرامج: يستطيع المالك تعديلها، ويستطيع الجميع قراءتها وتشغيلها.
- 644 للملفات العادية مثل صفحات الويب والصور.
- 600 للملفات الخاصة مثل مفاتيح SSH وملفات
.env: لا يقرؤها إلا المالك. يرفض SSH المفاتيح التي يستطيع غيرك قراءتها. - 700 للمجلدات الخاصة، و775/664 عندما تتشارك مجموعة من المستخدمين مشروعًا.
كيف تعمل الأرقام
تحصل كل فئة من المستخدمين على رقم ثماني واحد ناتج عن جمع القراءة = 4 والكتابة = 2 والتنفيذ = 1. في المجلد تعني القراءة سرد الأسماء، والكتابة إنشاء الملفات وحذفها داخله، والتنفيذ الدخول إليه أو الوصول إلى الملفات التي فيه.
يحمل رقم اختياري في البداية البتات الخاصة: setuid = 4 وsetgid = 2 واللاصق = 1. في الصيغة الرمزية تحل محل حرف التنفيذ: s لكل من setuid وsetgid وt للاصق. ويعني الحرف الكبير S أو T أن البت الخاص مضبوط دون التنفيذ، وهذا خطأ في أغلب الأحوال.
تعرض الحاسبة أيضًا قيمة umask المقابلة، أي البتات التي تحذفها umask الافتراضية من 777 للوصول إلى الوضع. قيمة umask 022 تعطي مجلدات 755 وملفات 644.
الأسئلة الشائعة
› ماذا يعني chmod 755؟
كل رقم يمثل فئة من المستخدمين: المالك والمجموعة والآخرين. 7 = قراءة (4) + كتابة (2) + تنفيذ (1)، و5 = قراءة + تنفيذ. إذن يسمح 755 للمالك بكل شيء وللبقية بقراءة الملف وتشغيله، ويُكتب rwxr-xr-x. وهو الوضع المعتاد للسكربتات والمجلدات.
› ما الفرق بين 644 و755؟
لا يحتوي 644 (rw-r--r--) على بت التنفيذ، لذا يناسب الملفات العادية مثل HTML والصور وملفات الإعداد. أما 755 فيضيف التنفيذ للجميع، وهو ما تحتاجه البرامج لتعمل والمجلدات ليمكن الدخول إليها.
› لماذا يُعد chmod 777 فكرة سيئة؟
يمنح 777 كل مستخدم على النظام إذن تعديل الملف أو استبداله. على خادم الويب يعني ذلك أن أي عملية مخترقة يمكنها إعادة كتابة شيفرتك. أصلح الملكية بالأمر chown بدلًا من ذلك، واستخدم 755 للمجلدات و644 للملفات.
› ما setuid وsetgid والبت اللاصق؟
تشكّل رقمًا ثمانيًا رابعًا في البداية. يجعل setuid (4) البرنامج يعمل باسم مالكه، وsetgid (2) باسم مجموعته أو يجعل الملفات الجديدة في المجلد ترث المجموعة، ويمنع البت اللاصق (1) المستخدمين من حذف ملفات غيرهم في مجلد مشترك مثل /tmp. تظهر في مخرجات ls على شكل s وt في موضع التنفيذ.