LOGIN(1) أوامر المستخدم LOGIN(1)

الاسم

login - بدء جلسة على النظام

موجز

login [-p] [-s shell] [-h host] [-H] [[-f] username|UID]

الوصف

يُستخدم login عند الولوج إلى النظام. إذا لم يُعطَ أي وسيط، يسأل login عن اسم المستخدم.

يُطلب من المستخدم بعد ذلك كلمة السر، عند الاقتضاء. يُعطل إظهار الكتابة لمنع كشف كلمة السر. يُسمح فقط بعدد معين من محاولات كلمة السر الفاشلة قبل أن يخرج login ويُقطع رابط الاتصال. راجع LOGIN_RETRIES في قسم CONFIG FILE ITEMS.

إذا تم تفعيل تقادم كلمة السر للحساب، فقد يُطالب المستخدم بكلمة سر جديدة قبل المتابعة. في هذه الحالة، يجب تقديم كلمة السر القديمة وإدخال كلمة السر الجديدة قبل المتابعة. يرجى الرجوع إلى passwd(1) لمزيد من المعلومات.

تُضبط معرفات المستخدم والمجموعة وفقاً لقيمهما في ملف /etc/passwd. هناك استثناء واحد إذا كان معرف المستخدم صفراً؛ في هذه الحالة، يُضبط معرف المجموعة الأساسي للحساب فقط. هذا من شأنه أن يسمح لمدير النظام بتسجيل الدخول حتى في حالة وجود مشاكل في الشبكة. تُضبط قيم متغيرات البيئة لـ $HOME و $USER و $SHELL و $PATH و $LOGNAME و $MAIL وفقاً للحقول المناسبة في مدخلة كلمة السر. تكون قيمة $PATH الـ {default} هي /usr/local/bin:/bin:/usr/bin للمستخدمين العاديين، و /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin للجذر (root)، إذا لم تُضبط بخلاف ذلك.

سيُحافظ على متغير البيئة $TERM إذا وجد، وإلا سيُهيأ إلى نوع الطرفية على tty الخاص بك. سيُحافظ على متغيرات البيئة $COLORTERM و $NO_COLOR إذا كانت موجودة.

يُحافظ على متغيرات البيئة الأخرى إذا أُعطي الخيار ‎-p‎ أو إذا كان LOGIN_ENV_SAFELIST معرفاً في /etc/login.defs (انظر أدناه).

يُحافظ دائماً على متغيرات البيئة المعرفة بواسطة PAM.

بعد ذلك، تبدأ صدفة المستخدم. إذا لم تُحدد صدفة للمستخدم بواسطة ‎-s‎ أو في /etc/passwd، تُستخدم /bin/sh. إذا كانت الصدفة المحددة تحتوي على مسافة، تُعامل على أنها مخطوطة صدفة. إذا لم يكن هناك دليل منزل محدد في /etc/passwd، يُستخدم /، متبوعاً بفحص .hushlogin كما هو موضح أدناه.

إذا وُجد الملف .hushlogin، سيُنفذ ولوج "هادئ". يعطل هذا فحص البريد وطباعة وقت آخر ولوج ورسالة اليوم. وخلاف ذلك، إذا وُجد /var/log/lastlog، يُطبع وقت آخر ولوج، ويُسجل الولوج الحالي.

الخيارات

-p

يستخدمه getty(8) لإخبار login بالحفاظ على البيئة. انظر أيضًا عنصر ملف الضبط LOGIN_ENV_SAFELIST.

-f

يُستخدم لتخطي استيثاق الولوج. يُستخدم هذا الخيار عادة بواسطة ميزة الولوج الآلي في getty(8).

-h

تستخدمه الخوادم الأخرى (مثل telnetd(8)) لتمرير اسم المضيف البعيد إلى login بحيث يمكن وضعه في utmp و wtmp. يُسمح للمستخدم الخارق فقط باستخدام هذا الخيار.

لاحظ أن الخيار -h له تأثير على اسم خدمة PAM. اسم الخدمة القياسي هو login، ولكن مع الخيار -h، يصبح الاسم remote. من الضروري إنشاء ملفات ضبط PAM مناسبة (على سبيل المثال، /etc/pam.d/login و /etc/pam.d/remote).

-H

تستخدمه الخوادم الأخرى (على سبيل المثال، telnetd(8)) لإخبار login بوجوب كتم طباعة اسم المضيف في محث الـ login:. انظر أيضًا LOGIN_PLAIN_PROMPT أدناه.

-s، --shell الصدفة

حدد صدفة، غير تلك المعرفة في /etc/passwd، لتسجيل الدخول إليها.

-h، --help

اعرض نص المساعدة ثم اخرج.

