المحتوى عن 'مجموعات'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML5
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 5 نتائج

  1. تتطلّب إدارة خادوم Red Hat Enterprise Linux، مثل أي خادوم عموما، معرفة كيفيّة إضافة حسابات المستخدمين، تعديلها، تعليقها أو حذفها. ستحتاج أيضا خلال إدارة الخادوم لمعرفة كيف تمنح المستخدمين الصّلاحيات الضروريّة على الملفات، المجلّدات وموارد النّظام الأخرى حتى يتمكنوا من إنجاز مهامهم. إدارة حسابات المستخدمين تحتاج حتى تتمكّن من إدارة المستخدمين أن تكون لديك صلاحيّات المدير الأعلى (الجذر root). لذا سنبدأ بالانتقال إلى المستخدم الجذر بتنفيذ الأمر: $ su - Password: Last login: Wed May 11 12:58:50 GMT 2016 on pts/0 [root@localhost ~]# يُستخدَم الأمر su للتبديل بين حسابات المستخدمين؛ وعند تمرير المعطى - له فسينتقل للحساب الجذر بعد طلب كلمة السّر. ملحوظة تشير العلامة # أمام الأمر إلى أنه يُنفَّذ من الحساب الجذر. إضافة مستخدم جديد يُستخدَم الأمران التاليان لإضافة حساب مستخدِم جديد: # adduser username # useradd username حيثُ username هو اسم الحساب الجديد. ملحوظة 1: إن كانت لديك تجربة سابقة مع توزيعات دبيانيّة (أوبونتو مثلا) فـ adduser هناك مختلف عنه هنا. الأمر adduser في RHEL (والتوزيعات المبنيّة على ردهات عموما) هو مجرّد وصلة رمزيّة للأمر useradd؛ بينما هو سكربت منفصل في دبيان؛ ولكنّه يعتمد على useradd وأوامر أخرى. ملحوظة 2: ستحتاج أولا لتعيين كلمة سرّ للحساب قبل التمكن من البدء في استخدامه (سنرى كيف ذلك بعد قليل). ينفّذ النظام المهامّ التاليّة عند إضافة مستخدم جديد: إنشاء مجلّد شخصي للمستخدِم (مبدئيا على المسار home/username/ ما لم يُطلب منه غير ذلك). تُنسَخ الملفات bash_logout. وbash_profile. وbashrc. (وهي ملفات مخفيّة) إلى المجلّد الشخصي للمستخدِم. تُستعمَل هذه الملفات لضبط الإعدادات الخاصّة بجلسة Session المستخدم. إنشاء مجلّد خاص بمسلَك بريد Mail spool المستخدِم. إنشاء مجموعة مستخدمين بنفس اسم الحساب وإضافته إليها. ملحوظة: مسلك البريد هو ملفّ يخزّن رأسيات البريد (مثل عنوان المُرسِل، تاريخ التسليم، … إلخ) ومحتوياته. يوجد على المسار /var/spool/mail/ مجلّد فرعي لكلّ مستخدم على النّظام. يستخدم بعض عملاء البريد هذا المجلّد بينما لا يستخدمه البعض الآخر. يُخزّن النظام معلومات عامّة عن جميع الحسابات في الملف etc/passwd/. توجد في هذا الملفّ أسطُر يمثّل كل واحد منها سجلّا لحساب مستخدِم. يأخذ كلّ سطر الصّيغة التاليّة: [username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell] السّطر مكوّن من حقول تفصل نقطتان : بين كل حقلين. يضمّ الحقل الأول [username] اسمَ الحساب. يشير الحقل الثاني [x] إلى أن الحساب محميّ بكلمة سرّ توجد معمّاةً Encrypted في الملفّ (etc/shadow/). يوجد في الحقليْن الثالث والرابع ([UID] و[GID]) على التوالي معرّف المستخدِم ومعرّف المجموعة الأوليّة Primary group التي ينتمي إليها. الحقل الخامس [Comment] هو تعليق حول الحساب؛ يوضع فيه عادة وصفٌ للحساب وعمله. يعرّف الحقل السادس [Home directory] المسار المُطلق لمجلد المستخدِم الشخصي. يحدّد الحقل السابع الأخير [Default shell] الصّدفة Shell التي تُسنَد للمستخدِم بعد ولوجه إلى النظام. يوجد ملفّ آخر يشبه etc/passwd/ من المهمّ التعوّد عليه وهو etc/group/. يحتفظ النظام في هذا الملفّ بمعلومات مجموعات المستخدِمين، سطر لكلّ مجموعة. صيغة السّطر هي كالتالي: [Group name]:[Group password]:[GID]:[Group members] يحدّد الحقل الأول [Group name] اسم المجموعة. يُخصّص الحقل الثاني [Group password] لكلمة سر المجموعة في حال وجودها. توجد غالبا علامة x في هذا الحقل دلالةً على عدم وجود كلمة سر. الحقل الثالث [GID] مطابق للحقل الرابع [GID] في ملف etc/passwd. يقدّم الحقل الرابع [Group members] لائحة بالمستخدمين المنضوين تحت هذه المجموعة. يفصل بين أسماء الحسابات بفاصلة ,. تعيين كلمة سر للمستخدم يبقى الحساب المنشَأ حديثا بالأمر useradd (أو adduser) معطّلا إلى أن نعيّن له كلمة سرّ؛ نستخدم أمر passwd لهذا الغرض: # passwd username سيُطلب منك إدخال كلمة سر للحساب ثم تكرارها؛ كما في المثال التالي: # useradd academy # passwd academy Changing password for user academy. New password: Retype new password: passwd: all authentication tokens updated successfully. طلب تغيير كلمة السر عند أول دخول يدير الأمر chage معلومات تاريخ الحساب مثل عدد الأيام التي يجب بعدها تغيير كلمة سرّ الحساب وتاريخ آخر تغيير لكلمة السّر. يحدّد الخيّار d-، إذا ذُكر بعده تاريخٌ بالصيغة YYYY-MM-DD، تاريخ آخر مرة غُيِّرت فيها كلمة السّر؛ أما إذا ذكر بعده عدد فيفترض أن آخر تعديل تمّ بعد تاريخ 1 يناير 1970 بهذا العدد من الأيام (chage -d 1 تعني أن التعديل كان يوم 2 يناير 1970، chage -d 2 تعني أن التعديل كان يوم 3 يناير 1970 وهكذا). يفرض تمريرُ القيمة 0 للخيّار d- مع الأمر chage على المستخدِم تغيير كلمة السّر بعد الولوج إلى الحساب. نعدّل في المثال التالي تاريخ التعديل الأخير لكلمة السّر ثم نحاول الدخول إلى الحساب academy بكلمة السّر التي عيّناها في الفقرة السابقة (اخرج من الحساب الجذر إن سبق لك تسجيل الدّخول به؛ واستخدم حسابا عاديًّا بعد تنفيذ الأمر chage): # chage -d 0 academy # exit logout $ su academy Password: You are required to change your password immediately (root enforced) Changing password for academy. (current) UNIX password: New password: Retype new password: $ ننتقل بالأمر su لاستخدام اسم الحساب الممرّر له (academy في حالتنا)؛ ستُطلب منا كلمة السّر التي عيناها سابق ثم بعد الولوج تظهر رسالة تطلب منا تعديل كلمة السّر. ندخل كلمة السر الحالية للاستمرار ثم نختار كلمة سر جديدة ونكرّرها. التعديل على الحساب يمكن بعد إضافة مستخدم تعديل حسابه في أي وقت بالأمر usermod: # usermod options username تحدّد خياراتٌ options سلوك الأمر و username الحساب الذي تُطبَّق عليه. تحديد تاريخ انتهاء صلاحيّة لحساب مستخدِم يتيح خيّار expiredate-- عند استخدامه مع الأمر usermod تحديد تاريخ يُعطَّل بعده الحساب. ننتقل في المثال التالي إلى استخدام الحساب الإداري (الجذر root)، ثم ننشئ حسابا جديدا باسم academy1: $ su - Password: # useradd academy1 يمكننا إظهار معلومات تاريخ الحساب بالأمر التالي: # chage -l academy1 Last password change : May 11, 2016 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 نلاحظ أن قيمة Account expires ( انتهاء صلاحيّة الحساب) هي never أي أنه لا يوجد تاريخ انتهاء صلاحيّة. نستخدم الخيار expiredate-- مع الأمر usermod لتحديد تاريخ انتهاء صلاحية للحساب academy1 ثم نعرض معلومات عمر الحساب من جديد: # usermod --expiredate=2016-06-01 academy1 # chage -l academy1 Last password change : May 11, 2016 Password expires : never Password inactive : never Account expires : Jun 01, 2016 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 لاحظ تغيّر قيمة Account expires. إضافة مستخدم إلى مجموعة ثانية يُستخدم الخياران aG- مع الأمر usermod لإضافة مستخدم موجود إلى مجموعة أخرى غير المجموعة الأوليّة. ننشئ في المثال التالي مجموعة باسم hsoub ثم نضيف إليها المستخدم academy: # groupadd hsoub # usermod -aG hsoub academy لاحظ أن اسمَ المجموعة يسبق اسم الحساب. يمكن التأكد من إضافة الحساب إلى المجموعة بعرض المجموعات التي ينتمي إليها الحساب academy كالتالي: # groups academy academy : academy hsoub أي أن الحساب academy ينتمي إلى المجموعتيْن academy (المجموعة الأوليّة) وhsoub. حذف مستخدم من مجموعة إن أردت حذف مستخدم من جميع المجموعات الثانويّة وإبقاء الأوليّة فقط فيمكن ذلك على النحو التالي: # usermod -G "" academy # groups academy academy : academy إن كان المستخدم عضوا في أكثر من مجموعة ثانويّة فيمكن حذفه من بعضها بذكر تلك التي ينتمي إليها فقط مع الخيّار G-. مثلا ينتمي العضو academy للمجموعات hsoub2، hsoub1 وhsoub3، ونريد حذفه من hsoub2؛ ننفذ الأمر كالتالي: # usermod -G hsoub1,hsoub3 academy تعديل المسار المبدئي لمجلّد المستخدم أو الصّدفة المسندة إليه استخدم الخيار d- متبوعا بمسار تريده مع الأمر usermod إن أردت تغيير مكان المجلّد الشّخصي للمستخدِم. # usermod -d /home/test academy نفس المبدأ مع الصّدفة المبدئية (bash)؛ استخدم الخيار shell-- متبوعا بمسار صدفة أخرى (sh مثلا): # usermod --shell /bin/sh academy قفل كلمة المرور يمكن باستخدام الخيّار L- مع الأمر usermod قفل كلمة سر المستخدم وبالتالي منعه من الدخول إلى الحساب وتعطيله: # usermod -L academy إن جرّبت الآن الدخول إلى الحساب academy (بعد الخروج من الحساب الجذر) فستظهر رسالة بوجود خطأ في عمليّة الاستيثاق: $ su academy Password: su: Authentication failure عد إلى الحساب الجذر واستخدم الخيّار U- لإلغاء قفل كلمة المرور وتفعيل الحساب. # usermod -U academy يمكن الآن الدخول إلى الحساب academy. حذف مجموعة أو مستخدِم استخدِم الأمر groupdel لحذف مجموعة مستخدمين. بالنسبة لحساب مستخدم فالأمر المستخدَم هو userdel (إضافة الخيار r- تحذف أيضا محتوى المجلد الشخصي ومسلك البريد). # groupdel group_name # userdel -r user_name إدارة أذونات Permissions المستخدمين يعدّ أمر ls أحد أكثر الأوامر استخداما أثناء إدارة الخواديم. استخدم الخيّار l- مع ls لسرد قائمة مفصّلة بمحتويات مجلّد. يمكن أيضا تطبيق الأمر على ملفّ واحد لعرض تفاصيله. تظهر عند استخدام الأمر ls -l خاصيّات الملفّ ومن بينها وضعه Mode الذي يوجد في بداية كل مُخرَج؛ وهو مكون من عشرة محارف. يحدّد المحرف الأول نوع الملف ويمكن أن يأخذ إحدى القيم التالية: -: ملفّ عادي. d: مجلّد. l: وصلة رمزيّة. c: جهاز طرفيّ محرفي Character device (يعالج تدفق البيانات محرفا محرفا؛ مثل الطرفيّة). b: جهاز طرفيّ كتليّ Block device (يعالج البيانات على كتل، مثل وسائط التخزين). تحدّد المحارف التسعة التاليّة الأذونات المطبّقة على الملفّ. تُقسّم المحارف التسعة إلى ثلاث مجموعات، تحوي كل مجموعة ثلاثة محارف. تمثّل المحارف الثلاثة أذونات الملف وهي، من اليسار إلى اليمين، القراءة (r)، الكتابة (w) والتنفيذ (x). تشير المجموعات الثلاثة على التوالي (من اليسار إلى اليمين) إلى أذونات المستخدِم صاحب الملفّ (user, u)، مجموعة المستخدمين مالكة الملفّ (Group, g) وبقيّة المستخدمين (Other, o). يظهر الحرف الموافق للإذن إذا كان الإذن معيّنا وإلا تظهر مكانه علامة -. راجع المقالات التاليّة لمزيد من التفاصيل عن أذونات المستخدمين: مبادئ أذونات الملفات (File permissions) على لينكس. مقدمة إلى أذونات لينكس Linux Permissions. يُستخدَم الأمر chmod لتغيير أذونات الملفّ كالتالي: # chmod new_mode file حيث new_mode رمز عددي أو عبارة تحدّد الأذون الجديدة. يُحسَب الرمز العددي بناء على المكافئ العددي لكلّ إذن (4 للقراءة، 2 للكتابة و1 لإذن التنفيذ، و0 عند غياب الإذن) حيثُ تجمع المكافئات بالنسبة لصاحب الملفّ، المجموعة المالكة للملف وبقيّة المستخدمين. توضّح الصورة أعلاه مثالا على حساب الرمز العددي للإذن: توجد ثلاثة مجموعات كلّ واحدة مكوّنة من ثلاثة محارف. تشير المجموعة الأولى ابتداءً من اليسار لأذون مالك الملفّ، الثانيّة لأذون المجموعة والثالثة لأذون بقيّة المستخدمين. تشير المحارف في كلّ مجموعة لإذن معيّن: القراءة (المحرف الأول في كلّ مجموعة من اليسار)، الكتابة (المحرف الثاني) والتنفيذ (المحرف الثالث). إذا كان الإذن موجودا يُشار إليه بالحرف الموافق (w، r أو x) وإلا توضع مكانه علامة -. للحصول على الرمز العددي نجمع المكافئات بالنسبة لكل مجموعة ثم نضعها معا بالترتيب المذكور: المستخدم صاحب الملف في اليسار، المجموعة في الوسط وبقية المستخدمين على اليمين. نستخدم أمر chmod لتعيين الأذون الجديدة. ننشئ في المثال التالي ملفّا باسم myfile ثم نعرض معلوماته، نلاحظ أن الأذون هي: rw-rw-r-- والرمز العددي الموافق لها هو 664. ثم نستخدم أمر chmod لتعيين الأذون الجديدة باستخدام الرمز 744 وفي الأخير نعرض معلومات الملفّ من جديد ونلاحظ التغيّر. $ touch myfile $ ls -l myfile -rw-rw-r--. 1 academy academy 0 May 11 14:55 myfile $ chmod 744 myfile $ ls -l myfile -rwxr--r--. 1 academy academy 0 May 11 14:55 myfile تعيين إذن لجميع المستخدمين يمكنك جعل إذن على ملف متاحا لجميع المستخدمين (صاحب الملف، المجموعة والبقيّة) بالأمر chmod. نفرض مثلا أن لديك سكربت تريد إتاحة إمكانية تنفيذه للجميع؛ استخدم الأمر chmod كالتالي: # chmod a+x script.sh يُقرأ الأمر "امنح الإذن x (التنفيذ) لجميع المستخدمين a". يمكن أيضا استخدام نفس الطريقة مع المستخدم مالك الملف، المجموعة أو بقية المستخدمين: امنح إذن الكتابة w للمستخدم صاحب الملف o: # chmod o+w script.sh امنح إذن القراءة r للمجموعة g: # chmod g+r script.sh امنح أذون القراءة r، الكتابة w والتنفيذ x للمجموعة: # chmod g+rwx script.sh أما إذا أردنا نزع الإذن فنستخدم علامة - بدلا من + كالتالي: # chmod o-r script.sh تغيير ملكية ملف يظهر عند سرد ملفات مجلّد أو تفاصيل ملفّ (بأمر ls -l) المستخدِم صاحب الملف والمجموعة التي ينتمي إليها. مثلا: $ cd $ ls -la total 60 drwx------. 16 academy academy 4096 May 11 20:36 . drwxr-xr-x. 11 root root 4096 May 11 12:59 .. drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Desktop drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Documents drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Downloads drwxrwxr-x. 2 academy academy 6 Apr 27 20:51 folder drwxrwxr-x. 2 academy academy 38 Apr 29 17:08 links_folder drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Music -rwxr--r--. 1 academy academy 0 May 11 14:55 myfile drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Pictures drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Public drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Templates drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Videos انتقلنا في المثال أعلاه إلى المجلّد الشخصي للمستخدم الحالي (بتنفيذ أمر cd دون معطيات) ثم سردنا محتويات المجلّد بالأمر ls -la. يطلُب الخيّار a- من الأمر إظهار جميع المحتويات بما فيها الملفات المخفيّة (التي يبدأ اسمها بنقطة .). يظهر اسم المستخدم مالك الملف في العمود الثالث واسم المجموعة في العمود الرابع (جميع الملفات الظاهرة في نتيجة الأمر تعود للمستخدم academy والمجموعة academy ما عدا المجلّد .. الذي يشير إلى المجلّد الأعلى من المجلّد الحالي في البنية الشجرية والذي يملكه المستخدم والمجموعة root). نستخدم الأمر chown لتغيير ملكيّة ملفّ. يمكن تغيير المستخدم المالك والمجموعة في نفس الوقت أو كلّ على حدة. تغيير المستخدم المالك والمجموعة معا (لاحظ وجود النقطتين في الأمر): # chown user:group file تغيير المستخدم المالك دون تغيير المجموعة: # chown user: file تغيير المجموعة المالكة دون تغيير المستخدِم: # chown :group file نسخ أذون ملف وتطبيقها على آخر إن أردت جعل أذون ملف مطابقة تماما لأذون ملفّ آخر فيمكنك استخدام الخيّار reference--مع الأمر chown على النحو التالي: # chown --reference=ref_file file حيث ref_file هو الملف المرجِع وfile الملف الذي تريد نسخ الأذون إليه. يؤدي الأمر أيضا إلى تغييرملكيّة الملف file. إعداد الخيار الخاص بضبط معرف المجموعة setgid صُمِّم خيار setgid لإتاحة إمكانية الوصول إلى ملفّ بصلاحيات مجموعة المستخدمين المالكة للملف بغضّ النظر عن المستخدِم الذي يصل إليه فعلا. يمكن أن يُقرأ الأمر على النحو التالي : “اجعل الوصول إلى هذا الملف متاحا وفق أذونات المجموعة التي تملكه بغضّ النظر عن المستخدم الذي يحاول الوصول إليه”. يُطبّق ضبط معرّف المجموعة على النحو التالي: # chmod g+s file أو بإضافة الرقم 2 أمام الرمز العددي للأذون: # chmod 2750 file نفترض أن الأذون على الملف file هي 760 مما يعني أنه لا يُتاح إذن القراءة إلا للمستخدم مالك الملف أو المجموعة التي ينتمي إليها. إن حاول مستخدم غير المستخدم المالك ولا ينتمي للمجموعة قراءة محتوى الملف فلن يستطيع. إن ضبطنا خيار setgid بإحدى الطريقتين المذكورتين (g+s أو 2760) فسيمكن لأي مستخدم مهما كان قراءة الملف، لأنه أصبح يستفيد من صلاحيات المجموعة حتى ولو لم يكن واحدا منها؛ ولكنه لن يستطيع تنفيذ الملف لأن المجموعة لا تملك هذا الإذن. راجع مقال شرح أذونات الملفات (File permissions) على لينكس ويونكس للمزيد عن معرّف المجموعة (ومعرّف المستخدم). خاتمة تتطلّب إدارة خواديم RHEL معرفة عميقة بأذون الملفات وصلاحيات المستخدمين والمجموعات؛ لذا تأكد من تطبيق المعلومات الواردة في هذا المقال جيّدا حتى تستوعبها. إن وجدت استشكالات فيمكنك التعليق على هذا الدّرس أو استخدام قسم الأسئلة للحصول على المساعدة. ترجمة -وبتصرّف- للمقال RHCSA Series: How to Manage Users and Groups in RHEL 7 – Part 3 لصاحبه Gabriel Cánepa.
  2. يجب أن تضع الحماية نصب عينيّك عند تثبيت ونشر واستخدام أي نوع من أنظمة تشغيل الحاسوب؛ وعلى الرغم من أن تثبيتًا حديثًا لأوبنتو هو آمن نسبيًا للاستخدام الفوري على الإنترنت، لكن من المهم أن يكون لديك فهم متوازن لحالة حماية أنظمتك بناءً على طريقة استخدامها بعد «نشرها» (deployment). يزودك هذا الدرس بلمحة عن المواضيع المرتبطة بالحماية المتعلقة بنسخة خادوم أوبنتو 14.04، ويخط الخطوط العريضة للإجراءات التي يمكنك أن تستخدمها لحماية خادومك وشبكتك من أي عدد من التهديدات الأمنية المحتملة. إدارة المستخدمينإدارة المستخدمين هي جزء جوهري في الحفاظ على نظامٍ آمن؛ تقود الإدارة غير الكفء للمستخدمين والامتيازات عادةً إلى إضعاف أمان النظام؛ وبالتالي من الضروري أن تفهم كيف تحميه باستخدام تقنيات إدارة حسابات المستخدمين. أين هو حساب الجذر؟اتخذ مطورو أوبنتو قرارًا واعيًا بتعطيل حساب الجذر الإداري افتراضيًا في جميع حالات تثبيت أوبنتو؛ هذا لا يعني أن حساب الجذر محذوفٌ أو لا يمكن الوصول إليه، حيث أُسنِدَت إليه ببساطة كلمة مرور لا تُطابِق أيّة قيمة؛ أي أنك لا تستطيع الدخول إليه مباشرةً. لكن بدلًا من ذلك، يُحَثّ المستخدمون أن يستخدموا أداةً باسم sudo لتنفيذ مهام إدارة النظام؛ حيث تسمح sudo لمستخدم موثوق بترقية امتيازاته باستخدام كلمة مروره بدلًا من الحاجة لمعرفة كلمة المرور الخاصة بحساب الجذر. هذه الطريقة البسيطة تعطي المسؤولية لجميع أفعال المستخدم، وتمنح مدير النظام تحكمًا بالأفعال التي يستطيع القيام بها مع امتيازاته الحالية. إذا أردت تفعيل حساب الجذر لسبب ما، فببساطة أسند كلمة مرور لذاك الحساب: sudo passwdستطلب منك أداة sudo كلمة مرورك، ثم ستطلب منك توفير كلمة مرور جديدة لحساب الجذر كما هو موضح هنا: [sudo] password for username: (enter your own password) Enter new UNIX password: (enter a new password for root) Retype new UNIX password: (repeat new password for root) passwd: password updated successfullyاستخدم الأمر passwd بهذه الطريقة لتعطيل كلمة مرور حساب الجذر: sudo passwd -l rootلكن إذا أردت تعطيل الحساب نفسه، فاستخدم الأمر الآتي: usermod --expiredate 1تستطيع التعلم أكثر عن sudo بالنظر إلى صفحة الدليل المتعلقة بهذا الأمر: man sudoينتمي المستخدم الذي أُنشِئ أثناء تثبيت أوبنتو افتراضيًا إلى المجموعة «sudo» المُضافة إلى ملف ‎/etc/sudoers كمستخدم sudo موثوق؛ إذا رغبت بمنح أيّ حساب آخر امتيازات الجذر كاملةً عبر sudo، فأضف ذاك الحساب إلى المجموعة sudo. إضافة وحذف المستخدمينعملية إدارة المستخدمين المحليين والمجموعات هي عملية بسيطة ومباشرة ولا تختلف إلا قليلًا بين أغلبية أنظمة تشغيل غنو/لينُكس الأخرى؛ تحث أوبنتو، والتوزيعات المبنية على دبيان، على استخدام الحزمة «adduser» لإدارة الحسابات. لإضافة حساب مستخدم جديد، استخدم الشكل العام الآتي، وأكمل مع الرسائل التي تطلب منك إعطاء كلمة مرور للحساب، وتعريف بعض الخاصيات مثل الاسم الكامل ورقم الهاتف ...إلخ. sudo adduser usernameاستخدم الأمر الآتي لحذف مستخدم ومجموعته الرئيسية: sudo deluser usernameلا يؤدي حذف حساب مستخدم إلى حذف مجلد المنزل الموافق له؛ هذا يعود لك إن كنت تريد أو لا تريد حذف المجلد يدويًا أو الإبقاء عليه وفقًا لسياساتك. تذكر أن أي مستخدم آخر يُضاف لاحقًا بنفس معرفَيّ UID/GID للمستخدم القديم سيحصل على وصول كامل لهذا المجلد إذا لم تتخذ الاحتياطات اللازمة. قد ترغب بتغيير قيم UID/GID إلى قيم أخرى ملائمة أكثر -كحساب الجذر مثلًا- وربما تريد أيضًا نقل المجلد لتفادي التضاربات المستقبلية: sudo chown -R root:root /home/username/ sudo mkdir /home/archived_users/ sudo mv /home/username /home/archived_users/لكي تقفل حساب مستخدم مؤقتًا أو تلغي قفله، فاستخدم الأمر passwd مع الخيارات الموافقة للعملية التي تريد إجراءها كما يلي (على التوالي وبالترتيب): sudo passwd -l username sudo passwd -u usernameلإضافة أو حذف مجموعة خاصة، فاستخدم الأمرين الآتيين على التوالي وبالترتيب: sudo addgroup groupname sudo delgroup groupnameاستخدم الشكل الآتي من أمر adduser لإضافة مستخدم إلى مجموعة: sudo adduser username groupnameأمن حساب المستخدمعندما يُنشأ مستخدمٌ جديد، فستُنشِئ الأداة adduser مجلد منزل جديد باسم ‎/home/username، يتشكل ملف الحساب (profile) الافتراضي اعتمادًا على المحتويات الموجودة في مجلد ‎/etc/skel الذي يحتوي على أساسيات ضبط الحساب. إذا كان سيحتوي خادومك على عدّة مستخدمين، فيجب أن تولي أذونات مجلد المنزل للمستخدم اهتمامًا شديدًا لتحقيق سرية بياناته؛ افتراضيًّا، مجلدات منزل المستخدم في أوبنتو تُنشَأ بأذونات القراءة والتنفيذ؛ هذا يعني أن كل المستخدمين يستطيعون الوصول والتجول في محتويات مجلدات المنزل للمستخدمين الآخرين، ربما لا يلائم ذلك احتياجات بيئة تشغيل نظامك. استخدم الأمر الآتي للتأكد من أذونات مجلد المنزل للمستخدمين الحاليين: ls -ld /home/usernameيُظهِر الناتج الآتي أن مجلد ‎/home/username لديه أذن القراءة لجميع المستخدمين (العالم أو world): drwxr-xr-x 2 username username 4096 2007-10-02 20:03 usernameتستطيع إزالة أذن القراءة للجميع بتنفيذ الأمر: sudo chmod 0750 /home/usernameملاحظة: بعض الأشخاص يميلون لاستخدام الخيار التعاودي (‎-R‏ [recursive]) دومًا دون تمييز الحالات التي يجب استخدامه فيها، الذي يُعدِّل أذونات المجلدات «الأبناء» والملفات التي فيها، لكن هذا ليس ضروريًا، وربما يتسبب ببعض النتائج غير المرغوب بها؛ يكفي تعديل أذونات المجلد «الأب» فقط لمنع المستخدمين غير المصرَّح لهم بدخول أي شيء داخل هذا المجلد الأب. طريقة أخرى أكثر فعاليةً هي تعديل ضبط الأذونات الافتراضية العام للأداة adduser عند إنشاء مجلدات المنزل للمستخدمين الجدد؛ عدِّل ببساطة الملف ‎/etc/adduser.conf وغيِّر قيمة المتغير DIR_MODE إلى قيمةٍ مناسبةٍ، حيث ستحصل جميع مجلدات المنزل الجديدة على الأذونات الصحيحة: DIR_MODE=0750بعد تصحيح أذونات المجلد باستخدام إحدى الطرق السابق ذكرها، فتأكد من النتائج بالأمر: ls -ld /home/usernameالنتائج الآتية تُظهِر أنه قد أُزيل إذن القراءة لجميع المستخدمين: drwxr-x--- 2 username username 4096 2007-10-02 20:03 usernameسياسة كلمة المرورأحد أهم الجوانب في حماية نظامك هو استخدام سياسة قوية لكلمات المرور؛ إذ تتطلب العديد من الاختراقات الأمنية الناجحة استخدام هجمات «القوة القاسية» (brute force) وتخمين كلمات المرور الضعيفة من القاموس؛ إذا كنت تنوي توفير أي نوع من التحكم البعيد الذي يتطلب كلمة المرور المحلية للنظام، فتأكد أنك تحقق المتطلبات الدنيا من تعقيد كلمات المرور، ومدة كلمة المرور الدنيا، والتدقيق الرتيب لأنظمة الاستيثاق عندك. طول كلمة المرور الدنياتتطلب أوبنتو افتراضيًا طولًا أصغريًا لكلمة المرور يساوي ستة محارف، يمكن التحكم بهذه القيمة في ملف ‎/etc/pam.d/common-password الظاهر هنا: password [success=2 default=ignore] pam_unix.so obscure sha512إذا أردت تغيير الحد الأدنى لطول كملة المرور إلى ثمانية محارف، فعدِّل المتغير الملائم إلى min=8؛ كما يلي: password [success=2 default=ignore] pam_unix.so obscure sha512 min=8ملاحظة: التحقق البسيط من كلمة المرور، والطول الأدنى لها لا يُطبَّق على الأوامر المُنفَّذة باستخدام sudo لإعداد مستخدم جديد. مدة صلاحية كلمة المرورعند إنشاء حسابات للمستخدمين، فيجب أن تُنشِئ سياسة لعمر كلمة المرور الأدنى والأقصى وإجبار المستخدمين على تغيير كلمات مرورهم عندما تنتهي مدتها. استخدم الأمر الآتي لعرض حالة حساب مستخدم: sudo chage -l usernameيُظهِر ناتج الأمر السابق حقائق مثيرة للاهتمام حول حساب المستخدم، ولنفترض أنه لا توجد أيّة سياسات مطبَّقة: Last password change : Jan 20, 2008 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7استخدم الأمر الآتي ببساطة وتابع مع الرسائل التفاعلية لضبط أيّة قيمة من هذه القيم: sudo chage usernameما يلي مثالٌ لطريقة تغيير تاريخ انتهاء الصلاحية (‎-E) إلى 01/31/2008، والعمر الأدنى لكلمة المرور (‎-m) إلى 5 أيام، والعمر الأقصى لكلمة المرور (‎-M) إلى 90 يومًا، ومدة الخمول (inactivity، الخيار ‎-I) إلى 5 أيام بعد انتهاء صلاحية كلمة المرور، ومدة وقت التحذير (‎-W) إلى 14 يومًا قبل انتهاء صلاحية كلمة المرور. sudo chage -E 01/31/2008 -m 5 -M 90 -I 5 -W 14 usernameللتأكد من التعديلات، استخدم نفس الأمر المذكور آنفًا: sudo chage -l usernameيجب أن يُظهِر الناتج السياسات الجديدة التي أعددناها لهذا الحساب: Last password change : Jan 20, 2008 Password expires : Apr 19, 2008 Password inactive : May 19, 2008 Account expires : Jan 31, 2008 Minimum number of days between password change : 5 Maximum number of days between password change : 90 Number of days of warning before password expires : 14اعتبارات أمنية أخرىتستخدم العديد من التطبيقات آليات استيثاق أخرى يمكن أن يغفلها حتى مدراء الأنظمة الخبراء؛ وبالتالي فمن المهم فهم والتحكم في طريقة استيثاق المستخدمين وحصولهم على الوصول إلى الخدمات والتطبيقات على خادومك. وصول SSH من المستخدمين المعطلينلا يمنع تعطيل حساب مستخدم من دخوله إلى خادومك عن بعد إن كان قد ضبط استيثاق بمفتاح RSA عام؛ وسيتمكنون من الحصول على وصول إلى الصدفة (shell) في الخادوم دون الحاجة لأيّة كلمة مرور؛ تذكر أن تتحقق من مجلد المنزل للمستخدمين الذي يسمحون بهذا النوع من وصول SSH الذي تم الاستيثاق منه؛ أي ‎/home/username/.ssh/authroized_keys. احذف أو أعد تسمية مجلد ‎.ssh/‎ في مجلد المنزل للمستخدم لتعطيل إمكانيات الاستيثاق عبر SSH. تأكد أن تتحقق من أيّة اتصالات SSH قد أُنشِئت من المستخدم المعطَّل؛ حيث من الممكن أن يملكوا اتصالات داخلة أو خارجة موجودة مسبقًا، «اقتل» (kill) تلك العمليات إذا عثرت عليها. who | grep username # to get the pts/X terminal sudo pkill -f pts/Xاحصر الوصول عبر SSH إلى حسابات المستخدمين الذين يجب أن يحصلوا عليها فقط؛ فعلى سبيل المثال، ربما تنُشِئ مجموعة تسميها «sshlogin» وتضيف اسم المجموعة كقيمة مرتبطة بالمتغير AllowGroups الموجود في الملف ‎/etc/ssh/sshd_config. AllowGroups sshloginثم أضف مستخدمي SSH المسموح لهم إلى المجموعة «sshlogin»، وأعد تشغيل خدمة SSH: sudo adduser username sshlogin sudo service ssh restartاستيثاق المستخدم بقواعد البيانات الخارجيةتتطلب معظم الشبكات المشاريع التجارية آليةَ استيثاقٍ مركزية والتحكم بالوصول إلى جميع مصادر النظام، إذا ضبطت خادومك ليستوثق من المستخدمين من قاعدة بيانات خارجية؛ فتأكد من تعطيل حسابات المستخدمين محليًا وخارجيًا، وبهذا تتأكد من أن البديل المحلي للاستيثاق غير متوفر. تأمين الطرفيةوكما غيرها من ترسانة الحماية التي تستخدمها لحماية خادومك، من القواعد الصارمة هو التأمين ضد الأضرار الناتجة عن شخص لديه الوصول الفيزيائي لبيئتك، على سبيل المثال، سرقة الأقراص الصلبة، أو خلل في الطاقة الكهربائية ...إلخ؛ وبالتالي يجب أن يكون تأمين الطرفية جزءًا رئيسيًا في استراتيجية الحماية الفيزيائية؛ سيحد «قفل الشاشة» (screen door) من تأثير مجرم عادي، أو على الأقل سيبطئ عمل مجرم مصمم على إلحاق الأذى بنظامك! لذلك من المستحسن إجراء بعض احتياطات الوقاية فيما يتعلق بحماية الطرفية. سيساعدك ما يلي في الدفاع عن خادومك ضد المشاكل التي قد تسبب عواقب وخيمة. تعطيل Ctrl+Alt+Deleteبادئ ذي بدء، يستطيع أي شخص لديه الوصول الفيزيائي للوحة المفاتيح ببساطة أن يستخدم تجميعة المفاتيح «Ctrl+Alt+Delete» لإعادة إقلاع الخادوم دون الحاجة لتسجيل الدخول؛ طبعًا يمكن لأي شخص إزالة كبل الكهرباء من المقبس، لكن ما يزال عليك منع استخدام هذه التجميعة على خادوم إنتاجي؛ وهذا يجبر المهاجم على اتخاذ إجراءات عنيفة لإعادة إقلاع الخادوم، وسوف يمنع إعادة الإقلاع غير المقصودة في نفس الوقت. لتعطيل إعادة إقلاع الخادوم بالضغط على تجميع الأزرار Ctrl+Alt+Delete، فضع رمز التعليق قبل السطر الآتي في ملف ‎/etc/init/control-alt-delete.conf: #exec shutdown -r now "Control-Alt-Delete pressed"ترجمة -وبتصرف- للمقال Ubuntu Server Guide: User Management.
  3. تعرفنا في المقالين السابقين على كيفية تثبيت وضبط خادوم OpenLDAP على أوبنتو و كيفية القيام بعملية التناسخ لتفادي توقف الخادوم. استيثاق LDAPبعد أن أصبح عندك خادوم LDAP يعمل جيدًا، فستحتاج إلى تثبيت مكتبات على جهاز العميل التي تعلم كيف ومتى عليها أن تتصل إلى الخادوم؛ يتم ذلك في أوبنتو تقليديًا بتثبيت حزمة libnss-ldap؛ ستجلب هذه الحزمة أدواتٍ أخرى، وستساعدك في خطوة الضبط؛ ثبت الآن الحزمة: sudo apt-get install libnss-ldapستُسأل عن معلوماتٍ حول خادوم LDAP؛ إذا ارتكبت خطأً هنا، فتستطيع المحاولة مرة أخرى بالأمر: sudo dpkg-reconfigure ldap-auth-configستظهر نتائج مربع الحوار السابق في ملف ‎/etc/ldap.conf، إذا تطلَّب الخادوم خياراتٍ غير موجودة في القائمة، فعليك تعديل هذا الملف وفقًا لها. اضبط LDAP لاستخدامه مع NSS: sudo auth-client-config -t nss -p lac_ldapاضبط النظام لاستخدام LDAP للاستيثاق: sudo pam-auth-updateاختر LDAP وأيّة آليات استيثاق أخرى قد تحتاج لها من القائمة. تستطيع الآن تسجيل الدخول بتصاريح مبنية على LDAP. سيحتاج عملاء LDAP إلى الإشارة إلى عدّة خواديم إذا اُستخدِم الاستنساخ؛ يجب أن تضع شيئًا شبيهًا بالسطر الآتي في ملف ‎/‎etc/ldap.conf: uri ldap://ldap01.example.com ldap://ldap02.example.comإذا نَفِذَت مهلة (timeout) الطلب، فسيحاول العميل الوصول إلى المستهلك (ldap02) إذا لم يستجيب المزود (ldap01). إذا كنت تريد استخدام LDAP لتخزين مستخدمي سامبا، فإن عليك ضبط سامبا ليستوثق عبر LDAP، وسنشرح ذلك في الدرس القادم. ملاحظة: بديل عن حزمة libnss-ldap هي حزمة libnss-ldapd؛ التي ستجلب معها حزمة nscd الذي قد لا نرغب فيها؛ احذفها ببساطة بعد التثبيت. إدارة المستخدمين والمجموعاتتأتي حزمة ldap-utils مع أدوات كافية لإدارة الدليل، لكن السلسلة الكبيرة من الإعدادات المطلوبة قد تصعِّب استخدامها؛ تحتوي حزمة ldapscripts على سكربتات متعلقة بهذه الأدوات التي يجدها بعض الأشخاص أسهل في الاستخدام. ثبِّت الحزمة: sudo apt-get install ldapscriptsثم عدِّل الملف ‎/etc/ldapscripts/ldapscripts.conf حتى يصبح شبيهًا بالآتي: SERVER=localhost BINDDN='cn=admin,dc=example,dc=com' BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" SUFFIX='dc=example,dc=com' GSUFFIX='ou=Groups' USUFFIX='ou=People' MSUFFIX='ou=Computers' GIDSTART=10000 UIDSTART=10000 MIDSTART=10000أنشِئ الآن الملف ldapscripts.passwd لكي يستطيع rootDN الوصول إلى الدليل: sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd" sudo chmod 400 /etc/ldapscripts/ldapscripts.passwdملاحظة: ضع كلمة المرور الخاصة بمستخدم rootDN بدلًا من «secret». أصبحت السكربتات جاهزةً لإدارة دليلك؛ هذه بضعة أمثلة حول طريقة استخدامها: إنشاء مستخدم جديد: sudo ldapadduser george exampleهذا ما سيُنشِئ مستخدمًا بمعرِّف george ويضبط مجموعة المستخدم الرئيسية إلى example. تغيير كلمة مرور المستخدم: sudo ldapsetpasswd george Changing password for user uid=george,ou=People,dc=example,dc=com New Password: New Password (verify):حذف مستخدم: sudo ldapdeleteuser georgeإضافة مجموعة: sudo ldapaddgroup qaحذف مجموعة: sudo ldapdeletegroup qaإضافة مستخدم إلى مجموعة: sudo ldapaddusertogroup george qaعليك أن ترى الآن خاصية memberUid لمجموعة qa ذات القيمة george. إزالة مستخدم من مجموعة: sudo ldapdeleteuserfromgroup george qaيجب أن تزال الآن الخاصية memberUid من المجموعة qa. يسمح لك سكربت ldapmodifyuser بإضافة أو حذف أو استبدل خاصيات المستخدم؛ يستخدم هذا السكربت البنية العامة لأداة ldapmodify، على سبيل المثال: sudo ldapmodifyuser george # About to modify the following entry : dn: uid=george,ou=People,dc=example,dc=com objectClass: account objectClass: posixAccount cn: george uid: george uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/george loginShell: /bin/bash gecos: george description: User account userPassword:: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk= # Enter your modifications here, end with CTRL-D. dn: uid=george,ou=People,dc=example,dc=com replace: gecos gecos: George Carlinيجب أن يصبح الآن المستخدم gecos باسم «George Carlin». ميزة جميلة من ميزات ldapscripts هو نظام القوالب؛ تسمح لك القوالب بتخصيص خاصيات المستخدم، والمجموعة، وكائنات الجهاز؛ فعلى سبيل المثال، لتفعيل قالب user، عدِّل الملف ‎/etc/ldapscripts/ldapscripts.conf مغيّرًا: UTEMPLATE="/etc/ldapscripts/ldapadduser.template"هنالك عينات عن القوالب في مجلد ‎/etc/ldapscripts، انسخ أو أعد تسمية ملف ldapadduser.template.sample إلى ‎/etc/ldapscripts/ldapadduser.template: sudo cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.templateعدِّل القالب الجديد ليضيف الخاصيات التي تريدها؛ سيُنشِئ ما يلي مستخدمين جدد بقيمة inetOrgPerson للخاصية objectClass: dn: uid=<user>,<usuffix>,<suffix> objectClass: inetOrgPerson objectClass: posixAccount cn: <user> sn: <ask> uid: <user> uidNumber: <uid> gidNumber: <gid> homeDirectory: <home> loginShell: <shell> gecos: <user> description: User account title: Employeeلاحظ القيمة <ask> المُستخدَمة للخاصية sn؛ وهي ما سيجعل ldapadduser يسألك عن قيمتها. هنالك أدوات في هذه الحزمة لم نشرحها هنا، هذه هي قائمةٌ كاملةٌ بها: ldaprenamemachine ldapadduser ldapdeleteuserfromgroup ldapfinger ldapid ldapgid ldapmodifyuser ldaprenameuser lsldap ldapaddusertogroup ldapsetpasswd ldapinit ldapaddgroup ldapdeletegroup ldapmodifygroup ldapdeletemachine ldaprenamegroup ldapaddmachine ldapmodifymachine ldapsetprimarygroup ldapdeleteuserالنسخ الاحتياطي والاسترجاعالآن يجب أن يعمل LDAP كما نريده تمامًا، فحان الآن الوقت للتحقق من أن عملنا يمكن أن يُستَرجَع وقت الحاجة. كل ما نحتاج هو طريقة لنسخ قاعدة بيانات ldap احتياطيًا، وخصوصًا السند الخلفي (backend التي هي cn=config) والواجهة الأمامية (frontend التي هي dc=example,dc=com)؛ إذا كنت ستنسخ هذه القواعد نسخًا احتياطيًا إلى- ولِنَقُل- ‎/export/backup، فإننا سنستخدم slapcat كما هو موضَّح في السكربت الآتي المدعو ‎/usr/local/bin/ldapbackup: #!/bin/bash BACKUP_PATH=/export/backup SLAPCAT=/usr/sbin/slapcat nice ${SLAPCAT} -n 0 > ${BACKUP_PATH}/config.ldif nice ${SLAPCAT} -n 1 > ${BACKUP_PATH}/example.com.ldif nice ${SLAPCAT} -n 2 > ${BACKUP_PATH}/access.ldif chmod 640 ${BACKUP_PATH}/*.ldifملاحظة: هذه الملفات هي ملفات نصية غير مضغوطة تحتوي كل شيء في قواعد بيانات LDAP بما فيها مخطط الشجرة، وأسماء المستخدمين، وكل كلمات المرور؛ لذلك ربما تفكر في جعل ‎/export/backup قسمًا مشفرًا؛ وحتى كتابة سكربت يشفر هذه الملفات عند إنشائها، وربما تفعل كلا الأمرين، ولكن ذلك متعلقٌ بمتطلبات الأمن في نظامك. كل ما يلزم الآن هو الحصول على سكربت مهام مجدولة (cron) لتشغيل هذا البرنامج كل فترة زمنية (ترى أنها مناسبة)؛ سيكون ملائمًا للكثيرين جدولة تنفيذ البرنامج مرة واحدة كل يوم؛ لكن قد يحتاج الآخرون إلى مراتٍ أكثر في اليوم؛ هذا مثال عن سكربت cron مدعو ‎/etc/cron.d/ldapbackup، والذي سيعمل كل ليلة في تمام الساعة 22:45: MAILTO=backup-emails@domain.com 45 22 * * * root /usr/local/bin/ldapbackupوبعد إنشاء الملفات، يجب نقلها لخادوم النسخ الاحتياطي. وعلى فرض أنك أعدت تثبيت ldap، فإن عملية الاسترجاع ستكون شبيهةً بما يلي: sudo service slapd stop sudo mkdir /var/lib/ldap/accesslog sudo slapadd -F /etc/ldap/slapd.d -n 0 -l /export/backup/config.ldif sudo slapadd -F /etc/ldap/slapd.d -n 1 -l /export/backup/domain.com.ldif sudo slapadd -F /etc/ldap/slapd.d -n 2 -l /export/backup/access.ldif sudo chown -R openldap:openldap /etc/ldap/slapd.d/ sudo chown -R openldap:openldap /var/lib/ldap/ sudo service slapd startمصادرالمصدر الأساسي هو توثيق www.openldap.org.هنالك الكثير من صفحات الدليل للحزمة slapd؛ هذه أهمها آخذين بعين الاعتبار المعلومات المقدمة في هذا الفصل:man slapd man slapd-config man slapd.access man slapo-syncprovصفحات الدليل الأخرى: man auth-client-config man pam-auth-updateصفحة ويكي مجتمع أوبنتو «OpenLDAP» تحتوي مجموعةً من الملاحظات.كتاب O'Reilly المدعو «LDAP System Administration».كتاب Packt المدعو «Mastering OpenLDAP».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: OpenLDAP Server.
  4. يفترض هذا الدرس أنّك قد قمتَ بالفعل بإنشاء خادوم افتراضي خاصّ (VPS) وإضافة العديد من حسابات المستخدمين إليه. يتم تطبيق نظام الحصص (Quotas) في غالب الأحيان على مستخدمي FTP أو SFTP، ولكن من الممكن أيضًا تطبيقه على أيّ مستخدم على النظام. لاحظ أنّه من غير الممكن استخدام ميّزة المستخدم الوهمي (virtual user) عبر VSFTP، لأنّ المستخدمين لا يجب أن يكونوا موجودين على النظام أصلًا. يتم استخدام الحصص لتقييد المساحة التي يمكن لمستخدم أو مجموعة أن يستخدمها على الخادوم. هناك عادةً طريقتان لإدارة الحصص: الأولى عبر إنشاء نظام ملفّاتٍ فارغ خاصّ بمستخدمٍ معيّن ومن ثمَّ ضمّه (mount) إلى النظام. ميّزة هذه الطريقة هي أنّك لا تحتاج تثبيت أيّ حزمة إضافية خارجية. والطريقة الثانية هي عبر استخدام أداة لإدارة الحصص وتنظيمها. ميّزة هذه الطريقة هي إمكانية تغيير الحصص بسهولة بدون الحاجة إلى القيام بأيّ تغييراتٍ معقّدة على نظام الملفّات. تثبيت Quotaسنبدأ العملية عبر تثبيت برنامج quota: apt-get install quotaيجب أن يتم تعديل خيارات الضمّ (mount) الخاصّة بنظام الملفّات قبل أن نتمكّن من استخدام الحصص. يجب أن نفتح ملفّ fstab ونقوم بتعديله عبر الأمر التالي: sudo nano /etc/fstabيتم تفعيل الحصص عبر إضافة usrquota و/أو grpquota إلى خيارات الضمّ للقرص الصلب الرئيسي. عند استخدام usrquota، فإنّه سيتم تفعيل الحصص على مستخدمين معيّنين فقط، بينما يسمح خيار grpquota بتفعيل نظام الحصص لمجموعات معيّنة. يمكن إضافة الخيارين بشكلٍ منفصل بناء على النتيجة التي تريد الوصول إليها. يجب أن يتم تعديل ملفّ fstab كالتالي لتفعيل نظام الحصص على حسابات المستخدمين (إذا كنتَ تريد تفعيل نظام الحصص على المجموعات، فقم بإضافة grpquota): LABEL=DOROOT / ext4 errors=remount-ro,usrquota 0 1احفظ الملفّ وقم بتفعيل خيارات الضمّ الجديدة عبر إعادة ضمّ نظام الملفّات بالأمر: mount -o remount /سيقوم الأمر التالي بإنشاء ملفّ حصص جديد في مسار الجذر الخاصّ بنظام الملفّات. سيكون هذا الملفّ عبارةً عن ملف فهرس يتم استخدامه بواسطة نظام الحصص لإدارة حجم حصّة كلّ مستخدم من مساحة القرص. يحتوي الملفّ أيضًا على تقييدات المستخدمين والإعدادات المضبوطة. quotacheck -cum /يتألّف الأمر من المُعامِلات الثلاثة التالية: يقوم المُعامِل c بالإشارة إلى ضرورة إنشاء ملفٍّ جديد، وسيقوم بالكتابة فوقه في حال كان موجودًا مسبقًا.يشير المُعامِل u إلى أنّه يجب إنشاء ملفّ فهرس جديد للمستخدمين. لإنشاء ملفّ فهرس للمجموعات كذلك، قم بإضافة المُعامِل g في الأمر السابق.وأخيرًا يحدد المُعامِل m أنّه ليس هناك حاجة إلى القيام بعمليّة ضمّ بوضع القراءة فقط لنظام الملفّات بأكمله لإنشاء ملفّات الفهارس.بسبب استخدام المُعامِل m، فإنّه من الممكن أن يحصل عدم تطابق صغير بين الحجم الذي قمتَ بتحديده لحصّة مساحة المستخدم وبين الحجم الذي سيتم استخدامه بالفعل من قبل برنامج quota. تأكّد من أنّه لا يوجد مستخدم يقوم حاليًا برفع الملفّات إلى الخادوم عند تطبيق الأمر السابق لتقليل حجم الفرق. يقوم الأمر التالي بتفعيل نظام الحصص على نظام الملفّات المطلوب: quotaon /يمكن استخدام أمرٍ مشابه لتعطيل نظام الحصص بأكمله: quotaoffإعداد الحصص المختلفة لحسابات المستخدمينيمكن إعداد الحصص باستخدام الأمر edquota متبوعًا باسم المستخدم أو اسم المجموعة. سيقوم الأمر بفتح محرر الملفّات الافتراضي، في درسنا هذا، سنفترض أنّ المستخدم ftpuser يجب أن يتم تخصيص مساحة 10ميغابت له. الأمر الذي سنستخدمه هو هذا: edquota ftpuserوالذي سيقوم بفتح الملفّ للتعديل: Disk quotas for user ftpuser (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/disk/by-label/DOROOT 8 10000 10240 2 0 0يعرض محرر النصوص 7 أعمدة مختلفة: يحدد اسم نظام الملفّات الذي تمّ تفعيل نظام الحصص عليه.يحدد حجم الكُتَل (Blocks) المُستخدمة حاليًا من قبل المستخدم.يحدد حدّ soft block للمستخدم على نظام الملفّات.يحدد حدّ hard block للمستخدم على نظام الملفّات.يحدد عدد عُقَد inodes المُستخدمة حاليًا بواسطة المستخدم.يحدد حدّ soft inode للمستخدم على نظام الملفّات.يحدد حدّ hard inode للمستخدم على نظام الملفّات.تشير الكُتَل (Blocks) إلى حجم المساحة التي يجب استخدامها، بينما تشير الـinodes إلى عدد الملفّات/المجلّدات التي يمكن استخدامها. عادةً ما يتم استخدام حجم الكتلة في برنامج quota. حدّ hard block هو المساحة القصوى من القرص الصلب التي يمكن لمستخدم أو مجموعة استخدامها. بمجرّد الوصول إلى هذا الحدّ، فلن يتم استخدام أيّ مساحة إضافية من على القرص الصلب. يُعرِِّف حدّ soft block أيضًا أقصى مساحة يمكن للمستخدم أو المجموعة استخدامها، إلّا أنّه وعلى عكس hard block، فإنّه يمكن للمستخدم أن يقوم بتخطّي الحدّ الأقصى المسموح لفترة معيّنة من الزمن فقط، تعرف هذه الفترة باسم فترة المهلة (grace period). سنتعرّف على المزيد من المعلومات عنها لاحقًا في هذا الدرس. في المثال أعلاه، استخدمنا الحدّ الناعم (soft limit) بمساحة 9,785Mb والحدّ الصلب (hard limit) بمساحة 10Mb. يمكنك القيام ببدء عملية نقل ملفّات عبر برتوكول FTP/SFTP، حيث يكون الملفّات المرفوعة بحجم 12Mb مثلًا(طالما يكون حجمها أكبر من الحدّ الصلب hard limit). سيتم إرجاع رسالة خطأ إليك من طرف برنامج عميل FTP/SFTP تخبرك بأنّ عملية الرفع قد فشلت. بالطبع فإنّ تخصيص مساحة 10Mb للمستخدم ليس أمرًا منطقيًا، وسنخصص الآن حدًّا ناعمًا بمساحة 976Mb وحدًّا صلبًا بمساحة 1Gb: Disk quotas for user ftpuser (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/disk/by-label/DOROOT 8 1000000 1048576 2 0 0للتحقق من حصّة مستخدم معيّن، يمكن أن يتم تنفيذ الأمر التالي متبوعًا باسم المستخدم أو اسم المجموعة: quota ftpuserوسيكون الخرج على شكل: Disk quotas for user ftpuser (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/disk/by-label/DOROOT 8 1000000 1048576 2 0 0إنشاء التقاريرمن الممكن إنشاء التقارير من مختلف أنظمة الحصص عبر الأمر: repquota -aوالذي سيقوم بطباعة الخرج التالي لك: *** Report for user quotas on device /dev/disk/by-label/DOROOT Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ------------------------------------------------------------------------------------ root -- 1118708 0 0 37093 0 0 daemon -- 68 0 0 4 0 0 man -- 9568 0 0 139 0 0 www-data -- 2908 0 0 15 0 0 nobody -- 0 0 0 1 0 0 libuuid -- 24 0 0 2 0 0 Debian-exim -- 44 0 0 10 0 0 mysql -- 30116 0 0 141 0 0 ftpuser -- 8 1000000 1048576 2 0 0فرعي: تحديد فترة مهلةلإعطاء المستخدمين الحاليين بعض الوقت لتقليل مساحة ملفّاتهم على الخادوم، يمكن إعداد فترة مهلة (grace period). تسمح هذه الفترة للمستخدمين بأن يتعدّوا الحدّ الناعم (soft limit) المحدد لهم بينما يبقون تحت سقف الحدّ الصلب (hard limit). يمكن إعداد فترة المهلة عن طريق الأمر التالي (لاحظ أنّ هذه الفترة سيتم تطبيقها على جميع المستخدمين، لا يوجد إمكانية لتطبيقها على مستخدمين معيّنين مثلًا) ويمكنك التعبير عن الفترة التي تريدها بالثواني أو الدقائق أو الساعات أو الشهور.. إلخ: edquota -tسيعطيك الأمر أعلاه الخرج التالي وسيقوم بإخبارك بالوقت الذي يمكنك أن تستخدمه. في هذا الدرس، تمّ استخدام فترة 7 أيام لفترة المهلة: Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/disk/by-label/DOROOT 7days 7daysخاتمةسيتم تحديث وتطبيق الحصص تلقائيًا عندما يقوم مستخدمٌ ما بإنشاء / حذف / نقل ملفّ أو مجلّد. تذكّر أنّ برنامج quota يعمل عبر النظر إلى مجلّدات المستخدمين أو المجموعات المحددة. يمكن لمستخدمي SSH التخلّص من نظام الحصص عبر تغيير مالك الملفّات الخاصّة بهم. ترجمة -وبتصرف- للمقال: How To Enable User and Group Quotas لصاحبه: Jan Stevens.
  5. يشكّل ضبط إعدادات المستخدمين والمجموعات في لينكس واحدًا من المهارات الأساسية لإدارة نظام التشغيل، ويتضمن ذلك مراقبة تسجيلات الدخول الممكنة لكافة مكونات النظام. نستعرض في هذا الدرس المعلومات الأساسية عن إدارة المستخدمين وتسجيلات الدخول، سنطبق أمثلتنا على توزيعة Ubuntu 14.04 إلا أنه يمكنك بالتأكيد المتابعة مهما كانت التوزيعة التي تستخدمها. استعراض المستخدمين الحاليينتخزّن أسماء ومعلومات جميع مستخدمي نظام لينكس ضمن ملف etc/passwd/ سواءً أكانت تشير إلى مستخدمين حقيقيين (مثلي ومثلك) أو مرتبطة بتشغيل إحدى الخدمات أو وظائف النظام. يتضمن الملف etc/passwd/ معلومات حول المستخدمين المنشأين على نظام التشغيل موزعة على عدّة أسطر، بحيث يُخصّص سطر لكل مستخدم، لنلقِ الآن نظرة على محتويات الملف: less /etc/passwdroot:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh … ينقسم كل سطر من الأسطر السابقة إلى عدّة خانات يفصل بينها علامة النقطتين (:)، وما يهمنا من هذه الخانات حاليًا هي الخانة الأولى والتي تعبّر عن الاسم الفريد لكل مستخدم، كما يمكن من خلال الأمر التالي الحصول على القائمة السابقة مُضمّنة بأسماء المستخدمين فحسب: cut -d : -f 1 /etc/passwdroot daemon bin sys sync games … وكما ترى حصلنا في هذه المرة على أسماء المستخدمين فقط، السطر الأول مثلًا يحوي اسم المستخدم الإداري ذي الصلاحيات المطلقة root، كما ستجد في القائمة اسم المستخدم الخاص بك، وبين هذا وذاك هناك عددٌ آخر من المستخدمين قد لا تكون مُلِمًا بوظائفهم، مثل المستخدم dbus والذي يُشغّل بواسطة خدمة dbus، أو polkitd المسؤول عن خدمة polkit، وهكذا.. ففي لينكس يتم فصل صلاحيات المهام كلًّا على حدى، وبهذه الطريقة نضمن ألّا تنتقل أيّة مشاكل محتملة في خدمة ما إلى سائر مكونات النظام. استعراض المجموعات الحاليةتخزّن أسماء المجموعات وبعض المعلومات عنها في ملف etc/group/، والذي يمكننا استعراض محتوياته بالأمر التالي: less /etc/grouproot:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: … وكما ترى فإن معظم الأسماء هنا ورد ذكرها في قائمة "المستخدمين الحاليين" منذ قليل، وهذا يدفعنا للتساؤل؛ لمَ؟ يعود السبب في ذلك إلى ما يسمى بـ"مجموعات المستخدم الخاصة" user private group أو UPG، وهو أسلوب في الإدارة والإعداد يسهّل إدارة المجموعات في لينكس، بحيث تنشئ مجموعة خاصة بكل مستخدم تتم إضافته، وتحمل هذه المجموعة ذات اسم المستخدم، وتُعيّن لتكون مجموعته الرئيسيّة، ويكون هو عضوها الوحيد، وحينها يغيّر قناع الطرح لـ umask من 022 إلى 002. ماذا يعني ذلك؟ تسمح هذه العملية بمزيد من المرونة في حالة عمل فريق ما ضمن مشروع، فبدلًا من أن تعود ملكية كل ملف يتم إنشاؤه في المشروع إلى الشخص المُنشئ، تنسد ملكية الملفات في هذه الحالة إلى ذات المجموعة المالكة للمجلد الأب، مما يسهل عملية التشارك. يتم ذلك عبر صلاحية تسمى setgid، إلا أنّ ذلك كلّه خارج نطاق موضوعنا اليوم. هنا أيضًا يمكن عرض أسماء المجموعات فقط من مجمل محتويات الملف etc/group/ عبر الأمر: cut -d : -f 1 /etc/grouproot daemon bin sys adm tty disk … معرفة المستخدم المُسجّل حاليًايتيح الأمر w في لينكس معرفة المستخدم النشط حاليًا على نظام التشغيل بالإضافة إلى مجموعة من المعلومات المهمة عنه، مثل توقيت تسجيل الدخول والأمر المستخدم حاليًا: w19:37:15 up 5:48, 2 users, load average: 0.33, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w إضافة للأمر w تعرض التعليمة who معلومات أكثر اختصارًا، تتضمن اسم المستخدم النشط وتوقيت دخوله فقط: root pts/0 2013-09-05 19:15 (rrcs-72-43-115-186.nyc.biz.rr.com) demoer pts/1 2013-09-05 19:37 (rrcs-72-43-115-186.nyc.biz.rr.com) تقييد تسجيلات دخول المستخدمينتقييد تسجيلات الدخول باستخدام etc/passwd/يمكن من خلال التعديل على ملف etc/passwd/ تقييد تسجيل دخول أحد المستخدمين عن طريق إسناد قيمة معينة للصدفة shell المحدّدة له، لنفترض أنه لدينا مستخدم مسجّل بالاسم "messagebus" ضمن ملف etc/passwd/: less /etc/passwd | grep messagebus messagebus:x:102:104::/var/run/dbus:/bin/false قيمة الحقل الأخير في الخرج السابق تعبّر عن الأمر الذي يتم تنفيذه عقب تسجيل الدخول بنجاح، وهي في مثالنا هنا bin/false/. فإذا حاولت تسجيل دخول المستخدم messagebus كمستخدم جذر root فستلاحظ عدم نجاح المحاولة، وفشل التحويل إلى المستخدم الجديد: sudo su messagebus لنحاول الآن تسجيل الدخول بواسطة المستخدم sshd: sudo su sshd This account is currently not available.حصلنا على الرسالة السابقة بسبب قيمة الصدفة shell المستخدمة لـ ssh وهي usr/sbin/nologin/. less /etc/passwd | grep sshd sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin أظن أنك قد عرفت الآن كيف نمنع دخول أحد المستخدمين بواسطة هذه الطريقة؟ ببساطة سنستخدم الأداة usermod لتغيير قيمة الصدفة shell من إحدى قيمها المسموحة إلى أخرى وهمية: sudo usermod -s /usr/sbin/nologin usernameتقييد تسجيلات الدخول باستخدام etc/shadow/يتيح التعديل على ملف etc/shadow/ طريقة أخرى مشابهة لتقييد تسجيلات الدخول، وهو ملف يضم كلمات سر مستخدمي النظام بشكل مشفّر، ولاستعراض محتوياته يمكننا كتابة الأمر التالي في الطرفية: sudo less /etc/shadowroot:6r79Dod3Y$3hi3QklpGEQMxwQGEss4ueNNPkoUrqUe3SwyAacaxl.Lmgq1r9i4mTblV1z6NfKMNXH1Cpnq.4iKhOiQd7Riy1:15953:0:99999:7::: daemon:*:15455:0:99999:7::: bin:*:15455:0:99999:7::: sys:*:15455:0:99999:7::: sync:*:15455:0:99999:7::: games:*:15455:0:99999:7::: man:*:15455:0:99999:7::: …يُعرَض الخرج السابق على عدّة أسطر، بحيث يُخصّص سطر لكل مستخدم، ويضم كل سطر اسم المستخدم في الخانة الأولى، وكلمة السر بشكل مشفّر في الخانة الثانية "6r79Dod3Y#3…" مسبوقة بإشارة ($)، أما الخانات التي تبدأ بعلامة النجمة (*) ولا تتلوها قيمة مشفرة من المحارف فهي تخصّ المستخدمين المتعلقين بإدارة خدمات النظام، والتي لا تملك كلمات مرور، ولا يمكنها تسجيل الدخول كمستخدم عادي. يمكننا تعطيل خانة كلمة المرور لأحد الحسابات بوضع إشارة التعجب(!) أمام قيمتها المشفّرة (تسمى هذه العملية بقفل الحساب)، ولإجراء ذلك يمكننا الاستعانة بواحدة من الأداتين التاليتين: أولًا الأمر passwd والذي يتيح قفل حساب مستخدم ما بواسطة الخيار "l-" أو إلغاء قفله مع الخيار"u-": sudo passwd -l username sudo less /etc/shadow | grep username username:!$6$vpNJ3oFe$5GSh2aU2BDcpdjvQeNFzh0zTgyRUl26x4dn77mFE/vaoXwd19m7okX44jO8TWaVqNRL8vUVTAcZVmgUT8dR.4.:15953:0:99999:7:::وكما ترى فإن كلمة المرور تبقى موجودة ضمن الملف بقيمتها المشفرة إلا أنها غير فعّالة بسبب وجود إشارة التعجب (!) أمامها. ولإلغاء قفل الحساب مجددًا يمكننا كتابة: sudo passwd -u username بِذَات الطريقة يمكن استخدام الأمر usermod لقفل أو إلغاء قفل حسابات المستخدمين وفق الخيارات "L-" و "U-" على الترتيب: sudo usermod -L username sudo usermod -U username يجب الانتباه هنا إلى أن هذه الطريقة في القفل تعمل مع حسابات المستخدمين العاديين أي تلك التي تستخدم كلمة مرور لتوثيق دخولها، بينما لا تعمل مع حسابات المستخدمين الخاصة بخدمات النظام (ممن لا تملك كلمة مرور). تقييد تسجيلات الدخول باستخدام etc/nologin/في بعض الحالات الحرجة قد تحتاج لتعطيل تسجيلات دخول كافة المستخدمين باستثناء المستخدم الجذر root، مثل حالات الصيانة الشاملة، أو فيما لو تعرض أحد تلك الحسابات لاختراق أمني. عمومًا، يمكن إنجاز ذلك ببساطة، عن طريق إنشاء ملف فارغ باسم etc/nologin/: sudo touch /etc/nologin بهذه الطريقة تمنع كافة تسجيلات الدخول للنظام باستثناء من يملك امتيازات المستخدم الجذر، حيث تتم إعادة المستخدمين إلى الصدفة المحليّة local shell أو إخبارهم بأن التوثيق خاطئ! ولإضافة بعض التوضيح يجب ألا يترك الملف السابق فارغًا، بحيث تطبع عبارة على الشاشة تقدّم بعض الشرح: sudo sh -c 'echo "Planned maintenance. Log in capabilities will be restored at 1545 UTC" > /etc/nologin' لنقوم بتجربة جديدة الآن لاختبار ما سبق: ssh user@host user@host's password: Planned maintenance. Log in capabilities will be restored at 1545 UTC Connection closed by host عند الانتهاء من التعامل مع الوضع الحرج يمكن إعادة كل شيء على حاله بحذف الملف السابق etc/nologin/: sudo rm /etc/nologinمراقبة تسجيلات الدخولبعد ضبط مختلف الإعدادات المتعلقة بالمستخدمين والمجموعات لديك، نأتي الآن إلى مهارة أخرى أساسية تتعلق بمراقبة النظام، إذ تحتفظ أنظمة لينكس الحديثة بسجلات لكافة محاولات تسجيل الدخول في ملف مستقل يخزّن على المسار var/log/auth.log/: sudo less /var/log/auth.logMay 3 18:20:45 localhost sshd[585]: Server listening on 0.0.0.0 port 22. May 3 18:20:45 localhost sshd[585]: Server listening on :: port 22. May 3 18:23:56 localhost login[673]: pam_unix(login:session): session opened fo r user root by LOGIN(uid=0) May 3 18:23:56 localhost login[714]: ROOT LOGIN on ‘/dev/tty1’ Sep 5 13:49:07 localhost sshd[358]: Received signal 15; terminating. Sep 5 13:49:07 localhost sshd[565]: Server listening on 0.0.0.0 port 22. Sep 5 13:49:07 localhost sshd[565]: Server listening on :: port 22 … باستخدام الأمر lastيتيح لنا الأمر last استعراض تسجيلات الدخول الأخيرة لنظام التشغيل موزعة على جدول: lastdemoer pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37 still logged in root pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37 - 19:37 (00:00) root pts/0 rrcs-72-43-115-1 Thu Sep 5 19:15 still logged in root pts/0 rrcs-72-43-115-1 Thu Sep 5 18:35 - 18:44 (00:08) root pts/0 rrcs-72-43-115-1 Thu Sep 5 18:20 - 18:20 (00:00) demoer pts/0 rrcs-72-43-115-1 Thu Sep 5 18:19 - 18:19 (00:00)يُستمد الخرج السابق من الملف etc/log/wtmp/. وكما نرى فإن السطرين الأول والثالث يوضحان لنا بأن المستخدم لا يزال قيد الدخول logged in، أما في باقي الأسطر فيعرض توقيت كل جلسة والزمن المستغرق فيها. باستخدام الأمر lastlogإذا رغبت باستعراض السجّل السابق من زاوية أخرى، فيمكنك مشاهدة توقيت آخر مرة سجّل بها مستخدمو النظام دخولهم وذلك عبر الأمر lastlog والذي يعرض لنا محتويات الملف etc/log/lastlog/ مرتبة وفقًا لمدخلات الملف etc/passwd/: lastlogUsername Port From Latest root pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37:02 +0000 2013 daemon **Never logged in** bin **Never logged in** sys **Never logged in** sync **Never logged in** games **Never logged in** …كما ترى يعرض الخرج السابق تاريخ آخر تسجيل دخول لكل مستخدم، بينما تُعرض العبارة "Never logged in" أمام المستخدمين الذين يتم إنشاؤهم لإدارة خدمات النظام، والذين لا يملكون كلمات مرور كما مرّ معنا. خاتمةإنه لمن المهم أن نعلم أين يحتفظ النظام بالمعلومات المتعلقة بتسجيلات الدخول، وذلك بهدف مراقبة التغييرات التي قد تشك بأمرها، لتعطيل تسجيل الدخول عن بعض أو كل المستخدمين. ترجمة -وبتصرف- للمقال Configuring and Managing Users and Groups لصاحبه Justin Ellingwood.