سؤال أمر لسرد جميع المستخدمين؟ وكيفية إضافة أو حذف أو تعديل المستخدمين؟


أنا بحاجة إلى أمر لسرد جميع المستخدمين في المحطة. وكيفية إضافة أو حذف أو تعديل المستخدمين من المحطة.

يمكن أن يساعد ذلك في إدارة حساباتك بسهولة من خلال الجهاز.


702
2018-01-24 20:23


الأصل


سيد الجواب sed 's/:.*//' /etc/passwd - Avinash Raj
قائمة المستخدمين: awk -F: '{ print $1 }' /etc/passwd - saviour123


الأجوبة:


لسرد جميع محلي المستخدمين الذين يمكنك استخدامهم:

cut -d: -f1 /etc/passwd

لسرد جميع المستخدمين القادرين على المصادقة (بطريقة ما) ، بما في ذلك غير المحلي ، راجع هذا الرد: https://askubuntu.com/a/414561/571941

بعض أوامر إدارة المستخدم الأكثر فائدة (تقتصر أيضا على محلي المستخدمين):

لإضافة مستخدم جديد ، يمكنك استخدام:

sudo adduser اسم مستخدم جديد

أو:

sudo useradd اسم مستخدم جديد

أنظر أيضا: ما الفرق بين adduser و useradd؟

لإزالة / حذف مستخدم ، يمكنك أولاً استخدام:

sudo userdel اسم المستخدم

ثم قد ترغب في حذف الدليل الرئيسي لحساب المستخدم المحذوف:

sudo rm -r / home /اسم المستخدم

(يرجى استخدام بحذر الأمر أعلاه!)

لتعديل اسم المستخدم الخاص بالمستخدم:

usermod -l اسم مستخدم جديد اسم المستخدم القديم

لتغيير كلمة المرور لمستخدم:

sudo passwd اسم المستخدم

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

sudo chsh اسم المستخدم

لتغيير التفاصيل الخاصة بالمستخدم (على سبيل المثال الاسم الحقيقي):

sudo chfn اسم المستخدم

وبطبيعة الحال ، انظر أيضا: man adduser، man useradd، man userdel... وما إلى ذلك وهلم جرا.


940
2018-01-24 19:28



رادو نسيت أن أذكر sudo chfn <username> الذي يغير تفاصيل المستخدم (على سبيل المثال الاسم الحقيقي). حاولت إضافة هذا كتعليق ، لكنني حصلت على خطأ يخبرني أنه يجب أن يكون لدي +50 سمعة للقيام بذلك. - Mikaela
أعتقد أنه يجب التأكيد على أن الإجابة الصحيحة للسؤال المرتبط هي askubuntu.com/a/381646/16395 --- خلاف ذلك عليك أن تأخذ في الاعتبار سياسات GID / UID أوبونتو باليد. الإجابة المقبولة ليست واضحة. - Rmano
sudo userdel DOMAIN \\ johndoe يعطيني الخطأ: "userdel: لا يمكن إزالة الإدخال" DOMAIN \ johndoe 'من / etc / passwd - نظرت في / etc / passwd وهي ليست موجودة هناك ، على الأرجح لأنها " المجال "حساب؟ - 00fruX
@ 00fruX نعم ... إذا كنت تستخدم قاعدة بيانات مستخدم مركزية فستحتاج إلى التعامل معها مباشرة. - Oli♦
+1 لـ ما الفرق بين adduser و useradd؟ - sonlexqt


فقط اضغط السيطرة+البديل+تي على لوحة المفاتيح الخاصة بك لفتح المحطة الطرفية. عند فتحه ، قم بتشغيل الأمر (الأوامر) أدناه:

cat /etc/passwd

أو

less /etc/passwd
more /etc/passwd

يمكنك أيضًا استخدام awk:AWK

awk -F':' '{ print $1}' /etc/passwd

73
2018-01-24 19:38



كيف تضيف المستخدمين بواسطة الأمر؟ - nux
يمكنك استخدام useradd أمر. - Mitch♦
nux متأخر قليلا للحزب ، ولكن من استخدام سطر الأوامر adduser في حين أن، useradd يجب أن يقتصر على البرامج النصية حيث يعرف المؤلف حقًا حقًا ما يفعله. - flindeberg


أسهل طريقة للحصول على هذا النوع من المعلومات getent - نرى manpage ل getent أمر Manpage icon. بينما يعطي هذا الأمر نفس الناتج cat /etc/passwd من المفيد تذكرها لأنها ستمنحك قوائم بعناصر متعددة في نظام التشغيل.

