آخر تحديث في
من المهم معرفة من يمكنه الوصول إلى جهاز كمبيوتر Linux (والتحكم في ملفاتك) ، ولكن يمكنك بسهولة إدراج المستخدمين في Linux لمعرفة ذلك. إليك الطريقة.
ال نظام التشغيل Linux يقدم أوامر لإنشاء المستخدمين وحذفهم والتحقق من المستخدمين الذين قاموا بتسجيل الدخول. ومع ذلك ، لا يوجد أمر لسرد المستخدمين ، سواء قاموا بتسجيل الدخول أم لا ، على النظام.
لا يزال ، هناك طريقتان لسحب هذا. إذا كنت تريد معرفة كيفية إدراج المستخدمين في Linux ، فاتبع الخطوات أدناه.
لماذا يجب عليك التحقق من قائمة مستخدمي Linux الخاصة بك
هناك عدد من الأسباب التي قد تجعلك ترغب في إدراج المستخدمين في Linux. إنها ممارسة جيدة من حيث العثور على الحسابات غير المستخدمة وحذفها. من وجهة نظر أمنية ، إنها أيضًا طريقة جيدة للتأكد من عدم وجود متسللين ينشئون حسابات مستخدمين.
هذه مهمة إدارية ربما يجب عليك القيام بها مرة واحدة على الأقل شهريًا. إذا كنت تقوم بتشغيل خادم Linux خاص بشركة ، فقد ترغب في القيام بذلك أكثر من مرة.
المستخدمون المدرجون في / etc / passwd
تحتوي جميع حسابات المستخدمين لخادم Linux على إدخالات في الملف
- اسم المستخدم.
- كلمة مرور مشفرة (x يشير إلى أن كلمة المرور موجودة بالفعل /etc/shadow)
- رقم معرف المستخدم (UID).
- رقم معرف مجموعة المستخدم (GID).
- الاسم الكامل للمستخدم ، إذا كان مدرجًا.
- دليل المستخدم الرئيسي.
- قذيفة تسجيل الدخول
لذلك ، يقودنا ذلك إلى طريقة واحدة لإدراج جميع المستخدمين على نظام Linux. يمكنك استعمال ال أقل أمر لرؤية الملف بأكمله ، شاشة واحدة في كل مرة.
أقل / الخ / passwd.
إذا كنت تريد التحقق مما إذا كان مستخدم معين موجودًا في نظام Linux ، فهذا استخدام جيد للأمر grep:
مرور أقل | جريب جيف.
إذا لم تحصل على أي مخرجات ، فهذا يعني أن هذا المستخدم غير موجود على خادم Linux.
مع ذلك ، هناك الكثير من المعلومات. يمكنك تقليصه إلى اسم المستخدم فقط ، على سبيل المثال ، باستخدام أحد ملفات awk أو يقطع الأوامر:
awk -F: '{print $ 1}' / etc / passwd. قطع -d: -f1 / etc / passwd.
يميل هذا إلى أن يكون أسهل في الفهم ، لكنه لا يزال يتيح لك عرض جميع حسابات المستخدمين المستندة إلى النظام المختلطة مع المستخدمين البشريين.
كيفية استخدام برنامج getent إلى قائمة المستخدمين
أمر آخر ، يحصل، هو أكثر فائدة. يعرض إدخالات من تكوين أي قاعدة بيانات في خادمك /etc/nsswitch.conf ملف. واحد من هؤلاء هو passwd قاعدة البيانات. ليستخدم يحصل لعرض قائمة بجميع مستخدمي Linux ، تعمل على النحو التالي:
getent passwd
يبدو الإخراج تمامًا مثل استخدام ملف أقل الأمر ، ولكنه يسرد أي مستخدمي LDAP على نظام Linux. مرة أخرى ، لدينا awk و يقطع يمكن أن تساعد الأوامر في رؤية الحقل الأول فقط ، أسماء المستخدمين.
إذا كنت تريد التحقق مما إذا كان مستخدم معين موجودًا في نظام Linux ، يحصل ذلك يجعله سهلا:
الحصول على كلمة المرور جيف.
مرة أخرى ، لا يوجد ناتج من هذا الأمر يخبرك أن المستخدم غير موجود.
استخدام رائع آخر لـ يحصل هو معرفة عدد حسابات المستخدمين الموجودة على الخادم. يتم ذلك عن طريق الأنابيب يحصلالناتج من خلال مرحاض الأمر ، مثل هذا:
getent passwd | مرحاض -l.
كما ترى ، يحتوي نظام Linux الخاص بي على إجمالي 48 حسابًا. ممتع جدًا ، لأنني الوحيد الذي يستخدمه ، لكن هذا يوضح فقط عدد حسابات النظام التي تم إنشاؤها في Linux.
استبعاد مستخدمي النظام من المستخدمين العاديين
في نظر Linux ، لا فرق بين مستخدم النظام والمستخدم البشري. في أي وقت تقوم فيه بتثبيت نظام التشغيل ، فإنه ينشئ عددًا من مستخدمي النظام. يتم إنشاء مستخدمي النظام الآخرين لحزم مختلفة ، مثل برامج خدمة الويب أو البريد.
لذا ، كيف يمكنك إدراج المستخدمين العاديين فقط على نظام Linux؟ المفتاح هنا هو فهم أنه عند إنشاء مستخدم عادي ، يتم تعيين معرف المستخدم الخاص به ضمن نطاق معين من الأرقام. عن طريق التحقق من /etc/login.defs ملف ، يمكننا تحديد نطاق قيم UID المتاحة لحسابات المستخدمين العادية.
grep -E '^ UID_MIN | ^ UID_MAX' /etc/login.defs.
بناءً على المخرجات ، أعلم أن المستخدمين العاديين يجب أن يكون لديهم UID بين 1000 و 60000. من هذا ، يمكنني إنشاء ملف يحصل الاستعلام الذي سيعرض فقط المستخدمين العاديين.
getent passwd {1000..60000}
يأخذ بنظر الأعتبار، يحصل سيظهر معلقًا حتى بعد أن يعرض ناتجه. يمكنك الضغط على السيطرة- C لإنهاء العملية ، أو انتظر حتى تنتهي. عادةً ما يستغرق الأمر أقل من 15 ثانية لإكمال البحث في ملف passwd قاعدة البيانات.
إصدار أكثر عمومية من هذا الأمر يأخذ في الحسبان اختلافًا UID_MIN و UID_MAX القيم التي قد تستخدمها الخوادم المختلفة.
Eval getent passwd {$ (awk '/ ^ UID_MIN / {print $ 2}' /etc/login.defs)..$(awk '/ ^ UID_MAX / {print $ 2}' /etc/login.defs)}
في هذا الأمر ، نستفيد من قدرة Linux على القيام بأشياء متعددة في وقت واحد. ال awk أوامر الحصول على UID_MIN و UID_MAX القيم ، ثم استخدمها داخل ملف يحصل يأمر.
الآن ، لنفترض أن كل ما نريده هو أسماء المستخدمين. مرة أخرى ، نقوم بتوجيه مخرجاتنا عبر ملف يقطع الأمر ، مثل ذلك:
Eval getent passwd {$ (awk '/ ^ UID_MIN / {print $ 2}' /etc/login.defs)..$(awk '/ ^ UID_MAX / {print $ 2}' /etc/login.defs)} | قطع -d: -f1.
قد يستغرق هذا الأمر من 10 إلى 15 ثانية ليكتمل ، لذا كن صبورًا.
إدارة مستخدمي Linux بشكل فعال
من المهم تتبع حسابات المستخدمين الموجودة على نظام Linux الخاص بك. عندما تعلم أن أحد الموظفين قد غادر ، اطلب حذف حساب المستخدم الخاص به. سيساعدك سرد مستخدمي Linux بشكل دوري في التأكد من اكتشاف أي حسابات قد تكون عالقة.
في نفس الوقت ، تأكد من متابعة سياسات أمان كلمة المرور وتشجيع المستخدمين على تغيير كلمات المرور الخاصة بهم بشكل منتظم.