إذا كنت قد قمت بإدارة نظام Windows لفترة من الوقت، فمن المحتمل أن تمتلك خبرة في إدارة حسابات المستخدمين ونظام ملفات NTFS وضبط الأذونات. إذا كنت كذلك، فاستعد لعالم مختلف مع أذونات ملفات Linux! في Linux، نظام الملفات هو كائن مختلف يجب أن تتعلمه لتصبح مسؤولًا ماهرًا في Linux.
هذا هو الجزء الثاني من سلسلتنا المكونة من أربعة أجزاء حول تعلم Linux من منظور مسؤول Windows! تأكد من قراءة الجزء الأول إذا لم تفعل بالفعل.
العمل مع نظام الملفات
لنقف أولا على كيفية تخزين وإدارة الملفات في Linux من خلال نظام الملفات.
ملاحظة: ستكون جميع الأمثلة باستخدام نظام OpenSUSE Linux.
لا مزيد من رموز القرص
على عكس Windows، لا تحصل الأقراص القابلة للإزالة والأجهزة الأخرى على رمز القرص تلقائيًا وتفتح عند إعادة التشغيل. في Windows، يتم تعيين رمز القرص لكل قرص كـ: C:\، D:\، إلخ. كيف تعمل رموز القرص في Linux؟ لا يوجد رموز!
في Linux، هناك مجلد يُسمى مجلد الـ root. يقع هذا المجلد في جذر نظام الملفات أو ببساطة /
. الشرطة المائلة هي الشرطة المائلة الأولى التي تأتي قبل كل ملف آخر في النظام. تعتبر هذه الشرطة المائلة هي القاعدة الأساسية تقريبًا مثل C:\، على الرغم من أن الرموز الأخرى للقرص توجد فقط كمجلد فرعي في C:\.
مجلد الـ root هو المكان الذي تكمن فيه ملفات النظام الأساسية. كل شيء آخر، بما في ذلك الأجهزة الأخرى، هو مجلد فرعي لهذا المجلد المركزي.
تمويه لينكس الفاصل بين المجلدات وأنظمة الملفات. يعتبر دليل لينكس /home جذرًا لجميع “الملفات الشخصية” للمستخدمين مماثلًا لمجلد C:\Users في نظام التشغيل Windows. في هذه الحالة، /home هو مجلد. ومع ذلك، “المجلدات” في لينكس لا يجب أن تكون في الواقع مجلدات. يمكن أن تكون أيضًا أقسام تخزين أو حتى قرص صلب منفصل تمامًا. هذا المفهوم مشابه لـ نقاط الارتباط في Windows.
يمكنك معرفة المزيد عن المجلدات الجذرية في هذا المقال.
المستخدمون ومجلدات المنزل
إذا كنت تستخدم OpenSUSE، قد تلاحظ مجلدًا Home على سطح المكتب كما هو موضح أدناه. هذا المجلد هو الإصدار الخاص بلينكس من مجلد C:\users\<اسم المستخدم> أو “الملف الشخصي”. يوجد مجلد “المستخدمين” في لينكس تحت /home على قرص التثبيت الخاص بك بشكل افتراضي.
في المثال أدناه، يُسمى المستخدم homelab مع “ملف شخصي” يوجد في /home/homelab.

في لينكس (وWindows)، يحتوي مجلد المنزل (أو الملف الشخصي في Windows) على تعبير اختصاري لفاصلة مائلة (~). إذا رأيت شيئًا مثل
"~/Documents/blah.txt
، فهو يشير في الواقع إلى ملف/home/<اسم المستخدم>/Documents/blah.txt
الخاص بك.
التأشير بالحروف الكبيرة يعتبر أمرًا مهمًا في لينكس
كل شيء في Linux حساس لحالة الأحرف. هذا المفهوم هو العكس تمامًا من ويندوز حيث لا يكاد شيء يكون حساسًا لحالة الأحرف.
على سبيل المثال، إذا كان لديك دليل يسمى /home/homelab، يمكن أن يتم اختيار دليل مختلف تمامًا يسمى /home/Homelab. يمتد هذا المفهوم أيضًا إلى الأوامر. تشغيل cd /home/homelab
يختلف عن CD /home/homelab
(الذي يجب أن يفشل).
كشخص معتاد على ويندوز، سيؤدي هذا المفهوم إلى تعثرك في نقطة ما. كن حذرًا جدًا بشأن استخدام الأحرف الكبيرة! يمكنك رؤية مثال على مجلدَين منفصلَين أدناه. الفرق الوحيد بينهما هو الحروف الكبيرة: في بيئة ويندوز، هذا غير ممكن.

حسابات المستخدم
مثل ويندوز، تحتوي Linux على مفهوم حسابات المستخدم ولكنها تتصرف بشكل مختلف قليلاً. ابدأ أولاً بالتفكير في حسابات المستخدم في Linux بالنسبة لحسابات المستخدم المألوفة في ويندوز.
تحتوي ويندوز على بعض حسابات المستخدم المضمنة مثل Administrator، وحساب SYSTEM المخفي، Guest، وما إلى ذلك. كما يحتوي ويندوز على مجموعات أمان مدمجة مختلفة مثل Administrators، Guests، وما إلى ذلك.
يمكنك عرض جميع مستخدمي ومجموعات ويندوز عبر MMC Local Users and Groups عن طريق تشغيل snapin MMC lusrmgr.msc.