للحصول على قائمة بجميع المستخدمين الذين تكتبهم (بما أن المستخدمين مدرجون في /etc/passwd)

getent passwd

لإضافة مستخدم مستخدم جديد إلى النظام الذي تكتبه

sudo adduser newuser

لإنشاء مستخدم لديه جميع الإعدادات الافتراضية المطبقة.

مكافأة: لإضافة أي مستخدم (على سبيل المثال anyuser) إلى مجموعة (على سبيل المثال قرص مدمج) اكتب

sudo adduser anyuser cdrom

قمت بحذف مستخدم (على سبيل المثال عفا عليها الزمن) مع

sudo deluser obsolete

إذا كنت تريد حذف دليله / رسائله الرئيسية ، فذلك يعني أنك تكتب

sudo deluser --remove-home obsolete

و

sudo deluser --remove-all-files obsolete

سوف يزيل المستخدم و جميع الملفات التي يملكها هذا المستخدم على النظام بأكمله.


52



من المفيد أن نتذكر أن getent لا يقوم فقط بطباعة خرج المستخدمين في / etc / passwd ولكن كل المستخدمين في كل ملفات userdb المكوّنة على نظام معين ، سواء كان ذلك / etc / passwd أو LDAP ، إلخ. - Marcin Kaminski


هذا يجب أن يحصل ، تحت معظم الحالات العادية، جميع المستخدمين العاديين (غير النظاميين ، غير الغريبين ، إلخ):

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

هذا يعمل من خلال:

  • القراءة في من /etc/passwd
  • استخدام : كمحدد
  • إذا كان الحقل الثالث (رقم معرف المستخدم) أكبر من 1000 وليس 65534 ، فسيتم طباعة الحقل الأول (اسم مستخدم المستخدم).

ويرجع ذلك إلى أنه في العديد من أنظمة linux ، يتم الاحتفاظ بأسماء المستخدمين فوق 1000 للمستخدمين غير المحظوظين (الذين يمكنك أن تقولهم بشكل طبيعي). بعض المعلومات عن هذا هنا:

معرف المستخدم (UID) هو عدد صحيح موجب فريد يتم تعيينه بواسطة Unix-like   نظام التشغيل لكل مستخدم. يتم تحديد كل مستخدم للنظام   من خلال UID ، وتستخدم أسماء المستخدمين بشكل عام فقط كواجهة ل   البشر.

يتم تخزين UIDs ، جنبا إلى جنب مع أسماء المستخدمين المناظرة لها وغيرها   المعلومات الخاصة بالمستخدم ، في الملف / etc / passwd ...

يحتوي الحقل الثالث على UID ، ويحتوي الحقل الرابع على   معرف المجموعة (GID) ، والذي يكون بشكل افتراضي يساوي UID لجميع العادي   المستخدمين.

في نواة لينكس 2.4 وما فوقها ، UIDs هي أرقام صحيحة 32 بت غير موقعة   يمكن أن تمثل القيم من صفر إلى 4،294،967،296. ومع ذلك فإنه   من المستحسن استخدام قيم تصل إلى 65534 فقط من أجل الحفاظ عليها   التوافق مع الأنظمة التي تستخدم النواة القديمة أو أنظمة الملفات التي يمكنها ذلك   تستوعب فقط UIDs 16 بت.

يحتوي UID من 0 على دور خاص: فهو دائمًا الحساب الجذر (أي ،   المستخدم الاداري القاهر). على الرغم من أن اسم المستخدم يمكن أن يكون   تم تغييره في هذا الحساب ويمكن إنشاء حسابات إضافية باستخدام   على نفس UID ، ولا يكون أي إجراء حكيمًا من وجهة نظر أمنية.

عادة ما يتم حجز UID 65534 لأي شخص ، مستخدم بدون نظام   امتيازات ، على عكس مستخدم عادي (أي غير مميز).   غالبًا ما يُستخدم معرف المستخدم هذا للأفراد الذين يدخلون إلى النظام عن بُعد   عبر FTP (بروتوكول نقل الملفات) أو HTTP (نقل النص التشعبي   بروتوكول).

