.TH BUPSTASH-SERVE 1 "2026-09-01" "bupstash" "User Commands" .SH "نام (NAME)" bupstash\-serve \- اجرای پروتکل bupstash از طریق ورودی/خروجی استاندارد .SH "خلاصه دستور (SYNOPSIS)" ارائه پروتکل bupstash از طریق stdin/stdout\. .P \fBbupstash serve\fR [\fIگزینه‌ها\fR] \fIREPOSITORY\fR .SH "توضیحات (DESCRIPTION)" دستور \fBbupstash serve\fR پروتکل bupstash را بر روی ورودی/خروجی استاندارد (stdin/stdout) ارائه می‌دهد و امکان تعامل با یک مخزن را فراهم می‌سازد\. بیشتر دستورات bupstash از طریق یک نمونه از bupstash serve عمل می‌کنند\. .P دستور serve دارای گزینه‌هایی برای محدود کردن مجوزهای دسترسی است؛ به‌طور پیش‌فرض تمام دسترسی‌ها مجاز هستند تا زمانی که نخستین گزینه از گزینه‌های \-\-allow\-* مشخص شود\. این گزینه‌ها را می‌توان از طریق فایل authorized_keys در ssh یا با استفاده از سازوکارهای پیکربندی \fBsudo\fR یا \fBdoas\fR اعمال نمود\. .P کلاینت‌هایی که دارای مجوز خواندن داده‌ها هستند، در صورتی که کلید رمزگشایی سمت کلاینت صحیح را در اختیار نداشته باشند، باز هم قادر به رمزگشایی آن نخواهند بود\. .P توجه داشته باشید که بسیاری از خطاها به صورت خارج از باند از طریق خروجی خطای استاندارد (stderr) چاپ می‌شوند، بنابراین روش‌های ارتباطی جایگزین باید نحوه هدایت داده‌های stderr را نیز در نظر بگیرند\. .SH "گزینه‌ها (OPTIONS)" .TP \-\-allow\-init اجازه به کلاینت برای راه‌اندازی اولیه‌ی مخزن‌های جدید\. .TP \-\-allow\-put اجازه به کلاینت برای قرار دادن آیتم‌های بیشتر در مخزن\. .TP \-\-allow\-list اجازه به کلاینت برای دریافت متاداده‌ها و نمایه اسنپ‌شات‌ها جهت جستجو و فهرست‌بندی\. .TP \-\-allow\-get اجازه به کلاینت برای دریافت داده‌ها از مخزن؛ این گزینه شامل \-\-allow\-list نیز می‌شود\. .TP \-\-allow\-remove اجازه به کلاینت برای حذف آیتم‌های مخزن؛ این گزینه شامل \-\-allow\-list نیز می‌شود\. .TP \-\-allow\-gc اجازه به کلاینت برای اجرای زباله‌روب مخزن\. .TP \-\-allow\-sync اجازه به کلاینت برای همگام‌سازی آیتم‌ها به داخل مخزن؛ به عنوان مقصد در همگام‌سازی مخزن\. .SH "مثال‌ها (EXAMPLES)" .SS "فلگ‌های سفارشی ssh با استفاده از BUPSTASH_REPOSITORY_COMMAND" .nf $ export BUPSTASH_REPOSITORY_COMMAND="ssh \-p 2020 $SERVER bupstash serve /data/repository" $ bupstash list .fi .SS "راه‌اندازی کنترل‌های دسترسی SSH" یک کاربر با نام 'backups' روی سرور خود بسازید\. .P در فایل پیکربندی sshd در سرور خود، خطوط زیر را اضافه کنید: .IP "" 4 .nf Match User backups ForceCommand "/bin/bupstash\-put\-force\-command\.sh" .fi .IP "" 0 .P اسکریپت ‎/bin/bupstash\-put\-force\-command\.sh‎ را روی سرور خود ایجاد کنید: .IP "" 4 .nf $ echo 'exec bupstash serve \-\-allow\-put /home/backups/bupstash\-backups' > bupstash\-put\-force\-command\.sh $ sudo cp bupstash\-put\-force\-command\.sh /bin/bupstash\-put\-force\-command\.sh $ sudo chown root:root /bin/bupstash\-put\-force\-command\.sh $ sudo chmod +x /bin/bupstash\-put\-force\-command\.sh .fi .IP "" 0 .P اکنون هر کلاینتی با دسترسی ssh به کاربر 'backups' تنها قادر به اضافه کردن پشتیبان‌های جدید به یک مخزن خواهد بود: .IP "" 4 .nf $ export BUPSTASH_REPOSITORY="ssh://backups@$SERVER" $ bupstash put \./data d1659c3f56f744c7767fc57da003ee5d $ bupstash list server has disabled query and search for this client .fi .IP "" 0 .P ورود به سرور از راه‌های دیگر دسترسی کامل به مخزن پشتیبان‌ها را خواهد داشت\. با استفاده از مفاهیم مشابه در کنار پیکربندی‌ها و کلیدهای مختلف ssh می‌توان مجوزهای متفاوتی را پیکربندی کرد\. .SH "همچنین ببینید (SEE ALSO)" .BR bupstash (1)، .BR bupstash\-repository (7)