.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .\" DO NOT EDIT! Generated from XML source. .\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .de Sh \" Subsection .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .TH "HTDBM" 1 "2026-05-08" "Apache HTTP Server" "htdbm" .SH "نام (NAME)" htdbm \- دستکاری و مدیریت پایگاه‌های داده گذرواژه DBM .SH "خلاصه دستور (SYNOPSIS)" .PP \fB\fBhtdbm\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBi\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBB\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] [ -\fBC\fR \fIcost\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR\fR .PP \fB\fBhtdbm\fR -\fBb\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBB\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] [ -\fBC\fR \fIcost\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR \fIpassword\fR\fR .PP \fB\fBhtdbm\fR -\fBn\fR [ -\fBi\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBB\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] [ -\fBC\fR \fIcost\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIusername\fR\fR .PP \fB\fBhtdbm\fR -\fBnb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBB\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] [ -\fBC\fR \fIcost\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIusername\fR \fIpassword\fR\fR .PP \fB\fBhtdbm\fR -\fBv\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBi\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBB\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] [ -\fBC\fR \fIcost\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR\fR .PP \fB\fBhtdbm\fR -\fBvb\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBB\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] [ -\fBC\fR \fIcost\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR \fIpassword\fR\fR .PP \fB\fBhtdbm\fR -\fBx\fR [ -\fBT\fR\fIDBTYPE\fR ] \fIfilename\fR \fIusername\fR\fR .PP \fB\fBhtdbm\fR -\fBl\fR [ -\fBT\fR\fIDBTYPE\fR ] \fR .SH "توضیحات (DESCRIPTION)" .PP دستور \fBhtdbm\fR برای دستکاری و مدیریت پرونده‌های با قالب DBM استفاده می‌شود که جهت ذخیره‌سازی نام‌های کاربری و گذرواژه‌ها برای احراز هویت پایه‌ای (basic authentication) کاربران HTTP از طریق mod_authn_dbm به کار می‌روند\&. برای اطلاعات بیشتر درباره این پرونده‌های DBM، به مستندات \fBdbmmanage\fR مراجعه کنید\&. .SH "گزینه‌ها (OPTIONS)" .TP \fB-b\fR استفاده از حالت دسته‌ای (batch mode)؛ یعنی دریافت گذرواژه از خط فرمان به جای درخواست تعاملی آن\&. این گزینه باید با احتیاط فراوان استفاده شود، زیرا \fBگذرواژه به وضوح در خط فرمان قابل مشاهده است\fR\&. برای استفاده در اسکریپت‌ها گزینه \fB-i\fR را ببینید\&. .TP \fB-i\fR خواندن گذرواژه از stdin بدون تایید مجدد (برای استفاده در اسکریپت‌ها)\&. .TP \fB-c\fR ایجاد \fIpasswdfile\fR\&. اگر \fIpasswdfile\fR از قبل وجود داشته باشد، بازنویسی و کوتاه (truncated) می‌شود\&. این گزینه نمی‌تواند با گزینه \fB-n\fR ترکیب شود\&. .TP \fB-n\fR نمایش نتایج در خروجی استاندارد به جای به‌روزرسانی پایگاه داده\&. این گزینه نحو خط فرمان را تغییر می‌دهد، چرا که آرگومان \fIpasswdfile\fR (معمولاً اولین آرگومان) حذف می‌شود\&. این گزینه نمی‌تواند با گزینه \fB-c\fR ترکیب شود\&. .TP \fB-m\fR استفاده از هش MD5 برای گذرواژه‌ها\&. در ویندوز و نت‌ویر (Netware)، این مقدار پیش‌فرض است\&. .TP \fB-B\fR استفاده از هش bcrypt برای گذرواژه‌ها\&. این روش در حال حاضر بسیار امن در نظر گرفته می‌شود\&. .TP \fB-C\fR این فلگ فقط در ترکیب با \fB-B\fR (هش bcrypt) مجاز است\&. این گزینه زمان محاسباتی مورد استفاده برای الگوریتم bcrypt را تعیین می‌کند (مقادیر بالاتر امن‌تر اما کندتر هستند، پیش‌فرض: 5، بازه معتبر: 4 تا 31)\&. .TP \fB-d\fR استفاده از هش \fBcrypt()\fR برای گذرواژه‌ها\&. این گزینه در تمام پلتفرم‌ها به جز ویندوز و نت‌ویر پیش‌فرض است\&. اگرچه احتمالاً توسط \fBhtdbm\fR در تمام پلتفرم‌ها پشتیبانی می‌شود، اما توسط سرور \fBhttpd\fR در ویندوز و نت‌ویر پشتیبانی نمی‌شود\&. این الگوریتم با استانداردهای امروزی \fBناامن\fR است\&. .TP \fB-s\fR استفاده از هش SHA برای گذرواژه‌ها\&. مهاجرت از/به سرورهای Netscape را با استفاده از LDAP Directory Interchange Format (ldif) تسهیل می‌کند\&. این الگوریتم با استانداردهای امروزی \fBناامن\fR است\&. .TP \fB-p\fR استفاده از گذرواژه‌های متن‌آشکار (plaintext)\&. اگرچه \fBhtdbm\fR از ایجاد آن در تمام پلتفرم‌ها پشتیبانی می‌کند، اما دیمن \fBhttpd\fR گذرواژه‌های متن‌آشکار را فقط در ویندوز و نت‌ویر می‌پذیرد\&. .TP \fB-l\fR چاپ هر یک از نام‌های کاربری و توضیحات موجود در پایگاه داده در خروجی استاندارد (stdout)\&. .TP \fB-v\fR تایید و بررسی نام کاربری و گذرواژه\&. برنامه پیامی مبنی بر معتبر بودن یا نبودن گذرواژه ارائه‌شده چاپ می‌کند\&. اگر گذرواژه نامعتبر باشد، برنامه با کد خطای 3 خارج می‌شود\&. .TP \fB-x\fR حذف کاربر\&. اگر نام کاربری در پرونده DBM مشخص‌شده وجود داشته باشد، حذف خواهد شد\&. .TP \fB-t\fR تفسیر پارامتر پایانی به عنوان توضیح (comment)\&. هنگامی که این گزینه مشخص شود، یک رشته اضافی می‌تواند به انتهای خط فرمان اضافه شود؛ این رشته در فیلد "Comment" پایگاه داده و مرتبط با نام کاربری مشخص‌شده ذخیره خواهد شد\&. .TP \fB\fIfilename\fR\fR نام پرونده با قالب DBM\&. معمولاً بدون پسوند \fB\&.db\fR، \fB\&.pag\fR یا \fB\&.dir\fR\&. اگر \fB-c\fR داده شود، در صورت عدم وجود پرونده DBM ایجاد می‌شود، یا در صورت وجود به‌روزرسانی می‌گردد\&. .TP \fB\fIusername\fR\fR نام کاربری برای ایجاد یا به‌روزرسانی در \fIpasswdfile\fR\&. اگر \fIusername\fR در این پرونده وجود نداشته باشد، یک مدخل اضافه می‌شود\&. اگر وجود داشته باشد، گذرواژه تغییر می‌یابد\&. .TP \fB\fIpassword\fR\fR گذرواژه متن‌آشکار برای هش شدن و ذخیره در پرونده DBM\&. فقط همراه با فلگ \fB-b\fR استفاده می‌شود\&. .TP \fB-T\fIDBTYPE\fR\fR نوع پرونده DBM (شامل SDBM، GDBM، DB یا "default")\&. .SH "اشکالات (BUGS)" .PP باید آگاه باشید که چندین قالب پرونده DBM مختلف وجود دارد و به احتمال زیاد، کتابخانه‌های مربوط به بیش از یک قالب در سیستم شما موجود است\&. سه نمونه اصلی عبارتند از SDBM، NDBM، GNU GDBM و Berkeley/Sleepycat DB 2/3/4\&. متأسفانه، همه این کتابخانه‌ها از قالب‌های پرونده متفاوتی استفاده می‌کنند و شما باید مطمئن شوید که قالب پرونده مورد استفاده توسط \fIfilename\fR همان قالبی است که \fBhtdbm\fR انتظار دارد\&. در حال حاضر \fBhtdbm\fR راهی برای تشخیص نوع پرونده DBM که در حال بررسی آن است ندارد\&. در صورت استفاده برای یک قالب نادرست، برنامه به سادگی هیچ مقداری برنمی‌گرداند، یا ممکن است یک پرونده DBM متفاوت با نامی دیگر ایجاد کند، یا در بدترین حالت، در صورت تلاش برای نوشتن روی آن، ممکن است پرونده DBM را خراب کند\&. .PP معمولاً می‌توان از برنامه \fBfile\fR که همراه با اکثر سیستم‌های یونیکس ارائه می‌شود برای بررسی اینکه یک پرونده DBM در چه قالبی است استفاده کرد\&. .SH "کدهای بازگشتی (EXIT STATUS)" .PP دستور \fBhtdbm\fR در صورتی که نام کاربری و گذرواژه با موفقیت در پرونده DBM اضافه یا به‌روزرسانی شوند وضعیت صفر ("true") را برمی‌گرداند\&. \fBhtdbm\fR مقدار \fB1\fR را در صورت بروز مشکل در دسترسی به پرونده‌ها برمی‌گرداند، \fB2\fR در صورت وجود خطای نحوی در خط فرمان، \fB3\fR در صورتی که گذرواژه به صورت تعاملی وارد شده و مقدار تایید با آن مطابقت نداشته باشد، \fB4\fR در صورتی که عملیات متوقف شود، \fB5\fR در صورتی که یک مقدار بیش از حد طولانی باشد (نام کاربری، نام پرونده، گذرواژه یا رکورد محاسباتی نهایی)، \fB6\fR در صورتی که نام کاربری حاوی نویسه‌های غیرمجاز باشد (بخش محدودیت‌ها را ببینید) و \fB7\fR در صورتی که پرونده یک پرونده گذرواژه DBM معتبر نباشد\&. .SH "مثال‌ها (EXAMPLES)" .nf htdbm /usr/local/etc/apache/\&.htdbm-users jsmith .fi .PP گذرواژه را برای کاربر \fBjsmith\fR اضافه یا تغییر می‌دهد\&. از کاربر خواسته می‌شود گذرواژه را وارد کند\&. اگر در سیستم ویندوز اجرا شود، گذرواژه با استفاده از الگوریتم اصلاح‌شده MD5 آپاچی هش خواهد شد؛ در غیر این صورت، از روال \fBcrypt()\fR سیستم استفاده می‌شود\&. اگر پرونده وجود نداشته باشد، \fBhtdbm\fR کاری انجام نمی‌دهد جز بازگرداندن یک خطا\&. .nf htdbm -c /home/doe/public_html/\&.htdbm jane .fi .PP یک پرونده جدید ایجاد کرده و رکوردی را در آن برای کاربر \fBjane\fR ذخیره می‌کند\&. از کاربر خواسته می‌شود گذرواژه را وارد کند\&. اگر پرونده از قبل وجود داشته باشد و قابل خواندن یا نوشتن نباشد، تغییری در آن ایجاد نمی‌شود و \fBhtdbm\fR پیامی نمایش داده و وضعیت خطا برمی‌گرداند\&. .nf htdbm -mb /usr/web/\&.htdbm-all jones Pwd4Steve .fi .PP گذرواژه گرفته‌شده از خط فرمان (\fBPwd4Steve\fR) را با استفاده از الگوریتم MD5 رمزگذاری کرده و در پرونده مشخص‌شده ذخیره می‌کند\&. .SH "ملاحظات امنیتی (SECURITY CONSIDERATIONS)" .PP پرونده‌های گذرواژه وب مانند مواردی که توسط \fBhtdbm\fR مدیریت می‌شوند \fIنباید\fR در فضای URI سرور وب قرار گیرند -- یعنی نباید از طریق یک مرورگر قابل دریافت باشند\&. .PP استفاده از گزینه \fB-b\fR توصیه نمی‌شود، زیرا هنگام استفاده از آن گذرواژه متن‌آشکار در خط فرمان ظاهر می‌شود\&. .PP هنگام استفاده از الگوریتم \fBcrypt()\fR، توجه داشته باشید که تنها ۸ نویسه اول گذرواژه برای تشکیل گذرواژه استفاده می‌شوند\&. اگر گذرواژه ارائه‌شده طولانی‌تر باشد، نویسه‌های اضافی بدون هیچ هشداری نادیده گرفته می‌شوند\&. .PP گزینه هش SHA از نمک (salting) استفاده نمی‌کند: برای یک گذرواژه مشخص، تنها یک نمایش هش‌شده وجود دارد\&. قالب‌های \fBcrypt()\fR و MD5 با پیشوند کردن یک رشته نمک تصادفی، نمایش را تغییر می‌دهند تا حملات فرهنگ‌لغت علیه گذرواژه‌ها دشوارتر شود\&. .PP قالب‌های SHA و \fBcrypt()\fR با استانداردهای امروزی ناامن هستند\&. .SH "محدودیت‌ها (RESTRICTIONS)" .PP در پلتفرم ویندوز، طول گذرواژه‌های هش‌شده با \fBhtdbm\fR به حداکثر \fB255\fR نویسه محدود می‌شود\&. گذرواژه‌های طولانی‌تر به ۲۵۵ نویسه کوتاه می‌شوند\&. .PP الگوریتم MD5 استفاده‌شده توسط \fBhtdbm\fR مختص نرم‌افزار آپاچی است؛ گذرواژه‌های هش‌شده با استفاده از آن در سایر سرورهای وب قابل استفاده نخواهند بود\&. .PP نام‌های کاربری به \fB255\fR بایت محدود هستند و نباید شامل نویسه \fB:\fR باشند\&. .SH "فایل‌ها (FILES)" .PP مسیر پرونده گذرواژه DBM به عنوان یک آرگومان در خط فرمان مشخص می‌شود و می‌تواند در هر کجای سیستم‌فایل قرار داشته باشد\&. .TP \fIfilename\fR پرونده با قالب DBM حاوی نام‌های کاربری و گذرواژه‌ها\&.