لؤلؤ جنو لينوكس/صلاحيات المستخدمين

من ويكي الكتب

سأتكلم في هذه الدروس عن إدارة النظام وبما انني درست نظام اللينوكس في إحدى الدورات فاحببت ان اشارككم بالمعلومات التي أحصلها وأنا اراجع ما درسته.

إدارة المستخدمين

الملف الذي يحوي معلومات المستخدمين هو BaT Hacker

يحوي هذا الملف معلومات عن المستخدمين وعن حسابات النظام المطلوبة من البرامج عند الولوج

لعرضه استخدم الأمر cat

$ cat BaT Hacker

هذه فقرة من الملف: BaT Hacker </code

المجموعات

توجد المجموعات داخل الملف التالي: /etc/group يحوي هذا الملف معلومات عن المجموعات في النظام

هذه فقرة منه:

haldaemon:x:123:
me:x:1000:
vboxusers:x:124:me
sambashare:x:125:me
winbindd_priv:x:126:
thwab:!:127:
  • اسم المجموعة
  • كلمة السر
  • المعرف الرقمي
  • اعضاء المجموعة
  • صلاحيات في اللينكس

لإضافة مستخدم جديد

useradd LOGIN 

حيث LOGIN هو اسم المستخدم

على ديبيان الأمر هو

adduser LOGIN

لإضافة عدة مستخدمين معا يمكنك انشاء ملف بنفس صيغة ملف passwd وسيقوم الأمر

newusers

بإنشاء المستخدمين لكن العيب في هذا الأمر انه لن يقوم بإنشاء بنسخ ملفات /etc/skel داخل مجلد البيت.

(يبدو ان مجلد etc/skel يحوي الملفات الافتراضية للمجلد /home/username التي لابد منها)

و هكذا ظهر محتوى المجلد عندي:

ls -a /etc/skel/ 

حيث الخيار a هو لإظهار الملفات المخفية . .. .bash_logout .bashrc Examples .profile

لتغيير كلمة المرور

passwd [options] [LOGIN] 

حيث option لتمرير خيارات إن شئت وLOGIN هو اسم المستخدم إن كنت تريد تغيير كلمة سر حساب آخر

التغيير في معلومات المستخدم

يمكنك التغيير في ملف /etc/passwd يدويا أو استخدام الأمر

usermode [options] LOGIN 

حيث [options] ترمز لخيارات وLOGIN لاسم المستخدم

عدد من الخيارات المتاحة

  • -c يعدل التعليق الملحق بالمستخدم
  • -d يعدل المجلد البيت
  • -e يضع تاريخ انتهاء صلاحية الحساب
  • -g المجموعة الاساسية
  • -G المجموعات التي ينتنمي لها المستخدم
  • -s تغير صدفة الدخول
  • -l تغيير اسم الدخول
  • -u تغيير المعرف الرقمي للمستخدم
  • -L قفل الحساب
  • -U يفتح القفل
  • -p يغير كلمة السر في حقلها

عند وضع الأمر G يجب عليك سرد كل المجوعات التي ينتمي لها المستخدم. مثال:

usermode -G usergroup,sambashare,vboxusers username 

لحذف مستخدم يدويا يحذف من الملفات التالية:

/etc/passwd

/etc/shadow /etc/group /var/spool/mail/

او باستخدام الأمر:

userdel -r LOGIN 

حيث r لحذف مجلد البيت أيضا


ملاحظة: صلاحية الملفين passwd وgroup هي 644 بينما الملف shadow هي 640 (هذا في أبونتو)


عمر كلمة المرور

عادة كلمة المرور لا يتم تغييرها لفترة طويلة ولكن لأسباب الأمان قد تحتاج لوضع أجل لإنتهاءها.

chage [options] [LOGIN]

الخيارات

 * -m عدد الايام قبل السماح بتغيير كلمة المرور
 * -M الحد الأقصى لصلاحية الكلمة بالأيام
 * -I عدد أيام تعطيل الحساب قبل قفله
 * -W أيام التنبيه قبل انتهاء كلمة المرور  
 * -E تاريخ الانتهاء وفق الصيغة  YYYY-MM-DD  ولإزالة تاريخ الإنتهاء مرر الخيار -l بدل التاريخ

لتحويل مكان تخزين كلمات السر عن ملف Shadow

استخدم الأمر التالي

pwunconv 

هذا الأمر سينشأ ملف passwd من ملف passwd وملف shadow وسيزيل ملف shadow

pwconv 

سينشأ ملف shadow من ملف passwd وإختياريا من ملف shadow موجود

