CHPASSWD(8) دستورات مدیریت سیستم (System Management Commands) CHPASSWD(8)

chpasswd - بهروزرسانی گذرواژهها در حالت دستهای

chpasswd [گزینه‌ها]

دستور chpasswd فهرستی از جفت‌های نام کاربری و گذرواژه را از ورودی استاندارد می‌خواند و از این اطلاعات برای به‌روزرسانی مجموعه‌ای از کاربران موجود استفاده می‌کند. هر خط در قالب زیر است:

user_name:password

به‌طور پیش‌فرض، گذرواژه‌ها باید به‌صورت متن آشکار ارائه شوند و توسط chpasswd رمزنگاری می‌شوند. همچنین در صورت وجود، عمر گذرواژه نیز به‌روزرسانی خواهد شد.

به‌طور پیش‌فرض، گذرواژه‌ها توسط PAM رمزنگاری می‌شوند، اما (حتی اگر توصیه نشود) می‌توانید روش رمزنگاری دیگری را با گزینه‌های -e یا -c انتخاب کنید.

به‌جز زمانی که از PAM برای رمزنگاری گذرواژه‌ها استفاده می‌شود، chpasswd ابتدا همهٔ گذرواژه‌ها را در حافظه به‌روزرسانی می‌کند، و سپس در صورتی که هیچ خطایی برای هیچ کاربری رخ نداده باشد، تمامی تغییرات را روی دیسک اعمال می‌کند.

هنگامی که از PAM برای رمزنگاری گذرواژه‌ها (و به‌روزرسانی گذرواژه‌ها در پایگاه‌داده سیستم) استفاده می‌شود، در صورتی که گذرواژه‌ای نتواند به‌روزرسانی شود، chpasswd به به‌روزرسانی گذرواژه‌های کاربران بعدی ادامه می‌دهد و هنگام خروج یک کد خطا بازمی‌گرداند.

این دستور برای استفاده در محیط‌های سیستمی بزرگ که در آن‌ها حساب‌های زیادی به‌طور همزمان ایجاد می‌شوند در نظر گرفته شده است.

گزینه‌هایی که برای دستور chpasswd اعمال می‌شوند عبارتند از:

-c, --crypt-method METHOD

استفاده از روش مشخص‌شده برای رمزنگاری گذرواژه‌ها.

روش‌های موجود عبارتند از: SHA256، SHA512، YESCRYPT و NONE در صورتی که libc شما از این روش‌ها پشتیبانی کند.

به‌طور پیش‌فرض، از PAM برای رمزنگاری گذرواژه‌ها استفاده می‌شود.

-e, --encrypted

گذرواژه‌های ارائه‌شده به فرم رمزنگاری‌شده هستند.

-h, --help

نمایش پیام راهنما و خروج.

-R, --root CHROOT_DIR

اعمال تغییرات در دایرکتوری CHROOT_DIR و استفاده از فایل‌های پیکربندی موجود در دایرکتوری CHROOT_DIR. تنها مسیرهای مطلق پشتیبانی می‌شوند. از SELinux پشتیبانی نمی‌شود.

-P, --prefix PREFIX_DIR

اعمال تغییرات روی فایل‌های پیکربندی زیر سیستم‌فایل ریشه موجود در دایرکتوری PREFIX_DIR. این گزینه chroot نمی‌کند و برای آماده‌سازی یک هدف کامپایل متقابل در نظر گرفته شده است. برخی محدودیت‌ها: کاربران/گروه‌های NIS و LDAP بررسی نمی‌شوند. احراز هویت PAM از فایل‌های میزبان استفاده می‌کند. از SELinux پشتیبانی نمی‌شود.

-s, --sha-rounds ROUNDS

استفاده از تعداد دورهای مشخص‌شده برای رمزنگاری گذرواژه‌ها.

تنها می‌توانید از این گزینه همراه با روش‌های رمزنگاری زیر استفاده کنید: SHA256 SHA512 YESCRYPT

به‌طور پیش‌فرض، تعداد دورها برای SHA256 یا SHA512 با متغیرهای SHA_CRYPT_MIN_ROUNDS و SHA_CRYPT_MAX_ROUNDS در /etc/login.defs تعیین می‌شود.

حداقل مقدار 1000 و حداکثر مقدار 999,999,999 برای SHA256 و SHA512 اعمال خواهد شد. تعداد پیش‌فرض دورها 5000 است.

به‌طور پیش‌فرض، تعداد دورها برای YESCRYPT با متغیر YESCRYPT_COST_FACTOR در /etc/login.defs تعیین می‌شود.

حداقل مقدار 1 و حداکثر مقدار 11 برای YESCRYPT اعمال خواهد شد. تعداد پیش‌فرض دورها 5 است.

به یاد داشته باشید که مجوزها یا umask را طوری تنظیم کنید که از خوانده شدن فایل‌های رمزنگاری‌نشده توسط سایر کاربران جلوگیری شود.

متغیرهای پیکربندی زیر در /etc/login.defs رفتار این ابزار را تغییر می‌دهند:

SHA_CRYPT_MIN_ROUNDS (عدد)، SHA_CRYPT_MAX_ROUNDS (عدد)

هنگامی که ENCRYPT_METHOD روی SHA256 یا SHA512 تنظیم شده باشد، این متغیرها تعداد دورهای SHA مورد استفاده در الگوریتم رمزنگاری را به‌طور پیش‌فرض مشخص می‌کنند (هنگامی که تعداد دورها در خط فرمان مشخص نشده باشد).

با افزایش تعداد دورها، شکستن گذرواژه با حمله جستجوی فراگیر دشوارتر می‌شود. اما توجه داشته باشید که منابع پردازنده بیشتری برای احراز هویت کاربران مورد نیاز خواهد بود.

در صورت عدم تعیین، 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 تنظیم گردد.

YESCRYPT_COST_FACTOR (عدد)

هنگامی که ENCRYPT_METHOD روی YESCRYPT تنظیم شده باشد، این متغیر فاکتور هزینه استفاده‌شده توسط الگوریتم رمزنگاری را به‌طور پیش‌فرض مشخص می‌کند (زمانی که فاکتور هزینه در خط فرمان تعیین نشده باشد).

با فاکتور هزینه بالا، شکستن گذرواژه با حمله جستجوی فراگیر دشوارتر می‌شود. اما توجه داشته باشید که منابع پردازنده بیشتری برای احراز هویت کاربران مورد نیاز خواهد بود.

مقدار باید در محدوده 1 تا 11 باشد.

نکته: این تنظیم تنها بر ایجاد گذرواژه‌های گروه تأثیر می‌گذارد. ایجاد گذرواژه‌های کاربران توسط PAM انجام می‌شود و تابع پیکربندی PAM است. توصیه می‌شود این متغیر سازگار با پیکربندی PAM تنظیم گردد.

/etc/passwd

اطلاعات حساب‌های کاربری.

/etc/shadow

اطلاعات امن حساب‌های کاربری.

/etc/login.defs

پیکربندی مجموعه گذرواژه Shadow.

/etc/pam.d/chpasswd

پیکربندی PAM برای chpasswd.

passwd(1)، newusers(8)، login.defs(5)، useradd(8).

07/30/2026 shadow-utils 4.20.0