-V، --version

اعرض الإصدار واخرج.

عناصر ملف الضبط

يقرأ login ملف الضبط /etc/login.defs (انظر login.defs(5)). لاحظ أن ملف الضبط قد يُوزع مع حزمة أخرى (عادة shadow-utils). عناصر الضبط التالية ذات صلة بـ login:

MOTD_FILE (string)

يحدد قائمة محددة بـ ":" لملفات وأدلة "رسالة اليوم" التي ستُعرض عند الولوج. إذا كان المسار المحدد دليلاً، فستُعرض كافة الملفات ذات الامتداد .motd بترتيب فرز الإصدارات من ذلك الدليل.

القيمة المبدئية هي /usr/share/misc/motd:/run/motd:/etc/motd. إذا كان عنصر MOTD_FILE فارغًا أو كان الولوج الهادئ مفعلاً، فلن تُعرض رسالة اليوم. لاحظ أن الوظيفة نفسها توفرها أيضًا وحدة PAM المسماة pam_motd(8).

الأدلة في MOTD_FILE متاحة منذ الإصدار 2.36.

لاحظ أن login لا يطبق أي سلوك لتجاوز أسماء الملفات مثل pam_motd (انظر أيضًا MOTD_FIRSTONLY)، بل يُعرض كامل المحتوى من كافة الملفات. يوصى بإبقاء المنطق الإضافي في مولدات المحتوى واستخدام /run/motd.d بدلاً من الاعتماد على سلوك التجاوز المبرمج بصلابة في أدوات النظام.

MOTD_FIRSTONLY (boolean)

يجبر login على التوقف عن عرض المحتوى المحدد بواسطة MOTD_FILE بعد أول عنصر يمكن الوصول إليه في القائمة. لاحظ أن الدليل يُعد عنصرًا واحدًا في هذه الحالة. يسمح هذا الخيار بضبط دلالات login لتكون أكثر توافقًا مع pam_motd. القيمة المبدئية هي no.

LOGIN_ENV_SAFELIST (string)

يجبر login على حماية متغيرات البيئة المحددة إذا لم يُستخدم الخيار -p. القيمة النصية عبارة عن قائمة بأسماء المتغيرات مفصولة بفاصلة. على سبيل المثال: "LANG,LC_MESSAGES,LC_COLLATE". تُتجاهل القائمة الآمنة لمتغيرات البيئة HOME و SHELL و USER.

LOGIN_PLAIN_PROMPT (boolean)

إخبار login بوجوب كتم طباعة اسم المضيف في محث الـ login:. هذا بديل لخيار سطر الأوامر -H. القيمة المبدئية هي no.

LOGIN_TIMEOUT (number)

الحد الأقصى للوقت بالثواني للولوج. القيمة المبدئية هي 60.

LOGIN_RETRIES (number)

أقصى عدد لمحاولات إعادة الولوج في حال كانت كلمة السر غير صحيحة. القيمة المبدئية هي 3.

LOGIN_KEEP_USERNAME (منطقي)

إخبار login بمطالبة كلمة السر فقط إذا فشل الاستيثاق مع صحة اسم المستخدم. القيمة المبدئية هي no.

FAIL_DELAY (number)

التأخير بالثواني قبل السماح بثلاث محاولات أخرى بعد فشل الولوج. القيمة المبدئية هي 5.

TTYPERM (string)

أذونات الطرفية. القيمة المبدئية هي 0600 أو 0620 إذا وُظفت مجموعة tty. انظر أيضًا mesg(1).

TTYGROUP (string)

ستكون ملكية ولوج tty تابعة لـ TTYGROUP. القيمة المبدئية هي tty. إذا لم تكن TTYGROUP موجودة، تُضبط ملكية الطرفية لتكون لمجموعة المستخدم الأساسية.

يمكن أن تكون TTYGROUP إما اسم مجموعة أو معرف مجموعة رقمي. انظر أيضًا mesg(1).

HUSHLOGIN_FILE (string)

إذا حُدد، يمكن لهذا الملف كبح كل الثرثرة المعتادة أثناء تسلسل الولوج. إذا حُدد مسار كامل (على سبيل المثال، /etc/hushlogins)، فسيُفعل الوضع الهادئ إذا وُجد اسم المستخدم أو صدفة المستخدم في الملف. إذا كان ملف الولوج الهادئ العام هذا فارغًا، فسيُفعل الوضع الهادئ لجميع المستخدمين.

إذا لم يُحدد مسار كامل، فسيُفعل الوضع الهادئ إذا وُجد الملف في دليل المنزل للمستخدم.

المبدئي هو فحص /etc/hushlogins وإذا لم يكن موجودًا يُفحص ~/.hushlogin.

