محوّل chmod من الترميز الرمزي إلى الثماني
حوّل أوضاع chmod بين الترميز الثماني والرمزي: من 755 إلى u=rwx,g=rx,o=rx والعكس. يطبّق أيضًا تغييرات مثل u+x أو go-w على وضع حالي، ويتعامل مع setuid وsetgid والبت اللاصق، ويقرأ سلاسل ls -l. يعمل في متصفحك.
الإدخال
الوضع قبل التغيير، ويُستخدم مع الأوضاع الرمزية مثل u+x. تُضاف التغييرات باستخدام + وتُزال باستخدام -.يقيّد التغييرات الرمزية من دون u أو g أو o أو a، مثل +w.
الإخراج
ملف القراءة
ما هي أوضاع chmod الثُمانية والرمزية؟
يحدد chmod أذونات ملف على Linux وmacOS وأنظمة Unix الأخرى، ويقبلها بترميزين. يحتوي الوضع الثُماني مثل 755 على رقم واحد للمالك، ورقم واحد للمجموعة، ورقم واحد لجميع المستخدمين الآخرين، حيث تمثل القراءة الرقم 4، والكتابة الرقم 2، والتنفيذ الرقم 1. أما الوضع الرمزي مثل u=rwx,g=rx,o=rx فيسمّي الفئات (u للمالك، وg للمجموعة، وo للآخرين، وa للجميع) والأذونات (r وw وx) بدلاً من ذلك.
يمكن للأوضاع الرمزية أيضاً تغيير الأذونات بدلاً من تعيينها جميعاً: يضيف u+x إذن التنفيذ إلى المالك، ويزيل go-w إذن الكتابة من المجموعة والآخرين، وينسخ g=u أذونات المالك إلى المجموعة. يعيّن الوضع الثُماني دائماً كل إذن، لذلك تعتمد نتيجة التغيير بالترميز الثُماني على الوضع الذي كان عليه الملف من قبل.
وصف الأداة
تحوّل هذه الأداة أوضاع chmod بين الترميز الثُماني والرمزي. اختر ترميز المصدر والهدف، أو اترك المصدر على الاكتشاف التلقائي: أدخل 755 للحصول على u=rwx,g=rx,o=rx، أو أدخل وضعاً رمزياً للحصول على القيمة الثُمانية. بالنسبة إلى التغييرات مثل u+x أو a+X، أدخل الوضع الحالي للملف وشاهد الوضع الذي سيتركه chmod بعد التطبيق. يمكنك أيضاً لصق سلسلة أذونات من ls -l، مثل -rwxr-xr-x، أو أمراً كاملاً من أوامر chmod.
أمثلة
| ثُماني | رمزي | ls -l |
الاستخدام المعتاد |
|---|---|---|---|
| 644 | u=rw,go=r |
-rw-r--r-- |
الملفات العادية |
| 755 | u=rwx,go=rx |
-rwxr-xr-x |
البرامج النصية والبرامج والمجلدات |
| 600 | u=rw,go= |
-rw------- |
الملفات الخاصة مثل مفاتيح SSH |
| 2775 | u=rwx,g=rwxs,o=rx |
drwxrwsr-x |
المجلدات المشتركة التي تحتفظ بمجموعتها |
| 1777 | a=rwx,+t |
drwxrwxrwt |
/tmp ومجلدات العمل المؤقتة المشتركة الأخرى |
| 4755 | u=rwxs,go=rx |
-rwsr-xr-x |
برامج مثل passwd |
الميزات
- تحويل الوضع الثُماني إلى رمزي والرمزي إلى ثُماني، مع زر تبديل لتغيير الاتجاه
- اكتشاف ترميز الوضع الذي تدخله، أو التحويل من الترميز الذي تختاره
- تطبيق التغييرات النسبية مثل
u+xوgo-wوa=r,u+wوg=uوa+Xعلى وضع حالي - التعامل مع setuid وsetgid وsticky bit (
sوtوأوضاع الترميز الثُماني المؤلفة من 4 أرقام) - كتابة الوضع الرمزي بالكامل (
u=rwx,g=rx,o=rx) أو بصيغة مختصرة (u=rwx,go=rx) - قراءة وكتابة سلاسل الأذونات من
ls -l، بما في ذلكsوSوtوT - قبول الأوامر الملصقة مثل
sudo chmod -R 755 dir - تحديد الحرف الدقيق عند عدم صلاحية الوضع
آلية العمل
يُقرأ الوضع الثُماني على أنه يتكون من أربعة أرقام كحد أقصى: يحتوي الرقم الأول الاختياري على setuid (4) وsetgid (2) وsticky (1)، بينما تمثل الأرقام الثلاثة الأخرى أذونات المالك والمجموعة والآخرين. يُقرأ الوضع الرمزي بنداً بنداً وفق قواعد POSIX، ويُطبّق على الوضع الحالي بالطريقة التي يستخدمها GNU chmod على Linux:
- يضيف
+الأذونات، ويزيلها-، بينما يعيّنها=ويمسح بقية الأذونات للفئات المحددة. - يضيف
Xإذن التنفيذ إلى المجلدات فقط، وإلى الملفات التي لديها بالفعل إذن تنفيذ لأحد المستخدمين. - يعيّن
ssetuid معuوsetgid معg. ويعيّنtsticky bit معoأوaأو من دون تحديد فئة. - عند عدم تحديد فئة، كما في
+x، ينطبق التغيير على الجميع باستثناء البتات المحجوبة بواسطة umask. - في المجلدات، يبقى setuid وsetgid على حالهما ما لم يحددهما الوضع، كما في
g-s.
يعيّن الخرج الرمزي كل بت صراحةً، ولذلك يعطي الملف النتيجة نفسها بغض النظر عن الوضع الذي كان عليه من قبل. ويُكتب sticky bit كبند منفصل هو +t، لأن كلاً من GNU وBSD chmod يقبلانه بهذه الصيغة.
نصائح
- استخدم
a+Xمعchmod -Rلجعل المجلدات قابلة للبحث من دون جعل كل ملف قابلاً للتنفيذ. - لا يؤدي
chmod 755على مجلد إلى إزالة setgid مع GNUchmod. استخدمchmod 00755أوg-sلإزالته. - تتوقع Ansible والعديد من ملفات الإعداد صفراً بادئاً، كما في
0755. فعّل خيار «إظهار 4 أرقام ثُمانية دائماً» للحصول عليه. - تشير النقطة
.أو علامة الجمع+بعد سلسلةls -lإلى سياق SELinux أو ACL. استخدمgetfaclلرؤية إدخالات ACL التي لا يعرضها الوضع.