لؤلؤ جنو لينوكس/صلاحيات المستخدمين
سأتكلم في هذه الدروس عن إدارة النظام وبما انني درست نظام اللينوكس في إحدى الدورات فاحببت ان اشارككم بالمعلومات التي أحصلها وأنا اراجع ما درسته.
إدارة المستخدمين
عدلالملف الذي يحوي معلومات المستخدمين هو 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