كيف تعمل أذونات ملفات Linux؟
إذا كنت تستخدم نظام التشغيل Linux لبعض الوقت (وحتى نظام التشغيل OS X) ، فمن المحتمل أنك صادفت خطأ "الأذونات". ولكن ما هي بالضبط ، ولماذا هي ضرورية أو مفيدة؟ دعونا نلقي نظرة من الداخل.
أذونات المستخدم
مرة في اليوم ، كانت أجهزة الكمبيوتر آلات ضخمة كانت باهظة الثمن بشكل لا يصدق. لتحقيق أقصى استفادة منها ، تم توصيل أجهزة كمبيوتر متعددة مما سمح للعديد من المستخدمين بالقيام بأعمالهم في وقت واحد. تمت معالجة البيانات وتخزينها على الجهاز ، في حين أن المحطات نفسها كانت أكثر قليلاً من وسيلة لعرض البيانات وإدخالها. إذا فكرت في الأمر ، فالأمر يتعلق بكيفية الوصول إلى البيانات على "السحاب" ؛ انظر إلى نظام Cloud MP3 من Amazon و Gmail و Dropbox ، وستلاحظ أنه على الرغم من إمكانية إجراء التغييرات محليًا ، يتم تخزين كل شيء عن بُعد.
(الصورة: Zenith Z-19 "dumb" terminal ؛ credit: ajmexico)
لكي يعمل هذا ، يحتاج المستخدمون الفرديون إلى حسابات. يجب أن يكون لديهم قسم من مساحة التخزين المخصصة لهم ، ويجب أن يسمح لهم بتشغيل الأوامر والبرامج. يحصل كل شخص على "أذونات المستخدم" المحددة التي تحدد ما يمكنه وما لا يمكنه القيام به ، وأين في النظام يفعلون وليس لديهم إمكانية الوصول ، وملفاتهم التي يمكنهم أو لا يمكنهم تعديلها. يتم أيضًا وضع كل مستخدم في مجموعات مختلفة ، والتي تمنح أو تقيد المزيد من الوصول.
ملف الوصول
في هذا العالم متعدد المستخدمين أحمق ، قمنا بالفعل بإعداد حدود لما يمكن للمستخدمين القيام به. ولكن ماذا عن ما يصلون إليه؟ حسنا ، كل ملف لديه مجموعة من الأذونات والمالك. يحدد تعيين المالك ، الذي يكون مرتبطًا عادة عند إنشاء الملف ، المستخدم الذي ينتمي إليه ، ويمكن لهذا المستخدم فقط تعديل أذونات الوصول الخاصة به.
في عالم Linux ، يتم تقسيم الأذونات إلى ثلاث فئات: القراءة والكتابة والتنفيذ. تتيح إمكانية الوصول "للقراءة" للشخص عرض محتويات الملف ، ويسمح "الدخول" للكتابة بتعديل محتويات الملف ، ويسمح "التنفيذ" للمرء بتشغيل مجموعة من التعليمات ، مثل برنامج نصي أو برنامج. يتم تطبيق كل من هذه الفئات على فئات مختلفة: المستخدم والمجموعة والعالم. "المستخدم" يعني المالك ، "المجموعة" تعني أي مستخدم موجود في نفس المجموعة مثل المالك ، و "العالم" يعني أي شخص وكل شخص.
يمكن أيضًا تقييد المجلدات باستخدام هذه الأذونات. يمكنك ، على سبيل المثال ، السماح لأشخاص آخرين في مجموعتك بمشاهدة الأدلة والملفات في مجلد المنزل ، ولكن ليس أي شخص خارج مجموعتك. قد ترغب في تقييد الوصول "للكتابة" إلى نفسك فقط ، ما لم تكن تعمل على مشروع مشترك من نوع ما. يمكنك أيضًا إنشاء دليل مشترك يسمح لأي شخص بعرض وتعديل الملفات في هذا المجلد.
تغيير الأذونات في أوبونتو
واجهة المستخدم الرسومية
لتغيير أذونات الملف الذي تملكه في أوبونتو ، فقط انقر بزر الماوس الأيمن على الملف وانتقل إلى "خصائص".
يمكنك تغيير ما إذا كان المالك أو المجموعة أو غيرهم يستطيعون القراءة والكتابة أو القراءة فقط أو عدم القيام بأي شيء. يمكنك أيضًا تحديد مربع للسماح بتنفيذ الملف ، وسيمكن ذلك للمالك والمجموعة وآخرون في وقت واحد.
سطر الأوامر
يمكنك أيضًا القيام بذلك عبر سطر الأوامر. انتقل إلى دليل يحتوي على ملفات فيه واكتب الأمر التالي لعرض كافة الملفات في قائمة:
ls -al
بجوار كل ملف ودليل ، سترى قسمًا خاصًا يحدد أذوناته. تبدو هكذا:
-rwxrw-ص-
ال ص لتقف على "اقرأ" ، و ث لتقف على "الكتابة" ، و س لتقف على "تنفيذ". سوف تبدأ الدلائل بـ "d" بدلاً من "-". ستلاحظ أيضًا أن هناك 10 مساحات تحتوي على قيمة. يمكنك تجاهل الأول ، ومن ثم هناك 3 مجموعات من 3. المجموعة الأولى للمالك ، المجموعة الثانية للمجموعة ، والمجموعة الأخيرة للعالم.
لتغيير أذونات الملف أو الدليل ، فلننظر إلى النموذج الأساسي لأمر chmod.
chmod [class] [operator] [permission] file
chmod [ugoa] [+ أو -] [rwx] ملف
قد يبدو هذا معقدًا في البداية ، لكن ثق بي ، إنه سهل جدًا. أولا ، دعونا ننظر إلى الطبقات:
- u: هذا للمالك.
- g: هذا للمجموعة.
- س: هذا لجميع الآخرين.
- ج: سيؤدي هذا إلى تغيير الأذونات لكل ما سبق.
التالي ، المشغلين:
- +: سيضيف علامة الجمع الأذونات التي تتبع.
- -: علامة الطرح سيزيل الأذونات التي تتبع.
لا يزال معي؟ والقسم الأخير هو نفسه عند التحقق من أذونات الملف:
- r: يتيح الوصول للقراءة.
- w: يتيح الوصول للكتابة.
- س: يسمح بالتنفيذ.
الآن ، دعونا نضعها معا. لنفترض أن لدينا ملفًا باسم "todo.txt" يحتوي على الأذونات التالية:
-RW-RW-ص-
أي ، يمكن للمالك والمجموعة القراءة والكتابة ، ويمكن للعالم القراءة فقط. نريد تغيير الأذونات إلى هذه:
-rwxr-
أي أن المالك لديه أذونات كاملة ، ويمكن للمجموعة القراءة. يمكننا القيام بذلك في 3 خطوات. أولاً ، سنقوم بإضافة إذن التنفيذ للمستخدم.
chmod u + x todo.txt
ثم سنقوم بإزالة إذن الكتابة للمجموعة.
chmod g-w todo.txt
وأخيرًا ، سنزيل أذونات القراءة لجميع المستخدمين الآخرين.
chmod o-r todo.txt
يمكننا أيضًا دمج هذه في أمر واحد ، مثل:
chmod u + x، g-w، o-r todo.txt
يمكنك أن ترى أن كل قسم مفصول بفواصل ولا توجد مسافات.
فيما يلي بعض الأذونات المفيدة:
- -rwxr-xr-x: المالك لديه أذونات كاملة ، يمكن للمجموعة والمستخدمين الآخرين قراءة محتويات الملف وتنفيذها.
- -rwxr-r-: المالك لديه أذونات كاملة ، ويمكن للمجموعة والمستخدمين الآخرين فقط قراءة الملف (مفيد إذا كنت لا تمانع في عرض الآخرين لملفاتك.
- -rwx-: المالك لديه أذونات كاملة ، كل الآخرين لديهم أذى (مفيد للنصوص الشخصية).
- -rw-rw--: يمكن للمالك والمجموعة القراءة والكتابة (مفيدة للتعاون مع أعضاء المجموعة).
- -rw-r-r-: يمكن للمالك القراءة والكتابة ، ويمكن للمجموعة والمستخدمين الآخرين فقط قراءة الملف (مفيد لتخزين الملفات الشخصية على شبكة مشتركة).
- -rw--: يمكن للمالك القراءة والكتابة ، وجميع الآخرين لديهم لا شيء (مفيد لتخزين الملفات الشخصية).
هناك بعض الأشياء الأخرى التي يمكنك القيام بها باستخدام setuid و setgid - مثل chmod - ولكنهم في العمق قليلا ومعظم المستخدمين لن تحتاج إلى استخدامها على أي حال.
الجذر أو سوبر المستخدم وملفات النظام
في الوقت الحاضر ، لا نستخدم دائمًا أنظمة تحتوي على مستخدمين متعددين. لماذا لا يزال يتعين علينا القلق بشأن الأذونات?
حسنا ، يونكس ومشتقاتها - لينكس ، أو إكس ، وغيرها - تميز أيضا بين الأشياء التي يديرها المستخدم ، الأشياء التي يديرها المسؤول أو مع امتيازات المسؤول ، والأشياء التي يديرها النظام نفسه. على هذا النحو ، تحتاج الأشياء التي تعتبر جزءًا لا يتجزأ من النظام إلى تغيير امتيازات المسؤول أو الوصول إليها. بهذه الطريقة ، لا تفسد أي شيء عن طريق الخطأ.
في Ubuntu ، لإجراء تغييرات على ملفات النظام ، استخدم "sudo" أو "gksudo" للحصول على مكافئ امتيازات المسؤول. في توزيعات أخرى ، يمكنك التبديل إلى "الجذر" أو "المستخدم الفائق" الذي يفعل الشيء نفسه بشكل فعال حتى تقوم بتسجيل الخروج.
يجب أن تدرك أنه في كلتا الحالتين ، قد يؤدي تغيير أذونات الملفات إلى عدم عمل البرامج ، وتغيير ملكية الملف عن غير قصد إلى المستخدم الجذر (بدلاً من المالك) ، وجعل النظام أقل أمانًا (بمنح مزيد من الأذونات). على هذا النحو ، يوصى بعدم تغيير الأذونات للملفات - خاصة ملفات النظام - ما لم يكن ذلك ضروريًا أو تعرف ما تقوم به.
توجد أذونات الملفات لتوفير نظام أساسي للأمان بين المستخدمين. يمكن أن يساعدك التعرّف على كيفية عملها على إعداد المشاركة الأساسية في بيئة متعددة المستخدمين وحماية الملفات "العامة" وإعطائك فكرة عن حدوث خطأ ما في ملكية ملفات النظام.
هل تعتقد أنك تستطيع شرح الأمور بسهولة؟ لديك تصحيح؟ تريد أن تستذكر عن الأيام القديمة؟ خذ استراحة وضع أفكارك في التعليقات.