معرفات الأمان في ويندوز
لتحديد المستخدمين والمجموعات بشكل فريد، يشير ويندوز إلى المستخدمين والمجموعات باسم شيء يُسمى SID. في ويندوز، يمكنك العثور على SID لكل مستخدم ومجموعة عن طريق تشغيل بعض أوامر PowerShell كما هو موضح أدناه.

كل معرف مجموعة Windows متطابق في جميع أجهزة الكمبيوتر التي تعمل بنظام Windows. معرفات مستخدم المضمنة في Windows فريدة. يجب أن يكون لـ معرف المسؤول الذي تراه في اللقطة المذكورة أعلاه تكون مختلفة على كل جهاز كمبيوتر يعمل بنظام Windows. أي مستخدم أو مجموعة سيتم إنشاؤه في Windows ستكون فريدة. لاحظ المجموعة اختبار أدناه. إذا قمت بإنشاء مجموعة اختبار على جهاز الكمبيوتر الخاص بك الذي يعمل بنظام Windows ، فإن معرف المجموعة سيكون مختلفًا.

معرفات المستخدمين في نظام Linux
، من ناحية أخرى، يتعامل نظام Linux مع المستخدمين والمجموعات بنفس الطريقة ولكن هذه المرة لا يستخدم Linux معرفات المجموعة (SIDs) ولكن معرفات المستخدم (UIDs) ومعرفات المجموعة (GIDs). على عكس Windows ، المستخدمين والمجموعات فريدة لكل جهاز كمبيوتر ولكنها ليست فريدة عبر جميع الأجهزة. هذا يعني أن معرف المستخدم في جهاز الكمبيوتر أ قد يكون هو نفسه معرف المستخدم في جهاز الكمبيوتر ب ، حتى لو لم يكن هو نفس المستخدم.
وكلا المعرفات (UIDs) ومعرفات المجموعة (GIDs) تتبع تصميمًا بسيطًا يعتمد على الأرقام. يبدأ كل معرف (UID أو GID) من 0 ويزداد بمقدار واحد في النطاق من 1 إلى 999 لحسابات النظام الداخلية وتبدأ من 1000 وما بعدها لحسابات المستخدم المخصصة.
المستخدم الجذر المضمن دائمًا له معرف المستخدم (UID) صفر ومعرف المجموعة (GID) صفر. أيضًا ، مثل حساب SYSTEM المخفي في Windows ، يتم عمومًا (اعتمادًا على توزيعة Linux) منع حساب الجذر هذا من تسجيل الدخول.
المستخدم الجذر المضمن مشابه لحسابات SYSTEM وAdministrator المضمنة في Windows ، ويعتبر مزيجًا منهما. حتى عند العمل كمسؤول في نظام Windows ، لا تزال هناك بعض الإجراءات الوقائية المضمنة لمنعك من تدمير نظام Windows بالكامل.
المستخدم الجذري، من ناحية أخرى، هو سلطة مطلقة. إذا قمت بالدخول بشكل متعمد إلى المستخدم الجذري (يمكنك فعل ذلك في سطر الأوامر باستخدام الأمر
sudo su
) وحاولت حذف نظام التشغيل بأكمله، سيقوم المستخدم الجذري بذلك بسعادة حتى يموت النظام.
لنفترض أنك قمت بإنشاء مستخدم يُدعى homelab. يمكن الرجوع إلى معرف UID لـ homelab إما بواسطة 1000 أو عبر homelab. سيصبح المستخدم تلقائيًا عضوًا في المجموعة الداخلية users التي يمكنك الرجوع إليها باستخدام معرف المجموعة 100. يمكنك العثور على قائمة هذه التطابقات عن طريق تشغيل الأمر getent passwd
كما هو موضح أدناه:

getent passwd
inside the terminalيمكنك أيضًا العثور على نفس المعلومات كما هو موضح أعلاه للمجموعات باستخدام الأمر getent group
.