يتم عادةً حفظ UIDs 1 إلى 99 لمستخدمي النظام الخاص   (تسمى أحيانًا المستخدمين الزائفين) ، مثل العجلة ، الخفي ، lp ، المشغل ،   الأخبار ، والبريد ، وما إلى ذلك. هؤلاء المستخدمون هم المسؤولون الذين لا يحتاجون الإجمالي   صلاحيات الجذر ، ولكن من أداء بعض المهام الإدارية ، وبالتالي تحتاج   مزيد من الامتيازات من تلك المقدمة للمستخدمين العاديين.

بعض توزيعات Linux (أي الإصدارات) تبدأ UIDs لـ   مستخدمون غير مميزين في 100. آخرون ، مثل Red Hat ، يبدأون في   500 ، ولا يزال آخرون ، مثل ديبيان ، وتبدأ منهم في 1000. وبسبب   الاختلافات بين التوزيعات ، قد يكون التدخل اليدوي ضروريًا   إذا تم استخدام توزيعات متعددة في شبكة في مؤسسة.

أيضًا ، قد يكون من الملائم حجز مجموعة من معرفات UID للمستخدمين المحليين ،   مثل 1000 إلى 9999 ، وكتلة أخرى للمستخدمين عن بُعد (مثل   المستخدمين في مكان آخر على الشبكة) ، مثل 10000 إلى 65534. المهم   الشيء هو أن تقرر على نظام والالتزام به.

من بين مزايا هذه الممارسة حجز كتل من الأرقام   لأنواع معينة من المستخدمين هو أنه يجعلها أكثر ملاءمة ل   البحث من خلال سجلات النظام لنشاط المستخدم المشتبه به.

خلافا للاعتقاد الشائع ، ليس من الضروري أن كل دخول في   يكون حقل UID فريدًا. ومع ذلك ، يمكن أن تتسبب UIDs غير الفريدة في حدوث الأمان   المشاكل ، وبالتالي يجب أن تظل UIDs فريدة عبر كامل   منظمة. وبالمثل ، ينبغي إعادة تدوير UIDs من المستخدمين السابقين   تجنب لأطول فترة ممكنة.


21





يمكنك استخدام compgen المدمج أيضا:

compgen -u

سوف يسرد جميع المستخدمين.


21





قائمة لجميع المستخدمين الذين يمكنهم تسجيل الدخول (لا يوجد مستخدمو النظام مثل: bin، deamon، mail، sys، etc.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

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

sudo adduser new_username

أو

sudo useradd new_username

حذف/ إزالة اسم المستخدم

sudo userdel username

إذا كنت ترغب في حذف الدليل الرئيسي (الافتراضي اسم / home / username)

sudo deluser --remove-home username

أو

sudo rm -r /path/to/user_home_dir

إذا كنت ترغب في حذف جميع الملفات من النظام من هذا المستخدم (ليس فقط هو diretory المنزل)

sudo deluser --remove-all-files

15



ربما يجب عليك شرح الفرق بين adduser و useradd. إضافة أيضا sudo- قم بتثبيت الأمر الأول. يمكن قراءة ملف ظل كلمة المرور فقط كجذر. - s3lph
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow أظهر لي جميع المستخدمين بما في ذلك بن ، الخفي ، وما إلى ذلك وألقى هذا التحذير: تسلسل الهروب \$' treated as plain $ "لقد عثرت على هذه المشاركة stackoverflow.com/a/25867768/847954  وأضاف خط مائل واحد آخر وعملت بشكل جيد: awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow - jeff musk


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

user (tab tab)

يعطيني كخيارات ممكنة     useradd userdel المستخدمين المستخدمين المستخدمين - admin
إذا كنت تريد معرفة المزيد عن الأمر google أو اكتب man     رجل useradd يعطي     useradd - إنشاء مستخدم جديد أو تحديث معلومات المستخدم الجديدة الافتراضية     ...     ...

لإدراج المستخدمين يجب أن تذهب مع ما قال ميتش.

الأمل الذي يساعدني على إتمام علامة التبويب في bash ينقذني من تذكر الأشياء.


7





لمعرفة المستخدمين الذين لديهم دلائل منزلية في المجلد / home-machine على الجهاز ، قم بتشغيل الأوامر التالية

cd /home
ls 

يمكنك بعد ذلك رؤية المستخدمين الذين لديهم تفويض لتسجيل الدخول إلى الخادم. إذا أردنا النظر في ملفات أي مستخدم ، يجب أن تكون المستخدم الأساسي.


6



هذا يظهر فقط محتوى /home. بينما يضع Ubuntu أدلة المستخدم هناك بشكل افتراضي ، فإنه ليس إلزاميًا بأي حال من الأحوال. - David Foerster