| LOGIN.DEFS(5) | فرمتهای فایل و فایلهای پیکربندی | LOGIN.DEFS(5) |
نام (NAME)
login.defs - فایل پیکربندی مجموعه گذرواژههای shadow
توضیحات (DESCRIPTION)
فایل /etc/login.defs پیکربندیهای مختص به سیستم را برای مجموعه ابزار گذرواژه shadow تعریف میکند. وجود این فایل الزامی است. نبود این فایل مانع عملکرد سیستم نخواهد شد، اما به احتمال زیاد منجر به رفتارهای ناخواسته خواهد شد.
این فایل یک فایل متنی خواندنی است که هر خط آن یک پارامتر پیکربندی را توصیف میکند. خطوط شامل یک نام پیکربندی و مقدار آن هستند که با فاصله (whitespace) از یکدیگر جدا شدهاند. خطوط خالی و خطوط توضیح نادیده گرفته میشوند. توضیحات با علامت «#» آغاز میشوند و این علامت باید اولین نویسه غیرفاصله در خط باشد.
مقادیر پارامترها میتوانند از چهار نوع باشند: رشتهها، مقادیر بولی، اعداد و اعداد بزرگ. یک رشته شامل هر نویسه قابل چاپی است. یک مقدار بولی باید یکی از مقادیر yes یا no باشد. به پارامترهای بولی تعریفنشده یا پارامترهایی با مقداری غیر از این دو، مقدار no داده خواهد شد. اعداد (چه معمولی و چه بزرگ) میتوانند به صورت مقادیر دهدهی، هشتهشتی (که قبل از مقدار یک 0 میآید) یا شانزدهشانزدهی (که قبل از مقدار یک 0x میآید) باشند. بیشینه مقدار پارامترهای عددی معمولی و بزرگ به معماری ماشین وابسته است.
موارد پیکربندی زیر ارائه شدهاند:
CHFN_RESTRICT (رشته)
CREATE_HOME (بولی)
این تنظیم برای کاربران سیستمی اعمال نمیشود و میتوان آن را در خط فرمان لغو (override) کرد.
DEFAULT_HOME (بولی)
اگر برابر با yes تنظیم شود، در صورتی که ورود به دایرکتوری خانگی کاربر امکانپذیر نباشد، کاربر در دایرکتوری ریشه (/) وارد سیستم خواهد شد.
ENCRYPT_METHOD (رشته)
میتواند یکی از مقادیر زیر را داشته باشد: DES (پیشفرض)، MD5، SHA256، SHA512، YESCRYPT. مقادیر MD5 و DES نباید برای هشهای جدید استفاده شوند؛ توصیهها را در crypt(5) ببینید.
نکته: این پارامتر متغیر MD5_CRYPT_ENAB را بازنویسی (override) میکند.
نکته: این تنظیم تنها بر تولید گذرواژههای گروه تأثیر میگذارد. تولید گذرواژههای کاربران توسط PAM انجام میشود و تابع پیکربندی PAM است. توصیه میشود این متغیر هماهنگ با پیکربندی PAM تنظیم شود.
ENV_PATH (رشته)
ENV_SUPATH (رشته)
ERASECHAR (عدد)
مقدار میتواند برای مقادیر هشتهشتی با «0» یا برای مقادیر شانزدهشانزدهی با «0x» شروع شود.
FAIL_DELAY (عدد)
FAKE_SHELL (رشته)
GID_MAX (عدد)، GID_MIN (عدد)
مقدار پیشفرض برای GID_MIN (به ترتیب GID_MAX) برابر با 1000 (به ترتیب 60000) است.
HOME_MODE (عدد)
دستورات useradd و newusers از این مقدار برای تنظیم حالت دسترسی دایرکتوری خانگی ایجادشده استفاده میکنند.
HUSHLOGIN_FILE (رشته)
KILLCHAR (عدد)
مقدار میتواند برای مقادیر هشتهشتی با «0» یا برای مقادیر شانزدهشانزدهی با «0x» شروع شود.
LASTLOG_UID_MAX (عدد)
عدم وجود گزینه LASTLOG_UID_MAX در پیکربندی به این معنی است که هیچ محدودیتی در شناسه کاربر برای نوشتن ورودیهای lastlog وجود ندارد.
LOG_OK_LOGINS (بولی)
LOG_UNKFAIL_ENAB (بولی)
نکته: ثبت نامهای کاربری ناشناخته در صورت وارد کردن گذرواژه به جای نام کاربری توسط کاربر، ممکن است یک مسئله امنیتی ایجاد کند.
LOGIN_RETRIES (عدد)
این گزینه به احتمال زیاد توسط PAM بازنویسی خواهد شد، زیرا ماژول پیشفرض pam_unix خود به طور پیشفرض دارای محدودیت ۳ تلاش مجدد است. با این حال، در صورتی که از ماژول احراز هویتی استفاده میکنید که PAM_MAXTRIES را اعمال نمیکند، این مقدار یک جایگزین امن (fallback) است.
LOGIN_TIMEOUT (عدد)
MAIL_DIR (رشته)
MAIL_FILE (رشته)
متغیرهای MAIL_DIR و MAIL_FILE توسط useradd، usermod و userdel جهت ایجاد، انتقال یا حذف مخزن ایمیل کاربر استفاده میشوند.
MAX_MEMBERS_PER_GROUP (عدد)
مقدار پیشفرض 0 است، به این معنی که هیچ محدودیتی در تعداد اعضای یک گروه وجود ندارد.
این قابلیت (تقسیم گروه یا split group) امکان محدود کردن طول خطوط در فایل گروه را فراهم میکند. این ویژگی برای اطمینان از اینکه طول خطوط گروههای NIS از ۱۰۲۴ نویسه بیشتر نشود، مفید است.
اگر نیاز به اعمال چنین محدودیتی دارید، میتوانید از مقدار 25 استفاده کنید.
نکته: تقسیم گروهها ممکن است توسط همه ابزارها پشتیبانی نشود (حتی در مجموعه ابزار Shadow). نباید از این متغیر استفاده کنید مگر اینکه واقعاً به آن نیاز داشته باشید.
MD5_CRYPT_ENAB (بولی)
این متغیر توسط متغیر ENCRYPT_METHOD یا هر گزینه خط فرمان دیگری که برای پیکربندی الگوریتم رمزنگاری استفاده شود، منسوخ و جایگزین شده است.
این متغیر منسوخ (deprecated) شده است؛ باید از ENCRYPT_METHOD استفاده کنید.
نکته: این تنظیم تنها بر تولید گذرواژههای گروه تأثیر میگذارد. تولید گذرواژههای کاربران توسط PAM انجام میشود و تابع پیکربندی PAM است. توصیه میشود این متغیر هماهنگ با پیکربندی PAM تنظیم شود.
NONEXISTENT (رشته)
PASS_MAX_DAYS (عدد)
PASS_MIN_DAYS (عدد)
PASS_WARN_AGE (عدد)
متغیرهای PASS_MAX_DAYS، PASS_MIN_DAYS و PASS_WARN_AGE تنها در زمان ایجاد حساب کاربری استفاده میشوند. هرگونه تغییر در این تنظیمات بر حسابهای موجود تأثیری نخواهد داشت.
SHA_CRYPT_MIN_ROUNDS (عدد)، SHA_CRYPT_MAX_ROUNDS (عدد)
با تعداد دورهای زیاد، شکستن گذرواژه با روش جستجوی فراگیر (brute force) دشوارتر میشود. اما توجه داشته باشید که منابع پردازشی (CPU) بیشتری برای احراز هویت کاربران مورد نیاز خواهد بود.
در صورت عدم تعیین، کتابخانه libc تعداد دورهای پیشفرض (5000) را انتخاب میکند که برای سختافزارهای امروزی بسیار پایین است.
مقادیر باید در محدوده 1000 تا 999,999,999 باشند.
اگر فقط یکی از مقادیر SHA_CRYPT_MIN_ROUNDS یا SHA_CRYPT_MAX_ROUNDS تنظیم شده باشد، از همان مقدار استفاده خواهد شد.
اگر SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS باشد، مقدار بزرگتر استفاده خواهد شد.
نکته: این تنظیم تنها بر تولید گذرواژههای گروه تأثیر میگذارد. تولید گذرواژههای کاربران توسط PAM انجام میشود و تابع پیکربندی PAM است. توصیه میشود این متغیر هماهنگ با پیکربندی PAM تنظیم شود.
SULOG_FILE (رشته)
SU_NAME (رشته)
SUB_GID_MIN (عدد)، SUB_GID_MAX (عدد)، SUB_GID_COUNT (عدد)
مقادیر پیشفرض برای SUB_GID_MIN، SUB_GID_MAX و SUB_GID_COUNT به ترتیب ۱۰۰۰۰۰، ۶۰۰۱۰۰۰۰۰ و ۶۵۵۳۶ هستند.
SUB_UID_MIN (عدد)، SUB_UID_MAX (عدد)، SUB_UID_COUNT (عدد)
مقادیر پیشفرض برای SUB_UID_MIN، SUB_UID_MAX و SUB_UID_COUNT به ترتیب ۱۰۰۰۰۰، ۶۰۰۱۰۰۰۰۰ و ۶۵۵۳۶ هستند.
SYS_GID_MAX (عدد)، SYS_GID_MIN (عدد)
مقدار پیشفرض برای SYS_GID_MIN (به ترتیب SYS_GID_MAX) برابر با 101 (به ترتیب GID_MIN-1) است.
SYS_UID_MAX (عدد)، SYS_UID_MIN (عدد)
مقدار پیشفرض برای SYS_UID_MIN (به ترتیب SYS_UID_MAX) برابر با 101 (به ترتیب UID_MIN-1) است.
SYSLOG_SG_ENAB (بولی)
SYSLOG_SU_ENAB (بولی)
TTYGROUP (رشته)، TTYPERM (عدد)
TTYGROUP میتواند نام یک گروه یا یک شناسه عددی گروه باشد.
اگر TTYGROUP تعریف نشده باشد، مالکیت گروهی ترمینال روی گروه اصلی کاربر تنظیم میشود. اگر TTYPERM تعریف نشده باشد، مجوزها روی 0600 تنظیم خواهند شد.
اگر برنامهای مانند write دارید که دارای بیت «setgid» به یک گروه خاص مالک ترمینالها است، TTYGROUP را به شماره گروه و TTYPERM را به 0620 تنظیم کنید. در غیر این صورت TTYGROUP را به صورت توضیح باقی بگذارید و TTYPERM را روی 622 یا 600 قرار دهید.
TTYTYPE_FILE (رشته)
UID_MAX (عدد)، UID_MIN (عدد)
مقدار پیشفرض برای UID_MIN (به ترتیب UID_MAX) برابر با 1000 (به ترتیب 60000) است.
UMASK (عدد)
دستورات useradd و newusers در صورتی که HOME_MODE تنظیم نشده باشد، از این ماسک برای تنظیم حالت دسترسی دایرکتوری خانگی که ایجاد میکنند استفاده مینمایند.
همچنین توسط pam_umask به عنوان مقدار پیشفرض umask استفاده میشود.
USERDEL_CMD (رشته)
کد خروجی اسکریپت در نظر گرفته نمیشود.
در اینجا نمونهای از یک اسکریپت آورده شده است که کارهای cron، at و چاپ کاربر را حذف میکند:
#! /bin/sh # بررسی آرگومان الزامی. if [ $# != 1 ]; then echo "Usage: $0 username" exit 1 fi # حذف کارهای cron. crontab -r -u $1 # حذف کارهای at. # توجه داشته باشید که این دستور هر کاری متعلق به همین UID را حذف خواهد کرد، # حتی اگر با نام کاربری دیگری به اشتراک گذاشته شده باشد. AT_SPOOL_DIR=/var/spool/cron/atjobs find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \; # حذف کارهای چاپ. lprm $1 # پایان کار. exit 0
USERGROUPS_ENAB (بولی)
YESCRYPT_COST_FACTOR (عدد)
با فاکتور هزینه بالا، شکستن گذرواژه با روش جستجوی فراگیر (brute force) دشوارتر میشود؛ اما توجه داشته باشید که منابع پردازشی (CPU) بیشتری نیز برای احراز هویت کاربران مورد نیاز خواهد بود.
این مقدار باید در محدوده ۱ تا ۱۱ باشد.
نکته: این تنظیم تنها بر تولید گذرواژههای گروه تأثیر میگذارد. تولید گذرواژههای کاربران توسط PAM انجام میشود و تابع پیکربندی PAM است. توصیه میشود این متغیر هماهنگ با پیکربندی PAM تنظیم شود.
ارجاعات متقابل (CROSS REFERENCES)
ارجاعات متقابل زیر نشان میدهند که کدام برنامهها در مجموعه ابزار گذرواژه shadow از کدام پارامترها استفاده میکنند.
chfn
chgpasswd
chpasswd
gpasswd
groupadd
groupdel
groupmems
groupmod
grpck
grpconv
grpunconv
lastlog
login
newgrp / sg
newusers
pwck
pwconv
su
useradd
userdel
usermod
اشکالات (BUGS)
بخش عمدهای از قابلیتهایی که در گذشته توسط مجموعه گذرواژه shadow ارائه میشد، اکنون توسط PAM مدیریت میشود. بنابراین، /etc/login.defs دیگر توسط passwd(1) استفاده نمیشود، و توسط login(1) و su(1) نیز کمتر به کار میرود. لطفاً در عوض به فایلهای پیکربندی متناظر PAM مراجعه کنید.
همچنین ببینید (SEE ALSO)
| 04/19/2025 | shadow-utils 4.17.4 |