سؤال كيف يمكنني إنشاء مستخدم غير مسجل الدخول؟


أرغب في إنشاء مستخدم ومجموعة تسمى كليهما subversion على نظام RHEL 5. نظرت إلى صفحة الرجل ل useradd وأعتقد أن الأمر سيكون مجرد ...

useradd subversion

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

الغرض الرئيسي هو فقط توفير مالك لمستودع SVN.


107
2017-12-02 00:47


الأصل


هل نظرت حقا في صفحة رجل useradd ولم تجد -M (لا تقم بإنشاء دليل المنزل)؟ - inemanja


الأجوبة:


يمكنك استعمال ال -M التبديل (تأكد من أنه رأس مال) لضمان عدم إنشاء أي دليل رئيسي:

useradd -M subversion

ثم قفل الحساب لمنع تسجيل الدخول:

usermod -L subversion

59
2017-12-02 00:58



هذه ليست إجابة قوية بشكل خاص ، لا يزال لدى المستخدم الذي تم إنشاؤه بهذه الطريقة غلافًا. وأنت لم تحذر حتى البروتوكول الاختياري أن هذا هو الحال. بأثر رجعي من شأنه أن يكون usermod -s /bin/false subversion، أو مع --shell /bin/false إلى useradd - Lee Hambley
@ مؤمن يتم تأمين الحساب ، وجود قذيفة هو نقطة خلافية. - John T
beak في الواقع فقط سوف يكون المستخدم الجذر قادرا على سو للحساب مقفل ، ولكن لماذا تهتم إذا كان الشخص قد حصلت على الوصول الجذر بالفعل؟ ولا يعمل إعداد shell كثيرًا عند تشغيل المستخدم su -s /bin/bash username وتجاوز ذلك. - John T
شكرا لأخذ الوقت الكافي للمناقشة ، فأنت بالطبع صحيح ؛ لكنه يؤلمني أن أرى المستخدمين الذين لا يسجلون دخولهم ويحددون القذائف ، ويضربونني ككسول ، وأن أتجاهل شخصًا غير معتاد على النظام ، فمن اللطيف أنهم لا يستطيعون عن غير قصد أن يفعلوا شيئًا غير مقصود ؛ المتسللين هم سلالة مختلفة ، إذا كان لديهم بالفعل قذيفة على الجهاز ، وأعتقد أنها في الأساس اللعبة انتهت - Lee Hambley
غطت هذه التعليقات تماماً الأشياء التي كنت أتطلع إلى تعلمها ، وذلك بفضلBeaks & & John T - Rixius


useradd -r subversion

لكل man useradd:

-r, --system create a system account

سيعمل علم - r على إنشاء مستخدم نظام - ليس لديه كلمة مرور أو منزل ، ولا يمكنه تسجيل الدخول.


180
2017-12-06 20:10



سيعمل هذا الأمر حتى على إنشاء مجموعة للمستخدم يسمى نفسه. لذا سيكون المستخدم "التخريب" في مجموعة "التخريب". كبيرة عندما تريد في وقت لاحق أن تفعل "sudo chown -R subversion: التخريب / المسار / إلى / المجلد" - s3v1
مع -r وحده لا يزال بإمكاننا تسجيل الدخول رغم ذلك. نحتاج إلى -s / bin / false لتعطيل shell المستخدم. - c4il
@ c4il ولكن الشخص الوحيد الذي يمكنه تسجيل الدخول فيها هو الجذر ، أليس كذلك؟ أعني ، ليس لديهم كلمة مرور ، لذلك أتوقع الجذر الوحيد ليتمكن من تسجيل الدخول. - Camilo Martin


حل آخر لإنشاء مستخدم النظام ، وذلك باستخدام adduser:

adduser --system --no-create-home --group yourusername

يمكنك إزالة --group إذا لم تكن بحاجة إلى اسم المستخدم الخاص بالمجموعة ، و --no-create-home إذا كنت بحاجة إلى منزل لهذا المستخدم.