إذا كان عنصر HUSHLOGIN_FILE فارغًا، فستُعطل جميع عمليات الفحص.

DEFAULT_HOME (boolean)

الإشارة إلى ما إذا كان الولوج مسموحًا به إذا تعذر تغيير الدليل إلى دليل المنزل. إذا ضُبط على yes، فسيلج المستخدم في الدليل الجذر (/) إذا لم يكن من الممكن تغيير الدليل إلى منزله. القيمة المبدئية هي yes.

LASTLOG_UID_MAX (رقم غير موقع)

أعلى رقم معرف مستخدم يجب تحديث مدخلات lastlog له. بما أن معرفات المستخدمين الأعلى تتبع عادة بواسطة خدمات هوية المستخدم والاستيثاق عن بعد، فلا داعي لإنشاء ملف lastlog ضخم ومتفرق لها. عدم وجود خيار LASTLOG_UID_MAX في الضبط يعني عدم وجود حد لمعرف المستخدم لكتابة مدخلات lastlog. القيمة المبدئية هي ULONG_MAX.

LOG_UNKFAIL_ENAB (منطقي)

تفعيل عرض أسماء المستخدمين غير المعروفة عند تسجيل إخفاقات الولوج. القيمة الـ {default} هي no.

لاحظ أن تسجيل أسماء المستخدمين غير المعروفة قد يمثل مشكلة أمنية إذا أدخل المستخدم كلمة مروره بدلاً من اسم الولوج الخاص به.

ENV_PATH (string)

إذا ضُبط، سيُستخدم لتعريف متغير البيئة PATH عندما يسجل مستخدم عادي دخوله. القيمة الـ {default} هي /usr/local/bin:/bin:/usr/bin.

ENV_ROOTPATH (string), ENV_SUPATH (سلسلة محارف)

إذا ضُبط، فسيُستخدم لتعريف متغير البيئة PATH عند ولوج المستخدم الخارق. ENV_ROOTPATH له الأولوية. القيمة المبدئية هي /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

LOGIN_SHELL_FALLBACK (منطقي)

إذا ضُبط على yes، سيوفر برنامج login صدفة صالحة من /etc/shells عندما تكون الصدفة المحددة في /etc/passwd غير صالحة أو لا يمكن الوصول إليها بسبب أخطاء إدارية. يضمن هذا قدرة المستخدمين على تسجيل الدخول. ومع ذلك، قد يتجاوز ذلك قيود الصدفة المقصودة، مما قد يسبب سلوكاً غير متوقع إذا كانت صدفة الاحتياط تختلف عن تلك التي ضُبطت.

الملفات

/var/run/utmp، و /var/log/wtmp، و /var/log/lastlog، و /var/spool/mail/*، و /etc/motd، و /etc/passwd، و /etc/nologin، و /etc/pam.d/login، و /etc/pam.d/remote، و /etc/hushlogins، و $HOME/.hushlogin

بيانات الاعتماد

يدعم login الضبط عبر بيانات اعتماد systemd (راجع https://systemd.io/CREDENTIALS/). يقرأ login بيانات اعتماد systemd التالية:

login.noauth (منطقي)

إذا ضُبط، سيُضبط login لتخطي استيثاق الولوج، بشكل مشابه لخيار -f.

العلل

خيار BSD -r غير الموثق غير متاح. قد يكون هذا مطلوباً من قبل بعض برامج rlogind(8).

الولوج المتداخل، كما كان ممكناً في الأيام الخوالي، لم يعد يعمل؛ ويُعد su(1) بديلاً كافياً لمعظم الأغراض. في الواقع، ولأسباب أمنية، يُجري login استدعاء نظام vhangup(2) لإزالة أي عمليات تنصت محتملة على الـ tty. يهدف هذا إلى تجنب شم كلمة السر. إذا استُخدم الأمر login، فستُقتل الصدفة المحيطة بواسطة vhangup(2) لأنها لم تعد المالك الحقيقي للـ tty. يمكن تجنب ذلك باستخدام exec login في صدفة عالية المستوى أو xterm.

المؤلفين

اشتق من BSD login 5.40 (5/9/89) بواسطة Michael Glad <glad@daimi.dk> لـ HP-UX. نُقل إلى لينكس 0.12 بواسطة: Peter Orbaek <poe@daimi.aau.dk>. أُعيدت كتابته لنسخة PAM فقط بواسطة Karel Zak <kzak@redhat.com>

انظر أيضاً

mail(1)، و passwd(1)، و passwd(5)، و utmp(5)، و environ(7)، و getty(8)، و init(8)، و lastlog(8)، و shutdown(8)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

التوفر

الأمر login جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1