.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "PAM_PWQUALITY 8" .TH PAM_PWQUALITY 8 2025-12-14 "Red Hat, Inc." "Linux-PAM Manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" pam_pwquality \- ماژول PAM برای بررسی کیفیت گذرواژه .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBpam_pwquality.so\fR [\fI...\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" این ماژول می‌تواند به پشتهٔ \fBpassword\fR یک سرویس مشخص متصل شود تا امکان بررسی استحکام گذرواژه‌ها را به‌صورت یک افزونه فراهم کند. کد این ماژول در اصل بر پایه ماژول pam_cracklib توسعه یافته و با گزینه‌های آن سازگاری پس‌رو دارد. .PP عملکرد این ماژول بدین صورت است که از کاربر یک گذرواژه درخواست می‌کند و استحکام آن را در برابر واژه‌نامهٔ سیستم و مجموعه‌ای از قوانین برای تشخیص انتخاب‌های ضعیف ارزیابی می‌نماید. .PP نخستین اقدام، درخواست یک گذرواژه، بررسی استحکام آن و سپس، در صورت احراز استحکام کافی، درخواست مجدد گذرواژه برای بار دوم است (تا اطمینان حاصل شود که در بار اول به درستی تایپ شده است). در صورت مناسب بودن همه موارد، گذرواژه به ماژول‌های بعدی در پشته تحویل داده می‌شود تا به عنوان توکن احراز هویت جدید ثبت و نصب گردد. .PP بررسی‌های استحکام عبارتند از: .IP "متقارن بودن (Palindrome)" 4 .IX Item "Palindrome" آیا گذرواژه جدید متقارن (وارون‌خوان یا پالیندروم) است؟ .IP "تنها تغییر حروف کوچک و بزرگ (Case Change Only)" 4 .IX Item "Case Change Only" آیا گذرواژه جدید همان گذرواژه قبلی است که فقط حالت حروف کوچک و بزرگ آن تغییر کرده است؟ .IP "شباهت (Similar)" 4 .IX Item "Similar" آیا گذرواژه جدید بیش از حد شبیه به گذرواژه قدیمی است؟ این بررسی عمدتاً توسط آرگومان \fBdifok\fR کنترل می‌شود که تعداد تغییرات کاراکتری (درج، حذف یا جایگزینی) بین گذرواژه جدید و قدیم است که برای پذیرش گذرواژه جدید کفایت می‌کند. .IP "ساده بودن (Simple)" 4 .IX Item "Simple" آیا گذرواژه جدید بیش از حد کوتاه یا ساده است؟ این مورد توسط ۶ آرگومان کنترل می‌شود: \&\fBminlen\fR، \fBmaxclassrepeat\fR، \fBdcredit\fR، \fBucredit\fR، \fBlcredit\fR و \fBocredit\fR. برای جزئیات نحوه عملکرد و مقادیر پیش‌فرض آن‌ها، بخش مربوط به آرگومان‌ها را ببینید. .IP "چرخش کاراکترها (Rotated)" 4 .IX Item "Rotated" آیا گذرواژه جدید نسخهٔ چرخیده‌شده‌ای از گذرواژه قدیمی است؟ .IP "کاراکترهای متوالی یکسان (Same consecutive characters)" 4 .IX Item "Same consecutive characters" بررسی اختیاری برای کاراکترهای متوالی یکسان. .IP "توالی یکنواخت بیش از حد طولانی کاراکترها (Too long monotonic character sequence)" 4 .IX Item "Too long monotonic character sequence" بررسی اختیاری برای توالی‌های یکنواخت (مونو‌تونیک) بیش از حد طولانی کاراکترها. .IP "شامل نام کاربری (Contains user name)" 4 .IX Item "Contains user name" بررسی اینکه آیا گذرواژه به شکلی حاوی نام کاربر هست یا خیر. .IP "بررسی واژه‌نامه (Dictionary check)" 4 .IX Item "Dictionary check" روال \fICracklib\fR فراخوانی می‌شود تا بررسی کند آیا گذرواژه بخشی از یک واژه‌نامه است یا خیر. .PP این بررسی‌ها هم با استفاده از آرگومان‌های ماژول و هم با ویرایش فایل پیکربندی \fI/etc/security/pwquality.conf\fR قابل تنظیم هستند. آرگومان‌های ماژول بر تنظیمات موجود در فایل پیکربندی اولویت دارند. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fBdebug\fR 4 .IX Item "debug" این گزینه باعث می‌شود که ماژول اطلاعات مربوط به رفتار خود را در \fBsyslog\fR\|(3) بنویسد (این گزینه اطلاعات گذرواژه را در فایل لاگ ثبت نمی‌کند). .IP \fBauthtok_type=\fR\fIXXX\fR 4 .IX Item "authtok_type=XXX" عملکرد پیش‌فرض ماژول این است که هنگام درخواست گذرواژه‌ها از اعلان‌های زیر استفاده کند: \f(CW"New UNIX password: "\fR و \&\f(CW"Retype UNIX password: "\fR. کلمه نمونهٔ \fIUNIX\fR را می‌توان با این گزینه جایگزین کرد؛ مقدار پیش‌فرض آن خالی است. .IP \fBretry=\fR\fIN\fR 4 .IX Item "retry=N" حداکثر \fIN\fR بار قبل از بازگرداندن خطا، از کاربر درخواست گذرواژه می‌کند. مقدار پیش‌فرض \fI1\fR است. .IP \fBdifok=\fR\fIN\fR 4 .IX Item "difok=N" این آرگومان مقدار پیش‌فرض \fI1\fR را برای تعداد تغییرات در گذرواژه جدید نسبت به گذرواژه قدیمی تغییر می‌دهد. .Sp مقدار ویژهٔ \fI0\fR تمام بررسی‌های شباهت گذرواژه جدید با گذرواژه قدیمی را غیرفعال می‌کند، به جز مواردی که گذرواژه جدید دقیقاً یکسان با گذرواژه قدیمی باشد. .IP \fBminlen=\fR\fIN\fR 4 .IX Item "minlen=N" حداقل اندازهٔ قابل قبول برای گذرواژه جدید (به‌علاوه یک، در صورتی که اعتبارها غیرفعال نشده باشند که حالت پیش‌فرض است). علاوه بر تعداد کاراکترهای گذرواژه جدید، برای هر نوع کاراکتر متفاوت (\fIother\fR، \fIupper\fR، \fIlower\fR و \fIdigit\fR) اعتبار (به میزان ۱+ در طول) اعطا می‌شود. مقدار پیش‌فرض این پارامتر \fI8\fR است. توجه داشته باشید که در \fICracklib\fR که برای بررسی واژه‌نامه استفاده می‌شود نیز دو محدودیت طول وجود دارد: یک محدودیت "بسیار کوتاه" به میزان \fI4\fR که در کد هاردکد شده است، و یک محدودیت تعریف‌شده در زمان ساخت (\fI6\fR) که بدون در نظر گرفتن \fBminlen\fR بررسی خواهد شد. .IP \fBdcredit=\fR\fIN\fR 4 .IX Item "dcredit=N" (N >= 0) این مقدار حداکثر اعتبار برای وجود ارقام در گذرواژه جدید است. اگر کمتر از \fIN\fR یا برابر با آن رقم داشته باشید، هر رقم به اندازهٔ ۱+ برای رسیدن به مقدار \fBminlen\fR فعلی محاسبه می‌شود. مقدار پیش‌فرض برای \fBdcredit\fR برابر با \fI0\fR است که به معنی عدم وجود پاداش برای ارقام در گذرواژه است. .Sp (N < 0) این مقدار حداقل تعداد ارقامی است که باید در گذرواژه جدید وجود داشته باشند. .IP \fBucredit=\fR\fIN\fR 4 .IX Item "ucredit=N" (N >= 0) این مقدار حداکثر اعتبار برای وجود حروف بزرگ در گذرواژه جدید است. اگر کمتر از \fIN\fR یا برابر با آن حرف بزرگ داشته باشید، هر حرف بزرگ به اندازهٔ ۱+ برای رسیدن به مقدار \fBminlen\fR فعلی محاسبه می‌شود. مقدار پیش‌فرض برای \fBucredit\fR برابر با \fI0\fR است که به معنی عدم وجود پاداش برای حروف بزرگ در گذرواژه است. .Sp (N < 0) این مقدار حداقل تعداد حروف بزرگی است که باید در گذرواژه جدید وجود داشته باشند. .IP \fBlcredit=\fR\fIN\fR 4 .IX Item "lcredit=N" (N >= 0) این مقدار حداکثر اعتبار برای وجود حروف کوچک در گذرواژه جدید است. اگر کمتر از \fIN\fR یا برابر با آن حرف کوچک داشته باشید، هر حرف کوچک به اندازهٔ ۱+ برای رسیدن به مقدار \fBminlen\fR فعلی محاسبه می‌شود. مقدار پیش‌فرض برای \fBlcredit\fR برابر با \fI0\fR است که به معنی عدم وجود پاداش برای حروف کوچک در گذرواژه است. .Sp (N < 0) این مقدار حداقل تعداد حروف کوچکی است که باید در گذرواژه جدید وجود داشته باشند. .IP \fBocredit=\fR\fIN\fR 4 .IX Item "ocredit=N" (N >= 0) این مقدار حداکثر اعتبار برای وجود سایر کاراکترها در گذرواژه جدید است. اگر کمتر از \fIN\fR یا برابر با آن کاراکتر دیگر داشته باشید، هر کاراکتر دیگر به اندازهٔ ۱+ برای رسیدن به مقدار \fBminlen\fR فعلی محاسبه می‌شود. مقدار پیش‌فرض برای \fBocredit\fR برابر با \fI0\fR است که به معنی عدم وجود پاداش برای سایر کاراکترها در گذرواژه است. .Sp (N < 0) این مقدار حداقل تعداد سایر کاراکترهایی است که باید در گذرواژه جدید وجود داشته باشند. .IP \fBminclass=\fR\fIN\fR 4 .IX Item "minclass=N" حداقل تعداد کلاس‌های کاراکتری لازم برای گذرواژه جدید. چهار کلاس عبارتند از ارقام، حروف بزرگ، حروف کوچک و کاراکترهای دیگر. تفاوت با بررسی \fBcredit\fR در این است که کلاس خاصی از کاراکترها الزامی نیست، بلکه وجود \fIN\fR کلاس از میان این چهار کلاس الزامی است. این بررسی به‌طور پیش‌فرض غیرفعال است. .IP \fBmaxrepeat=\fR\fIN\fR 4 .IX Item "maxrepeat=N" رد کردن گذرواژه‌هایی که حاوی بیش از \fIN\fR کاراکتر متوالی یکسان باشند. مقدار پیش‌فرض 0 است که به معنی غیرفعال بودن این بررسی است. .IP \fBmaxsequence=\fR\fIN\fR 4 .IX Item "maxsequence=N" رد کردن گذرواژه‌هایی که حاوی توالی‌های یکنواخت کاراکتری طولانی‌تر از \fIN\fR باشند. مقدار پیش‌فرض 0 است که به معنی غیرفعال بودن این بررسی است. نمونه‌هایی از چنین توالی‌هایی \*(Aq12345\*(Aq یا \*(Aqfedcb\*(Aq هستند. توجه داشته باشید که بیشتر چنین گذرواژه‌هایی در بررسی سادگی نیز رد خواهند شد، مگر اینکه توالی تنها بخش کوچکی از گذرواژه باشد. .IP \fBmaxclassrepeat=\fR\fIN\fR 4 .IX Item "maxclassrepeat=N" رد کردن گذرواژه‌هایی که حاوی بیش از \fIN\fR کاراکتر متوالی از یک کلاس یکسان باشند. مقدار پیش‌فرض 0 است که به معنی غیرفعال بودن این بررسی است. .IP \fBgecoscheck=\fR\fIN\fR 4 .IX Item "gecoscheck=N" اگر غیرصفر باشد، بررسی می‌کند که آیا کلمات منفرد طولانی‌تر از ۳ کاراکتر از فیلد GECOS کاربر در \fBpasswd\fR\|(5) در گذرواژه جدید وجود دارند یا خیر. مقدار پیش‌فرض 0 است که به معنی غیرفعال بودن این بررسی است. .IP \fBdictcheck=\fR\fIN\fR 4 .IX Item "dictcheck=N" اگر غیرصفر باشد، بررسی می‌کند که آیا گذرواژه (با تغییرات احتمالی) با کلمه‌ای در واژه‌نامه مطابقت دارد یا خیر. در حال حاضر بررسی واژه‌نامه با استفاده از کتابخانهٔ \fIcracklib\fR انجام می‌شود. مقدار پیش‌فرض 1 است که به معنی فعال بودن این بررسی است. .IP \fBusercheck=\fR\fIN\fR 4 .IX Item "usercheck=N" اگر غیرصفر باشد، بررسی می‌کند که آیا گذرواژه (با تغییرات احتمالی) به شکلی شامل نام کاربری است یا خیر. مقدار پیش‌فرض 1 است که به معنی فعال بودن این بررسی است. این بررسی برای نام‌های کاربری کوتاه‌تر از ۳ کاراکتر انجام نمی‌شود. .IP \fBusersubstr=\fR\fIN\fR 4 .IX Item "usersubstr=N" اگر بزرگتر از ۳ باشد (به دلیل حداقل طول در usercheck)، بررسی می‌کند که آیا گذرواژه حاوی زیررشته‌ای از نام کاربری به طول حداقل \fIN\fR به هر شکلی هست یا خیر. مقدار پیش‌فرض 0 است که به معنی غیرفعال بودن این بررسی است. .IP \fBenforcing=\fR\fIN\fR 4 .IX Item "enforcing=N" اگر غیرصفر باشد، در صورت عدم قبولی در بررسی‌ها گذرواژه رد می‌شود، در غیر این صورت فقط هشدار چاپ می‌شود. مقدار پیش‌فرض 1 است که به معنی رد شدن گذرواژه ضعیف (برای کاربران غیرریشه) است. .IP "\fBbadwords=\fR\fI\fR" 4 .IX Item "badwords=" کلمات با طول بیش از ۳ کاراکتر از این فهرست جداشده با فاصله، به‌صورت جداگانه در گذرواژه جدید جستجو و ممنوع می‌شوند. به‌طور پیش‌فرض این فهرست خالی است که به معنی غیرفعال بودن این بررسی است. .IP \fBdictpath=\fR\fI/path/to/dict\fR 4 .IX Item "dictpath=/path/to/dict" این گزینه امکان تعیین مسیر غیرپیش‌فرض برای واژه‌نامه‌های cracklib را فراهم می‌کند. .IP \fBenforce_for_root\fR 4 .IX Item "enforce_for_root" ماژول حتی در صورتی که کاربر تغییردهندهٔ گذرواژه root باشد، در صورت عدم قبولی در بررسی، خطا بازمی‌گرداند. این گزینه به‌طور پیش‌فرض غیرفعال است که به این معنی است که تنها پیام عدم قبولی در بررسی چاپ می‌شود اما root در هر حال می‌تواند گذرواژه را تغییر دهد. توجه داشته باشید که از root گذرواژه قبلی درخواست نمی‌شود، بنابراین بررسی‌هایی که گذرواژه قدیم و جدید را مقایسه می‌کنند انجام نمی‌شوند. .IP \fBlocal_users_only\fR 4 .IX Item "local_users_only" ماژول کیفیت گذرواژه را برای کاربرانی که در فایل \fI/etc/passwd\fR وجود ندارند آزمایش نمی‌کند. ماژول همچنان گذرواژه را درخواست می‌کند تا ماژول‌های بعدی در پشته بتوانند از گزینهٔ \fBuse_authtok\fR استفاده کنند. این گزینه به‌طور پیش‌فرض غیرفعال است. .IP \fBuse_authtok\fR 4 .IX Item "use_authtok" این آرگومان برای \fIاجبار\fR ماژول به درخواست نکردن گذرواژه جدید از کاربر و استفاده از گذرواژه ارائه‌شده توسط ماژول \fBpassword\fR قبلی در پشته استفاده می‌شود. .SH "انواع ماژول ارائه‌شده (MODULE TYPES PROVIDED)" .IX Header "MODULE TYPES PROVIDED" تنها نوع ماژول \fBpassword\fR ارائه شده است. .SH "مقادیر بازگشتی (RETURN VALUES)" .IX Header "RETURN VALUES" .IP PAM_SUCCESS 4 .IX Item "PAM_SUCCESS" گذرواژه جدید تمام بررسی‌ها را با موفقیت پشت سر گذاشت. .IP PAM_AUTHTOK_ERR 4 .IX Item "PAM_AUTHTOK_ERR" هیچ گذرواژه جدیدی وارد نشد، نام کاربری قابل تشخیص نبود یا گذرواژه جدید در بررسی‌های استحکام رد شد. .IP PAM_AUTHTOK_RECOVERY_ERR 4 .IX Item "PAM_AUTHTOK_RECOVERY_ERR" گذرواژه قدیمی توسط ماژول قبلی در پشته ارائه نشد یا از کاربر درخواست نگردید. خطای اول می‌تواند در صورت مشخص شدن \fBuse_authtok\fR رخ دهد. .IP PAM_SERVICE_ERR 4 .IX Item "PAM_SERVICE_ERR" یک خطای داخلی رخ داد. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" برای مثالی از کاربرد این ماژول، نحوه قرارگیری آن در پشته به همراه مؤلفهٔ password از \fBpam_unix\fR\|(8) نشان داده شده است. .PP .Vb 9 \& # \& # These lines stack two password type modules. In this example the \& # user is given 3 opportunities to enter a strong password. The \& # "use_authtok" argument ensures that the pam_unix module does not \& # prompt for a password, but instead uses the one provided by \& # pam_pwquality. \& # \& password required pam_pwquality.so retry=3 \& password required pam_unix.so use_authtok .Ve .PP مثال دیگر برای حالتی است که می‌خواهید از رمزنگاری sha256 برای گذرواژه استفاده کنید: .PP .Vb 9 \& # \& # These lines allow modern systems to support passwords of at least 14 \& # bytes with extra credit of 2 for digits and 2 for others the new \& # password must have at least three bytes that are not present in the \& # old password \& # \& password required pam_pwquality.so \e \& difok=3 minlen=15 dcredit=2 ocredit=2 \& password required pam_unix.so use_authtok nullok sha256 .Ve .PP و در اینجا مثال دیگری در حالتی که مایل به استفاده از اعتبارها نیستید آورده شده است: .PP .Vb 8 \& # \& # These lines require the user to select a password with a minimum \& # length of 8 and with at least 1 digit number, 1 upper case letter, \& # and 1 other character \& # \& password required pam_pwquality.so \e \& dcredit=\-1 ucredit=\-1 ocredit=\-1 lcredit=0 minlen=8 \& password required pam_unix.so use_authtok nullok sha256 .Ve .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBpwscore\fR\|(1), \fBpwquality.conf\fR\|(5), \fBpam_pwquality\fR\|(8), \&\fBpam.conf\fR\|(5), \fBPAM\fR\|(8) .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Tomas Mraz .PP نویسنده اصلی ماژول \fBpam_cracklib\fR: Cristian Gafton