كما ذكر من قبل py4on في التعليقات ، على بعض الأنظمة قد يحتاج المرء إلى استخدام --disabled-login الخيار من أجل ، حسنا ، تعطيل تسجيل الدخول لهذا المستخدم. يبدو أنه السلوك الافتراضي في ديبيان ، على الرغم من ذلك.

احذر أن يكون المعرف الرقمي للمستخدم من حساب نظام. يمكنك إصلاح uid باستخدام --uid الخيار ، على الرغم من.

أخيرًا ، لاحظ أنه في بعض الأنظمة (على سبيل المثال ، فيدورا) adduser هو رابط ل useradd، في هذه الحالة هذه الإجابة غير صالحة.


16
2018-03-01 20:04



لمعالجة "لا أريد أن يكون مستخدمًا يمكنه تسجيل الدخول" أضف العلم --disabled-login كذلك (من قبل yourusername) - py4on
@ py4on: على الرغم من أن هذا الخيار موثق في صفحة manpage ، إلا أنه يبدو أنه العنوان الافتراضي تحت Debian على الأقل. - Skippy le Grand Gourou


إن الإجابة الأنظف على السؤال الأصلي هي تشغيل الأمر:

adduser subversion --shell=/bin/false

وإذا كنت لا تريد أن يكون الدليل الرئيسي:

adduser subversion --shell=/bin/false --no-create-home

أو ، إذا كنت تريد مستخدم نظام أكثر إقفالًا (ولن يؤدي أيضًا إلى إنشاء دليل رئيسي)

adduser subversion --system --group

كل هذه الأوامر ستنشئ مجموعة بنفس الاسم المستخدم


10
2018-05-17 06:15





سيكون أفضل طريقة للقيام بذلك هي الاستخدام الآمن adduser مثل ذلك:

$ adduser -r -s /bin/nologin subversion

ملحوظة: تأكد من تضمينها -s /sbin/nologin لتعطيل أي قذيفة تسجيل دخول من إتاحتها للحساب.

تأكيد الإعداد

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

ومع ذلك لا يوجد دليل:

$ ll /home | grep subversion
$

تأكد من أن الحساب قابل للاستخدام على خلاف ذلك:

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar  7 08:58:57 EST 2017

إزالة

إذا كنت بحاجة إلى إزالة هذا الحساب:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

وتأكيد:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$

8
2018-03-07 14:04



لا يتعرف adduser على خيار -r. أعتقد أنك قصدت useradd. - felwithe
felwithe لا ، كل إجابة أكتبها دائمًا اختبرها قبل النشر. راجعت وتبين هذا التبديل على نظام CentOS 6.x. - slm
هنا pastebin من النتيجة. أنا على Ubuntu 16 LTS. لا أعرف أي إصدار من برنامج Adduser مثبت ولكن لم أتخيل أبداً أنه سيتغير كثيرًا بمرور الوقت أو من النظام إلى النظام. ثم حاولت ذلك مع العلم -system بدلا من ذلك ، مما أدى إلى إنشاء homedir للمستخدم (لم أكن أريد واحدة). أخيرا أنا فقط فعلت ذلك مع useradd بدلا من adduser وعملت كما هو مخطط لها. لذا افترضت أنك قد أخطأت في كتابتها كمضيف عندما كان من المفترض أن يكون useradd. - felwithe
felwithe نعم لم أكن أشكك بك ، فقط أخبركم بأنني حاولت ذلك 8-). أنا mod في موقع Unix و Linux وهذه CMDS معروفة توزيعات b / w مختلفة. يشير البروتوكول الاختياري إلى RHEL في السؤال ، ولهذا السبب أجبت به على هذا النحو ، لكنهم لم يسموه على أنه قبعة حمراء محددة ، وهو جزء من الارتباك في هذه الأسئلة والأجوبة في المنظمة البحرية الدولية. - slm


على جهاز CentOS 7

  • إذا كان المستخدم غير موجود:
    useradd testuser --shell=/sbin/nologin

  • إذا كنت تريد تعديل مستخدم حالي:
    usermod testuser --shell=/sbin/nologin


1
2017-09-06 15:06