English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
نظام Linux هو نظام تشغيل متعدد المستخدمين ومتعدد المهام، أي مستخدم يريد استخدام موارد النظام يجب أن يطلب من مدير النظام حسابًا أولاً، ثم يدخل إلى النظام باستخدام هوية هذا الحساب.
من جهة أخرى، يمكن لحساب المستخدم مساعدة مدير النظام على متابعة المستخدمين الذين يستخدمون النظام، وتحكم في الوصول إلي موارد النظام. ومن جهة أخرى، يمكن أن يساعد المستخدمين في تنظيم الملفات، وتوفير حماية أمنية للمستخدمين.
للحساب الخاص بكل مستخدم اسم مستخدم واحد وكلمة مرور خاصة به.
بعد إدخال اسم المستخدم وكلمة المرور الصحيحة عند تسجيل الدخول، يمكن للمستخدم الدخول إلى النظام والدليل الرئيسي الخاص به.
لتحقيق إدارة حسابات المستخدمين، يجب أن يتم إكمال العمل التالي من بين أمور أخرى:
إضافة، إزالة وتعديل حسابات المستخدمين.
إدارة كلمات المرور للمستخدمين.
إدارة مجموعات المستخدمين.
إدارة حسابات المستخدمين تتعلق أساسًا بإضافة، تعديل وازالة حسابات المستخدمين.
إضافة حساب المستخدم هو إنشاء حساب جديد في النظام، ثم تخصيص موارد مثل رقم المستخدم، مجموعة المستخدمين، الدليل الرئيسي وبيئة الوجهة للدخول. الحساب المضاف يكون محبوسًا، غير قادر على الاستخدام.
useradd خيار اسم المستخدم
شرح المعلمات:
خيارات:
-c comment يحدد تعليقًا تعريفيًا.
-d دليل يحدد دليل الدخول الرئيسي للمستخدم، إذا لم يكن هذا الدليل موجودًا، فيمكن استخدام خيار -m أيضًا لإنشاء الدليل الرئيسي.
-g مجموعة يحدد المجموعة التي ينتمي إليها المستخدم.
-G مجموعة، مجموعة يحدد المجموعات الإضافية التي ينتمي إليها المستخدم.
-s ملف Shell يحدد Shell الدخول للمستخدم.
-u رقم المستخدم يحدد رقم المستخدم للمستخدم، إذا كان هناك خيار -o، فيمكن تكرار استخدام هوية المستخدم الخاصة بالآخرين.
اسم المستخدم:
تحديد اسم المستخدم الجديد
# useradd –d /home/sam –m sam
يقوم هذا الأمر بإنشاء مستخدم sam، ويستخدم الخيارين -d و-m لإنشاء دليل الدخول الرئيسي /home/sam ( /home هو الدليل الرئيسي للمستخدمين).
# useradd -s /bin/sh -g group –G adm,root gem
يقوم هذا الأمر بإنشاء مستخدم جديد gem، وShell الدخول للمستخدم هو /bin/sh، ويتبع مجموعة المستخدم group، و كذلك مجموعة المستخدم adm وroot، حيث تكون مجموعة المستخدم group هي المجموعة الرئيسية.
ربما يتم إنشاء مجموعة جديدة هنا: #groupadd group وgroupadd adm
زيادة حساب المستخدم تعني إضافة سجل جديد للمستخدم في ملف /etc/passwd، وتحديث ملفات النظام الأخرى مثل /etc/shadow، /etc/group وما إلى ذلك.
يقدم Linux أداة إدارة النظام المتكاملة userconf، وهي تستخدم لإدارة حسابات المستخدم بشكل موحد.
حذف حساب المستخدم يعني حذف سجلات المستخدم من ملفات النظام مثل /etc/passwd، و في بعض الحالات حذف دليل المستخدم الرئيسي.
لحذف حساب مستخدم موجود يمكن حذفه من النظام.
userdel خيار اسم المستخدم
الخيار الشائع هو -r، ويتمثل دوره في حذف دليل المستخدم الرئيسي.
على سبيل المثال:
# userdel -r sam
يحذف هذا الأمر سجلات المستخدم sam في ملفات النظام (مثل /etc/passwd، /etc/shadow، /etc/group وما إلى ذلك) ويحذف دليل المستخدم الرئيسي.
تحرير حساب المستخدم يعني تعديل الخصائص المتعلقة بالمستخدم بناءً على الواقع، مثل رقم المستخدم، الدليل الرئيسي، مجموعة المستخدم، و Shell للدخول، وما إلى ذلك.
استخدام الأمر usermod لتحرير معلومات المستخدم الحالية، ويكون format كالتالي:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
على سبيل المثال:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
$ passwd Old password:****** New password:******* Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd sam New password:******* Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
# passwd -d sam
此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再允许该用户登录了。
passwd命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:
# passwd -l sam
كل مستخدم لديه مجموعة مستخدم، يمكن للنظام إدارة جميع المستخدمين في مجموعة مستخدم واحدة بشكل مركزي. قد تكون إشارات مجموعات المستخدمين مختلفة في أنظمة Linux المختلفة، مثل أن المستخدم في Linux ينتمي إلى مجموعة المستخدم التي تحمل نفس الاسم، ويتم إنشاء هذه المجموعة عند إنشاء المستخدم.
إدارة مجموعات المستخدمين تتضمن إضافة، إزالة و تعديل مجموعات المستخدمين. في الواقع، زيادة، إزالة و تعديل مجموعات المستخدمين هو تحديث ملف /etc/group.
groupadd خيار مجموعة
الخيارات التي يمكن استخدامها تشمل:
-g GID يقوم بتحديد معرف مجموعة المستخدم الجديد (GID).
-o عادة ما يستخدم مع خيار -g، مما يعني أن يمكن أن يكون معرف GID للمجموعة الجديدة نفسه كما هو عند مجموعات المستخدمين الموجودة في النظام.
# groupadd group1
هذا الأمر يقوم بإضافة مجموعة جديدة group1 إلى النظام، ويعتمد معرف مجموعة جديدة على أكبر معرف مجموعة موجودة حاليًا.
# groupadd -g 101 group2
هذا الأمر يقوم بإضافة مجموعة جديدة group2 إلى النظام، ويحدد معرف مجموعة جديدة هو 101.
groupdel مجموعة المستخدم
# groupdel group1
هذا الأمر يقوم بإزالة مجموعة group1 من النظام.
groupmod خيار مجموعة
الخيارات الشائعة تشمل:
-g GID يقوم بتحديد معرف مجموعة المستخدم الجديد.
-o يستخدم مع خيار -g، يمكن أن يكون معرف GID الجديد للمجموعة الجديدة نفسه كما هو عند مجموعات المستخدمين الموجودة في النظام.
-n مجموعة مستخدم جديد يقوم بتغيير اسم مجموعة المستخدم إلى اسم جديد
# groupmod -g 102 group2
هذا الأمر يغير معرف مجموعة group2 إلى 102.
# groupmod –g 10000 –n group3 group2
هذا الأمر يغير معرف مجموعة group2 إلى 10000، ويغير اسم المجموعة إلى group3.
يمكن للمستخدم بعد تسجيل الدخول استخدام الأمر newgrp للانتقال إلى مجموعة مستخدمين أخرى، وهو معيار هذا الأمر هو مجموعة المستخدمين الهدف. على سبيل المثال:
$ newgrp root
هذا الأمر يغير المستخدم الحالي إلى مجموعة المستخدمين الرئيسية أو المجموعات الإضافية للمستخدم، بشرط أن تكون مجموعة المستخدمين الرئيسية أو المجموعات الإضافية للمستخدم فعلاً مجموعة المستخدم الرئيسية أو المجموعات الإضافية. يشبه إدارة حساب المستخدم، يمكن إدارة إدارة المجموعات أيضًا من خلال أدوات إدارة النظام المتكاملة.
هناك العديد من الطرق لإنجاز عمل إدارة المستخدمين، ولكن كل طريقة هي في الواقع تعديل ملفات النظام ذات الصلة.
تخزن معلومات المستخدمين والمجموعات في بعض ملفات النظام، مثل /etc/passwd, /etc/shadow, /etc/group.
سيتم شرح محتويات هذه الملفات بشكل منفصل.
كل مستخدم في نظام Linux يحتوي على سطر مسجل في ملف /etc/passwd، يحدد بعض الخصائص الأساسية للمستخدم.
يمكن قراءة هذا الملف من قبل جميع المستخدمين. ويكون محتواه مشابهًا للمثال التالي:
# cat /etc/passwd root:x:0:0:المستخدم الرئيسي:/: daemon:x:1:1:دمى النظام:/etc: bin:x:2:2:مالك أوامر النظام:/bin: sys:x:3:3:مالك ملفات النظام:/usr/sys: adm:x:4:4:حساب النظام المالي:/usr/adm: uucp:x:5:5:مدير UUCP:/usr/lib/uucp: auth:x:7:21:مدير التحقق:/tcb/files/auth: cron:x:9:16:دمى Cron:/usr/spool/cron: listen:x:37:4:دمى الشبكة:/usr/net/nls: lp:x:71:18:مدير الطابعة:/usr/spool/lp: sam:x:200:50:Sam san:/home/sam:/bin/sh
من خلال المثال السابق، يمكننا رؤية أن سطرًا واحدًا في /etc/passwd يمثل مستخدمًا، ويتم تقسيم كل سطر إلى 7 حقول بواسطة داءرة (:). وتكون صيغة وتعريف كل حقل كالتالي:
اسم المستخدم:كلمة المرور:رقم التعريف:رقم المجموعة:وصف تعريفي:مجلد رئيسي:شل تسجيل
عادةً لا يتجاوز الطول 8 حروف، ويكون مكونًا من الأحرف الكبيرة والأحرف الصغيرة و/أو الأرقام. لا يمكن أن يحتوي اسم المستخدم على داءرة (:)، لأن داءرة هنا هي علامة الفصل.
للتوافق، من الأفضل ألا تحتوي اسم المستخدم على علامة النقطة (.)، وألا تبدأ بشرطة (-) أو علامة المزيد (+).
على الرغم من أن هذا الحقل يحتوي فقط على سلسلة التشفير لمفتاح المستخدم، وليس النص المفتوح، إلا أن ملف /etc/passwd قابل للقراءة من قبل جميع المستخدمين، لذا يظل هذا نقطة أمان. لذلك، يستخدم العديد من أنظمة Linux (مثل SVR4) تقنية shadow، وتخزن الحقيقة المشفرة للمفتاح الخاص للمستخدم في ملف /etc/shadow، بينما يحتوي حقل كلمة المرور في ملف /etc/passwd على حرف خاص فقط، مثل "x" أو "*".
عادةً يتناسب مع اسم المستخدم. إذا كان لديهم معرفات مستخدم متماثلة، فإن النظام الداخلي يعتبرهم مستخدمين واحدًا، ولكن يمكن أن يكون لديهم كلمات مرور مختلفة، دليل رئيسي مختلف، وShell للدخول المختلفة وما إلى ذلك.
عادةً، تكون نطاق قيمة معرف المستخدم بين 0 و 65 535. 0 هو معرف المستخدم القياسي root، بينما يتم احتساب 1 إلى 99 للمستخدمين المحتملين كحسابات إدارية، وتبدأ معرفات المستخدمين العاديين من 100. في نظام Linux، هذا الحد هو 500.
إنه يمثل سجلاً في ملف /etc/group.
على سبيل المثال، الاسم الحقيقي للمستخدم، الهاتف، العنوان وما إلى ذلك، هذا الحقل ليس له استخدام عملي. لا يوجد تنسيق موحد لهذا الحقل في أنظمة Linux المختلفة. في العديد من أنظمة Linux، يتم حفظ هذا الحقل كنص شرحي عشوائي يستخدم كإخراج الأمر finger.
إنه الدليل الذي يكون المستخدم فيه بعد تسجيل الدخول إلى النظام. في معظم الأنظمة، يتم تنظيم دليل المستخدم الرئيسي لكل مستخدم في نفس الدليل المحدد، واسم دليل المستخدم الرئيسي هو اسم تسجيل الدخول للمستخدم. لدى المستخدمين صلاحيات القراءة والكتابة والإ�行ار (البحث) على دليلهم الرئيسي، بينما يتم تعيين صلاحيات الوصول إلى هذا الدليل حسب الحالة الخاصة.
Shell هو واجهة بين المستخدم و نظام Linux. يحتوي Shell الخاص بـ Linux على أنواع متعددة، وكل منها له خصائص مختلفة. من الشائعة: sh (Bourne Shell), csh (C Shell), ksh (Korn Shell), tcsh (TENEX/TOPS-20 type C Shell), bash (Bourne Again Shell) وما إلى ذلك.
يمكن للمدققين النظاميين تحديد شل الدخول للمستخدم بناءً على حالة النظام وعادات المستخدمين. إذا لم يتم تحديد Shell، يستخدم النظام sh كشل دخول افتراضي، أي أن قيمة هذا الحقل هي /bin/sh.
يمكن أيضًا تحديد شل الدخول للمستخدم على برنامج معين (وهذا البرنامج ليس محول أوامر).
باستخدام هذه الخاصية، يمكننا تقييد المستخدمين لتشغيل تطبيقات معينة فقط، حيث يخرج المستخدم تلقائيًا من النظام بعد انتهاء تشغيل التطبيق. بعض أنظمة Linux تتطلب أن تكون البرامج المسجلة في النظام فقط التي تظهر في هذا الحقل.
هؤلاء المستخدمون يحتويون أيضًا على سجلة في ملف /etc/passwd، ولكن لا يمكنهم الدخول، لأنهم يحتويون على شل دخول فارغ. وجودهم يهدف إلى تسهيل إدارة النظام وتلبية متطلبات مالك الملف للعمليات النظامية.
المستخدمون الافتراضيون الشائعون كالتالي:
معنى المستخدمين الافتراضيين bin يحمل ملفات الأوامر المستخدمة sys يحمل ملفات النظام adm يحمل ملف الحساب uucp يستخدمه UUCP lp يستخدمه نظام lp أو lpd nobody يستخدمه NFS
1- بالإضافة إلى المستخدمين الافتراضيين المذكورين أعلاه، هناك العديد من المستخدمين الافتراضيين المعياريين، مثل: audit, cron, mail, usenet وما إلى ذلك، ويستخدم كل منهم لعمليات وملفات معينة.
بما أن ملف /etc/passwd يمكن قراءته من قبل جميع المستخدمين، إذا كانت كلمة المرور للمستخدم بسيطة أو تحتوي على قواعد واضحة، يمكن لجهاز كمبيوتر عادي فك الشفرة بسهولة، لذا يضع نظام Linux الذي يتمتع بأعلى مستوى من الأمان كلمة المرور المشفرة في ملف منفصل، وهو ملف /etc/shadow. فقط المستخدمين ذوي الصلاحيات الخاصة يملكون صلاحية القراءة على هذا الملف، مما يضمن أمان كلمة المرور للمستخدم.
2- سجلات سطر الملف /etc/shadow تتطابق مع سطر الملف /etc/passwd، ويتم إنشاؤها تلقائيًا بواسطة الأمر pwconv بناءً على بيانات ملف /etc/passwd.
تنسيقه مشابه لملف /etc/passwd، يتكون من عدد من الحقول، ويتم فصل الحقول بـ ":". هذه الحقول هي:
اسم المستخدم:كلمة المرور المشفرة:تاريخ آخر تعديل:فترة الحد الأدنى:فترة الحد الأعلى:زمن التحذير:زمن عدم النشاط:زمن انتهاء الصلاحية:علامات
اسم المستخدم "الاسم المستخدم" هو نفسه في ملف /etc/passwd.
مجال "الرقم السري" يحتوي على كلمة المرور المشفرة للمستخدم، طولها 13 حرفًا. إذا كان فارغًا، فإن المستخدم المعني ليس لديه كلمة مرور، ولا يحتاج إلى كلمة مرور للدخول؛ إذا كان يحتوي على حروف لا تنتمي إلى مجموعة { ./0-9A-Za-z }، فإن المستخدم المعني لا يمكنه الدخول.
مجال "تاريخ التعديل الأخير" يُعرف بأنه عدد الأيام من نقطة معينة، إلى تاريخ تعديل كلمة المرور الأخيرة. قد تكون هذه النقطة مختلفة بين الأنظمة المختلفة. على سبيل المثال، في SCO Linux، يكون هذا الوقت هو 1 يناير 1970.
مجال "أدنى فترة الصلاحية" يشير إلى عدد الأيام المطلوبة بين تعديلين لـ كلمة المرور.
مجال "أقصى فترة الصلاحية" يشير إلى أكبر عدد من الأيام التي يمكن أن تكون كلمة المرور صالحة.
مجال "زمن التحذير" يُعرف بأنه عدد الأيام من بداية التحذير للمستخدم حتى انتهاء صلاحية كلمة المرور.
مجال "زمن اللانشطة" يُعرف بأنه أكبر عدد من الأيام التي يمكن أن تكون فيها حساب المستخدم نشطًا دون تسجيل الدخول، ولكن الحساب يظل صالحًا.
مجال "تاريخ انتهاء الصلاحية" يقدم عدد أيام صريح، إذا تم استخدام هذا المجال، فإنه يقدم فترة حياة الحساب المحددة. بعد انتهاء المدة، لا يعد الحساب صالحًا، ولا يمكن استخدامه للدخول.
فيما يلي مثال على ملف /etc/shadow:
# cat /etc/shadow root:Dnakfw28zf38w:8764:0:168:7::: daemon:*::0:0:::: bin:*::0:0:::: sys:*::0:0:::: adm:*::0:0:::: uucp:*::0:0:::: nuucp:*::0:0:::: auth:*::0:0:::: cron:*::0:0:::: listen:*::0:0:::: lp:*::0:0:::: sam:EkdiSECLWPdSa:9740:0:0::::
تجميع المستخدمين هي وسيلة من وسائل إدارة المستخدمين وتحكم في إمكانية الوصول في نظام Linux.
يتبع كل مستخدم مجموعة واحدة؛ يمكن أن يحتوي مجموعة واحدة على عدة مستخدمين، يمكن لمستخدم أن يكون عضوًا في عدة مجموعات.
عندما يكون المستخدم عضوًا في عدة مجموعات، يتم تسجيل المجموعة الرئيسية للمستخدم في ملف /etc/passwd، وهي المجموعة التي يتم تسجيل الدخول إليها بشكل افتراضي عند التسجيل، وتسمى المجموعات الأخرى مجموعات إضافية.
عندما يحتاج المستخدم إلى الوصول إلى ملفات تتبع مجموعة إضافية، يجب عليه أولاً استخدام الأمر newgrp لتصبح عضوًا في المجموعة التي يريد الوصول إليها.
تخزن جميع معلومات المجموعات في ملف /etc/group. شكل هذا الملف مشابه لملف /etc/passwd، ويتم فصل المجالات ببعضها البعض بواسطة الثوابت (:)، وتشمل هذه المجالات:
اسم المجموعة:كلمة المرور:رقم المجموعة:قائمة المستخدمين في المجموعة
اسم "المجموعة" هو اسم المجموعة للمستخدمين، يتكون من الأحرف أو الأرقام. مثل اسم الـ /etc/passwd، لا يجب تكرار اسم المجموعة.
مجال "كلمة المرور" يحتوي على كلمة المرور المشفرة للمستخدمين المجموعين. في معظم أنظمة Linux، لا توجد كلمات المرور للمجموعات، أي أن هذا المجال يكون فارغًا أو يحتوي على *.
"رقم معرف المجموعة" يشبه رقم معرف المستخدم، وهو عدد صحيح يستخدمه النظام الداخلي للتعرف على المجموعة.
"قائمة مستخدمي المجموعة" هي قائمة بجميع المستخدمين الذين ينتمون إلى هذه المجموعة /b],ويتم فصل المستخدمين بفاصلة (,). قد تكون هذه المجموعة المجموعة الرئيسية للمستخدم أو مجموعة إضافية.
مثال على ملف /etc/group كالتالي:
root::0:root bin::2:root,bin sys::3:root,uucp adm::4:root,adm daemon::5:root,daemon lp::7:root,lp users::20:root,sam
إضافة أو حذف مستخدمين يعتبر أمرًا سهلاً لكل مدير نظام Linux، ولكن عندما نريد إضافة عشرات أو مئات أو حتى آلاف المستخدمين، فإننا لا نستطيع استخدام الأمر useradd لكل مستخدم على حدة، بل يجب أن نجد طريقة سهلة لإنشاء عدد كبير من المستخدمين. يقدم نظام Linux أدوات لإنشاء عدد كبير من المستخدمين، مما يسمح لك بإنشاء عدد كبير من المستخدمين في وقت واحد، ويجب اتباع الطريقة التالية:
كل عمود يجب أن يكون مكتوبًا وفقًا لنمط ملف تشفير كلمات المرور /etc/passwd، ويجب أن لا تكون اسم المستخدم، UID، ومجلد الدخول للمستخدمين متطابقة، حيث يمكن ترك حقل كلمة المرور فارغًا أو إدخال الرمز x. مثال على محتوى ملف user.txt كالتالي:
user001::600:100:user:/home/user001:/bin/bash user002::601:100:user:/home/user002:/bin/bash user003::602:100:user:/home/user003:/bin/bash user004::603:100:user:/home/user004:/bin/bash user005::604:100:user:/home/user005:/bin/bash user006::605:100:user:/home/user006:/bin/bash
# newusers < user.txt
ثم يمكنك تنفيذ الأمر vipw أو vi /etc/passwd لتحقق مما إذا كانت بيانات المستخدمين هذه قد ظهرت في ملف /etc/passwd وقد تم إنشاء مجلدات الدخول للمستخدمين.
تفسير shadow password التي تم إنشاؤها في /etc/shadow، وكتابتها مرة أخرى في /etc/passwd، وحذف عمود shadow password في /etc/shadow. هذا لسهولة العمل التالي، أي إلغاء إعداد shadow password.
# pwunconv
النمط هو:
اسم المستخدم:كلمة المرور
مثال على محتوى ملف passwd.txt كما يلي:
user001:123456 user002:123456 user003:123456 user004:123456 user005:123456 user006:123456
إنشاء كلمة المرور للمستخدم، حيث سيقوم chpasswd بكتابة كلمة المرور المحولة من خلال أمر /usr/bin/passwd في عمود كلمة المرور في /etc/passwd.
# chpasswd < passwd.txt
إجراء أمر /usr/sbin/pwconv لإ编码 كلمة المرور كـ shadow password، وكتابة النتيجة في /etc/shadow.
# pwconv
بهذا تم إنشاء عدد كبير من المستخدمين، بعد ذلك يمكنك التحقق في مجلد /home لتحقق مما إذا كانت إعدادات صلاحيات مجلدات المستخدمين مكتوبة بشكل صحيح، ولتحقق من صحة كلمة المرور للمستخدمين.