BUPSTASH-SERVE(1) User Commands BUPSTASH-SERVE(1)

bupstash-serve - اجرای پروتکل bupstash از طریق ورودی/خروجی استاندارد

ارائه پروتکل bupstash از طریق stdin/stdout.

bupstash serve [گزینه‌ها] REPOSITORY

دستور bupstash serve پروتکل bupstash را بر روی ورودی/خروجی استاندارد (stdin/stdout) ارائه می‌دهد و امکان تعامل با یک مخزن را فراهم می‌سازد. بیشتر دستورات bupstash از طریق یک نمونه از bupstash serve عمل می‌کنند.

دستور serve دارای گزینه‌هایی برای محدود کردن مجوزهای دسترسی است؛ به‌طور پیش‌فرض تمام دسترسی‌ها مجاز هستند تا زمانی که نخستین گزینه از گزینه‌های --allow-* مشخص شود. این گزینه‌ها را می‌توان از طریق فایل authorized_keys در ssh یا با استفاده از سازوکارهای پیکربندی sudo یا doas اعمال نمود.

کلاینت‌هایی که دارای مجوز خواندن داده‌ها هستند، در صورتی که کلید رمزگشایی سمت کلاینت صحیح را در اختیار نداشته باشند، باز هم قادر به رمزگشایی آن نخواهند بود.

توجه داشته باشید که بسیاری از خطاها به صورت خارج از باند از طریق خروجی خطای استاندارد (stderr) چاپ می‌شوند، بنابراین روش‌های ارتباطی جایگزین باید نحوه هدایت داده‌های stderr را نیز در نظر بگیرند.

اجازه به کلاینت برای راه‌اندازی اولیه‌ی مخزن‌های جدید.
اجازه به کلاینت برای قرار دادن آیتم‌های بیشتر در مخزن.
اجازه به کلاینت برای دریافت متاداده‌ها و نمایه اسنپ‌شات‌ها جهت جستجو و فهرست‌بندی.
اجازه به کلاینت برای دریافت داده‌ها از مخزن؛ این گزینه شامل --allow-list نیز می‌شود.
اجازه به کلاینت برای حذف آیتم‌های مخزن؛ این گزینه شامل --allow-list نیز می‌شود.
اجازه به کلاینت برای اجرای زباله‌روب مخزن.
اجازه به کلاینت برای همگام‌سازی آیتم‌ها به داخل مخزن؛ به عنوان مقصد در همگام‌سازی مخزن.

$ export BUPSTASH_REPOSITORY_COMMAND="ssh -p 2020 $SERVER bupstash serve /data/repository"
$ bupstash list

یک کاربر با نام 'backups' روی سرور خود بسازید.

در فایل پیکربندی sshd در سرور خود، خطوط زیر را اضافه کنید:

Match User backups
    ForceCommand "/bin/bupstash-put-force-command.sh"

اسکریپت ‎/bin/bupstash-put-force-command.sh‎ را روی سرور خود ایجاد کنید:

$ 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

اکنون هر کلاینتی با دسترسی ssh به کاربر 'backups' تنها قادر به اضافه کردن پشتیبان‌های جدید به یک مخزن خواهد بود:

$ export BUPSTASH_REPOSITORY="ssh://backups@$SERVER"
$ bupstash put ./data
d1659c3f56f744c7767fc57da003ee5d
$ bupstash list
server has disabled query and search for this client

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

bupstash(1)، bupstash-repository(7)

2026-09-01 bupstash