getent group
inside the terminalأذونات ملفات Linux
في عالم Windows، أذونات نظام الملفات ليست ممتعة. تعيين الأذونات وإدارتها في NTFS قد تتحول أحيانًا إلى كابوس مع ACE و ACLs والتوريث والانتشار، إلخ. لحسن الحظ، في أذونات نظام الملفات Linux أبسط بكثير.
في Linux، لديك ثلاثة أنواع من الحقوق يمكنك تخصيصها لملف: قراءة، كتابة، وتنفيذ، مع ثلاث فئات من الوصول: المالك، المجموعة، الآخرين.
- المالك هو المستخدم الذي يمتلك الملف/المجلد. كل ملف أو مجلد له مالك معين.
- المجموعة هي المجموعة التي تمتلك الملف/المجلد. لا يجب أن تكون هذه نفس المجموعة التي ينتمي إليها المالك. يمكن لكل ملف أو مجلد أن ينتمي فقط إلى مجموعة واحدة.
- الآخرون هم… حسنًا… الآخرون. هم الأشخاص الذين ليسوا جزءًا من المجموعة المالكة أو ليسوا المالك المعين.
يمكنك السماح أو الرفض لكل خيار في كل فئة. كمثال: يمكنك منح خيارات القراءة والكتابة والتنفيذ للمالك، وخيارات القراءة/التنفيذ للمجموعة والآخرين. يمكنك رؤية ذلك في لقطة الشاشة أدناه. هذا يعني أن أي شخص باستثناء المستخدم الذي هو مالك المجلد لا يمكنه تعديله.
تمامًا مثل مستكشف Windows، يمكنك رؤية هذه المعلومات في أوبونتو عن طريق اتباع الخطوات التالية:
- افتح مجلد المستخدم الخاص بك على سطح المكتب.
- انتقل إلى الملف/المجلد المعني.
- انقر بزر الماوس الأيمن على الملف/المجلد وانقر فوق الخصائص.
- انقر على علامة التبويب الأذونات.
- انقر على أذونات متقدمة.
بمجرد أن تكون في صندوق أذونات متقدمة، يمكنك رؤية جميع الأذونات المخصصة لذلك الملف أو المجلد بشكل رسومي.

أدناه هو ما يمثله جدول أذونات متقدمة.

ملكية الملف
مثل ويندوز، يحتوي كل ملف ومجلد على مالك. في ويندوز، يمكنك أخذ ملكية ملف في واجهة المستخدم الرسومية أو عبر الأمر takeown. في لينكس، تأخذ الملكية عن طريق تشغيل الأمر chown <user>:<group> <file/folder>
في سطر الأوامر.
مثل ويندوز، عادة ما تحتاج إلى إذن إداري لتغيير ملكية الملفات باستخدام sudo. sudo هو ما يعادل لينكس لـ User Account Control (UAC) في ويندوز. بدلاً من فتح نافذة سطر الأوامر الإدارية، تسبق الأوامر ب sudo لتشغيلها كمسؤول.
لنقم بإنشاء مجلد يمتلكه فقط المستخدم الجذر لتوضيح بعض هذه المفاهيم.
- افتح مجلد المستخدم الخاص بك وانتقل إلى المستندات
- قم بفتح نافذة الأوامر بالنقر بزر الماوس الأيمن ثم التوجه إلى “الإجراءات” ثم “فتح الطرفية هنا”، وقم بتشغيل الأمر التالي:

هذا المجلد لديه فقط أذونات للقراءة/الكتابة/التنفيذ للمالك. نظرًا لأنك قمت بإنشاء المجلد بصلاحيات المسؤول، فإن المالك الحالي هو المستخدم الجذر.
لقد قمت أيضًا بتغيير الأذونات بحيث يمكن للمالك فقط الوصول إليه. لا يمكن للمجموعة المالكة والمستخدمين الآخرين الوصول إلى هذا المجلد على الإطلاق. في الواقع، ستلاحظ أن المجلد به قفل كبير يشير إلى عدم وجود حق الوصول لديك.
فيما يلي يمكنك رؤية كيفية استيلاد ملكية هذا المجلد.
- افتح نافذة الطرفية الأخرى في نفس المجلد (أو استخدم تلك التي لديك بالفعل)
- قم بتشغيل الأمر التالي:
sudo chown homelab:users ./owned-by-root

الآن بعد أن أصبحت المالك، يمكنك أيضًا تغيير أذونات الملف داخل واجهة المستكشف باستخدام نافذة الخصائص.

عادةً، ترغب فقط في تغيير الملكيات، وليس أذونات الملفات. نظام Linux جيد جدًا في معرفة الأذونات التي يجب أن تكون موجودة افتراضيًا. يمكن أن تؤدي عملية “chmod” بدون معرفة الآثار إلى تعطيل النظام.
التدوين العددي لأذونات الملفات
إذا كنت قد قمت بأي عملية تصليح مشكلات في نظام Linux، فقد رأيت أن الأشخاص يشرحون أذونات الملفات باستخدام نظام الأرقام. يمكنك رؤية ذلك الموضح في لقطة الشاشة أدناه:

Linux يستخدم علامة اختصار لهذا النظام الذي يستخدم الأرقام، مثل 0600. الرقم الأول يعبر عن بعض الخصائص الخاصة التي يمكنك إضافتها، والتي غالبًا ما يتجاهلها الأشخاص. في الواقع، يستخدم معظم الأشخاص ثلاثة أرقام فقط للتعبير ويتجاهلون الرقم الرابع المُسبق.
لمزيد من المعلومات حول التعبير الرقمي لأذونات الملفات، تفضل بزيارة هذه المقالة.
ختامًا
هذا هو كل شيء للجزء الثاني من سلسلة مشاركات مدونة “رجل ويندوز في عالم لينكس” لدينا! تأكد من متابعة الزخم مع الجزء الثالث!
Source:
https://adamtheautomator.com/linux-file-permissions/