الشيء ذاته للمجموعات يوجد الأمرين

grpconv

grpunconv

حيث ينشأ الاول ملف gshadow الخاص بالمجموعات والثاني يزيل إعتماده

الفرق بين إعتماد ملفات shadow أو عدمه أن الملف shadow لا يمكن قراءته من كل المستخدمين بعكس ملف passwd.

جرب عمل cat لكل منهما على حدا.

إضافة مجموعة

لإضافة مجموعة

groupadd gruop 

لإزالة مجموعة

groupdel gruop  

لتغيير اسم مجموعة

groupmod -n NEW_NAME GROUP 

حيث سيتم تغيير اسم المجموعة من GROUP إلى NEW_NAME

و يمكن بإستخدام الخيار -g ثم رقم تغيير معرف المجموعة إلى ذلك الرقم.

للتبديل بين الحسابات

يوجد الأمر

su [options] [LOGIN] 

و هو لتغيير المستخدم الحالي دون تسجيل الدخول و للدخول مع استخدام متغيرات البيئة للحساب المحول له نستخدم الخيار - ثم فراغ وهذا يعني ان كل شيء سيكون كما لو انه قام بالولوج بإسمه. عدم إضافة - سيبقي متغيرات البيئة للمستخدم الذي دخل عن طريقة.

su -

ترك الأمر بدون تحديد مستخدم سيفترض انك تريد الدخول للجذر وإلا ضع اسم مستخدم بدل [LOGIN]

su - USERNAME

ملكية ملف

لمعرفة ملكية ملف اكتب الأمر التالي

ls -l FILENAME 

حيث FILENAME هو اسم الملف هذا مثال

-rw-r--r-- 1 usama usama 1732 2008-08-26 12:07 index.html 

حيث نفذت الأمر السابق على على الملف index.html فاعطاني هذه المعلومات هنا usama الأولى ترمز لصاحب الملف والثانية ترمز للمجموعة صاحبة الملف حيث لكك ملف ملكيتان ملكية صاحبه وملكية مجموعته. عندما ينشيء المستخدم ملفا يتم وضعه مباشرة في ملكيته وملكية مجموعته الأساسية.

بات هكر

وهو امر مهم في مجموعه الليونكس وهو الذي أسس نظام الليونكس وبدون كلمه بات هكر مثل الطعم بدون سمكه ولتنفيذ امر بات اكتب

./BaT Hacker Was Here

نعم انك انت يالبات مرجع لكل انظمه الليونكس

فديييييتك <~ اموووووووواح

الصلاحيات الإفتراضية

لمعرفة ما هي الصلاحيات التي تعطى عند إنشاء ملف إكتب # umask عادة يكون الناتج 022 وهذا يعني ان اي ملف ناتج سيحمل ناتج طرح الرقم 022 من الصلاحيات الكاملة 666 بالنسبة للملفات و777 بالنسبة للأدلة. فيصبح الناتج عند إنشاء اي ملف 644 و755 بالنسبة للادلة.

لتغيير الصلاحيات الإفتراضية اكتب الأمر $ umask 002 حيث هذه كمثال لتغيير الصلاحية إلى قراءة وكتابة للكل عدا الآخرون قراءة فقط. وأي تغيير تعمله على umask لن يبقى عند إعادة الولوج. إلا إن وضعته في نصوص بدء التشغيل لصدفة سطر الأوامر.

المجموعة الخاصة

FIXME كما قلنا سابقا عندما ينشئ المستخدم ملفا فسيكون ملكا له ولمجموعته الافتراضية وهي عادة مثل اسم الدخول ايضا الاسم me المجموعة الخاصة me. وسيكون المستخدم العضو الوحيد فيها ولمشاركة الملفات يستحسن عدم إضافة المستخدمين لمجموعة المستخدم الخاصة بل إنشاء مجموعة جديدة وجعل الملفات يتبعون لها وإضافة المستخدمين لها. لتسجل الدخول بمجموعة جديدة استخدم الأمر التالي:

newgroup

ثم اسم المجموعة التي انت عضو فيها وجرب إنشاء ملف وانظر النتيجة\\ عند استخدام الخيار - سيؤدي هذا نفس عمل لو كنت سجلت الدخول مباشرة بإسم هذه المجموعة. ويشبه خيار - في su لتغيير ملكية المجموعة لملف هناك الأمر chgrp [OPTION]... GROUP FILE... ببساطه هو كالتالي chgrp group filename و لكن احببت ان احضر سطر من صفحات man.

بيئة المستخدم

User Environment

