إن الصلاحيات في لينكس من أهم الأساسيات لتعلم هذا النظام، فكيف يتم التعامل مع الأذونات؟ وما هي أهم الأوامر المستخدمة في ذلك؟
لقد تم تضمين الصلاحيات في لينكس منذ زمن طويل وذلك لأن امتلاك حاسوب سابقًا كان أمرًا صعبًا ونادرًا لتكلفته العالية، لذا ظهر حينها مفهوم تعدد المستخدمين، مما توجب حينها إدارة موارد كل مستخدم في الكمبيوتر نفسه، فهناك ملفات يمتلكها المستخدم ولا يسمح للمستخدمين الآخرين قراءتها أو التعديل عليها أو تنفيذها، إلا بإذن من المالك الأصلي، وكذلك ملفات النظام لا يمكن التعديل عليها إلا من خلال المستخدم الجذر وذلك لأن أعمال المستخدمين الآخرين في النظام غير المقصودة قد تعطّل الحاسوب عن العمل، لذا فهذا المبدأ يحمي نظام الحاسوب العبث.
مفهوم id في لينكس
عندما نقوم بإنشاء أي مستخدم جديد يعطى له قيمة تمثل هويته id، أيضًا هذه القيمة تربط بالأيدي للمجموعات الأخرى والتي قد تكون واحدة أو أكثر، كما تختلف هذه القيم من توزيعة إلى أخرى، يمكنك إظهار معلومات id من خلال طباعة الأمر id فقط على الطرفية، كما في الصورة التالية على نظام كالي لينكس.
id
كيف توزع الصلاحيات في لينكس؟
إن أي ملف أو مجلد توجد له صلاحيات لثلاث أطراف رئيسية وهم:
- المالك الأصلي الملف أو المجلد.
- الصلاحية على نطاق المجموعة.
- الصلاحية للمستخدمين الآخرين.
كل واحد من هؤلاء المستخدمين لديه ثلاث صلاحيات وهي القراءة والكتابة والتنفيذ ترمز جميعها بالرمز rwx، لكن كيف يمكن أن أعرف الصلاحيات في لينكس للملفات؟
ببساطة يمكنك استخدام الامر ls مع الخيار l- كما في الامر التالي: ls -l
شرح الصلاحيات وتفسيرها
عندما نفذت المثال السابق سيظهر لك الكثير من الرموز ماذا تعني؟
في الحقيقة هذه الرموز توضح الصلاحيات وهي مكونة من أربع مقاطع، الأول يمثل النوع فيما إذا كان مجلد d أم ملف عادي – أو وصلة رمزية l، أو c أي مودم أو طرفية والتي تستخدم إدخال حرفي، أو b ملف كتلي كالأقراص الصلبة وما الى ذلك، أما الباقي فكما عرفناها rwx وإذا كانت الصلاحية في لينكس غير موجود تستبدل بالرمز “-“.
شرح امر chmod
امر chmod يقوم بمنح وسحب الصلاحيات للملفات والمجلدات في لينكس، الصيغة العامة لاستخدامه هي:
(الملف أو المجلد) (الصلاحيات) chmod
يمكنك التعبير عن الصلاحيات بأحد الطرق المتاحة وهي:
الطريقة الرمزية لكتابة الصلاحيات في لينكس
هذه الطريقة هي الأسهل، حيث يمكن استخدام الرموز المباشرة لكل من المستخدم أو المجموعة أو الآخرين أو تضمين الكل، كما توضح الرمز التالية:الرمزشرحهaيعني جميع المستخدمين بدون استثناء.uيقصد به مالك الملف المجلد (User).gأيضا يقصد به المجموعة (Group).oكما يقصد به المستخدمين الآخرين (Others).
وبعد تحديدها ضع علامة يساوي ثم الصلاحيات rwx كما يمكن إضافة أو سحب الصلاحيات في لينكس من خلال رمز الجمع والطرح كما في الجدول التالي:الرمزمعناهx+أي إضافة صلاحية التنفيذ للمالك والمجموعة والآخرين، نفسه الرمز a+x.g-xأي سحب صلاحية التنفيذ للمجموعة.go=rwأي منح صلاحيات القراءة والكتابة للمجموعة والآخرين.o=r, u=rwx, g=rأي منح القراءة للمجموعة والآخرين، وكل الصلاحيات للمالك.
طريقة النظام الثماني
يكون العد في هذا النظام من الصفر وحتى 7، كل رقم في هذه يمثل صلاحية محددة بحسب النظام الثنائي، كما في الجدول التالي:النظام الثمانيالنظام الثنائيالأذونات0000—1001x–2010-w-3011wx-4100–r5101r-x6110-rw7111rwx
إذن تستطيع تحديد الصلاحيات لأي مستخدم من خلال كتابة ثلاث أرقام ثمانية.
مثال:
ls -l
chmod 720 b.sh
ls -l
شرح امر chown وchgrp
يقوم هذان الامران بتغيير الملكية للملفات أو الملفات، يمكن استخدامها من خلال الصيغة العامة:
الملف: المستخدم_الجديد chown
مثال على ذلك:
chown saleh: b.sh
ls -l
شرح امر umask
لنفترض بأنك أنشأت مجلد أو ملف ما، ما هي الصلاحيات التي ستكون فيه؟ إن امر umask يعمل على تحديد الصلاحيات الافتراضية عند إنشاء ملف أو مجلد ما، فقط كل ما عليك عند استخدام امر umask هو كتابة umask ثم الصلاحيات بالنظام الثماني لكن بعد إجراء عملية طرح عليها، وهي طرح الصلاحيات المطلوبة من الرقم 777، والناتج يعطى إلى امر umask.
مثال: الصلاحيات المطلوبة هي 222، إذن 777-222= 555؛ فالأمر يكون كالتالي:
umask 555
شرح امر su وsudo
يعد الأمران su و sudo مشهورتان جدًا عند استخدام الصلاحيات في لينكس، وذلك لأنها تقوم بغيير الهوية الخاصة بك الى هوية مستخدم آخر وهو المستخدم الجذر، والصيغة العامة لامر su هو:
(المستخدم) (الخيار إن وجد) su
وعند كتابة الامر مع الرمز – فستحصل على صلاحيات الجذر، أي سننتقل إلى المجلدات للمستخدم المسؤول على النافذة، ويمكنك ملاحظة تغير العلامة من $ إلى # في الطرفية.
الفرق بين امر su و sudo
إن هذان الأمران يحققان نفس الغرض لكن مع وجود بعض الاختلافات بينهما أهمها:
- يطلب su اسم كلمة المرور للمستخدم الجذر، بينما sudo يستخدم كلمة المرور للمستخدم الحالي.
- ينفذ امر sudo الامر الذي يليه، أي أننا في هذه الحالة ننفذ امر ما دون الانتقال إلى مجلدات المستخدم الجذر بينما يحصل هذا مع امر su.
- يقوم المستخدم بإدخال امر محدد من أوامر الطرفية مع sudo لكن لا يحصل هذا مع امر su بالتالي فإن أداة sudo محدد للمستخدم الجذر بالتحديد.
امر passwd لتغيير كلمة المرور
يقوم هذا الامر بتغيير كلمة المرور لأي مستخدم، ويعد من أبسط الأوامر على نظام التشغيل لينكس، وفي نفس الوقت من أكثرها حساسية لأن تغيير كلمة المرور تتطلب حفظها للدخول إلى الحساب في وقت آخر.
الصيغة العامة: (اسم المستخدم) passwd
يمكن أن يكون التعامل مع توزيع الصلاحيات في لينكس مفيدًا كثيرًا للحماية عندما يتسلل أحد إلى جهازك، حينها لن تكون له صلاحيات كافية.