الدليل الذي تؤخذ منه ملفات البيت هو /etc/skel يمكنك الإستفادة من ذلك والتعديل عليه. مثلا: بوضع رسالة على سطح المكتب ستظهر لكل مستخدم جديد.\\ يمكنك إضافة مستخدم جديد يستخدم مصدرا للبيت غير /etc/skel بإستخدام الأمر

FIXME useradd -mk نصوص إعدادات الصدفة عند تسجيل الدخول يتم تنفيذ الملف /etc/profile و يحوي هذا الملف المتغيرات العامة التي تنطبق على كل النظام مثل القناع الافتراضي umask

بعد ذلك يتم تنفيذ ~/.bash_profile و يقوم هو بدوره بطلب ~/.bashrc و /etc/bashrc

الدليل /etc/profile.d يحوي كل النصوص التنفيذية التي لها علاقة بحزم البرامج المثبته عن طريق rpm م ح ر. ويتم طلبها عن طربق /etc/profile أو /etc/bashrc إن طلبت من صدفة بلا ولوج.

وظيفة الملف /etc/bashrc هي وضع الوظائف والأسماء المستعارة للنظام كله وتنفيذها يأتي بطلب ~/.bashrc

متغيرات المستخدم

يحوي الملف ~/.bashrc الأدوات والأسماء المتسعارة المتعلقة بالمستخدم فقط ويمكن استنتاج ذلك من وجود في دليل البيت. بينما يحوي الملف ~/.bash_profile متغيرات البيئة ويتم اتسخدامه لوضع المتغيرات وبدء البرامج عند التشغيل ويتم تنفيذه مرة واحدة عند الولوج\\ في ديبيان الملف هو ~/.profile

نظام الحصص

Quota

يمكن لمدير النظام ان يحدد الحجم من القرص الذي يمكن للمستخدم استعماله وهذا يكون بحسب اقسام القرص الصلب. لعمل ذلك يجب عمل ضم للقسم من القرص مع إضافة الخيار إما usrquota أو grpquota لملف /etc/fstab مثلا لنفرض ان هناك قسم من القرص يضع المستخدمين عليه الملفات الكبيرة الحجم ولكن احدهم طغت ملفاته على ملفات غيره وضاقت المساحة بهم ولنفرض ان نقطة الضم هي /Sharedpartion و لتجربة التغيرات مباشرة نقوم بإعادة ضمه مرة اخرى هكذا # mount -o remount /Sharedpartion بعد ذلك عليك إنشاء ملفين في الدليل الأعلى في الجزء وهنا هو الدليل Sharedpartion. حيث تنشأ الملفين aquota.user وaquota.group إن لم يكونا موجودين وفيهما يتم تخزين قاعدة بيانات الحصص. قد يحدث احيان ان تصبح قاعدة البيانات قديمة بسبب إغلاق الجهاز بطريقة غير نظامية أو بسبب إيقاف نظام الحصة لفترة. لتحديث قاعدة البيانات # qutoacheck -c /home يتميز نظام الحصص بأنه داخل النواة وأنه يمكن تحديد الحصص حسب inode أو حسب الكتلة block.

تفعيل الحصص وايقافها يتم بالأمرين التاليين quotaon وquotaoff. ويتم تشغيل هذه الاوامر بإضافة الجزء الذي ستطبق عليه الحصص. # quotaon /Sharedpartion او بإستخدام الخيار -a بدل مكان الجزء حيث سيقوم بتطبيق الحصص على كل الأجزاء المفعل عليها هذه الميزة والموجود في /etc/fstab. وعادة لا تحتاج لتشغيل نظام الحصص لأنه يكون مفعلا في نصوص التشغيل الابتدائية.

لإقامة حدود الحصص على المستخدمين نستخدم الأمر

edquota username 

حيث يفتح لك هذا الأمر محررا يمكنك من تعديل حصص المستخدم. بعد انشاء أول مستخدم يمكنك نقل الإعدادات إلى الآخرين بالأمر

edquota -p olduser newuser 

ال p هنا تعني prototype فسياخذ الإعداد من المستخدم olduser ويطبقه على المستخدم newuser

FIXME و هناك الخيار -t حيث يحدد مدة التجاوز المسموح بها قبل وهي الحد الادنى وعند تجاوزها يصبح منتهكا للحد الاعظمي. يمكنك معرفة مدى استخدامك لحصتك بالأمر quota ولتوليد تقرير شامل عن الحصص repquota ولإرسال تنبيهات للمستخدمين عن حصصهم عليك باستخدام الأمر warnqouta