SSH_FILTER_BTRBK(1) Btrbk Manual SSH_FILTER_BTRBK(1)

ssh_filter_btrbk - فیلتر محدودسازی دستورات SSH برای btrbk

ssh_filter_btrbk.sh [-s|--source] [-t|--target] [-d|--delete]
    [-i|--info] [--snapshot] [--send] [--receive]
    [-p|--restrict-path <path>] [-l|--log] [--sudo]

اسکریپت ssh_filter_btrbk.sh دستورات SSH را تنها به دستوراتی که توسط btrbk استفاده می‌شوند محدود می‌کند. این اسکریپت متغیر محیطی SSH_ORIGINAL_COMMAND (تنظیم‌شده توسط sshd) را بررسی کرده و تنها در صورتی آن را اجرا می‌کند که شامل دستورات مورد استفاده توسط btrbk باشد.

دستورات پذیرفته‌شده با گزینه‌های --source، --target، --delete و --info مشخص می‌شوند.

دستورات زیر همیشه مجاز هستند:

•"btrfs subvolume show" (تحت تاثیر --restrict-path قرار نمی‌گیرد)
•"btrfs subvolume list" (تحت تاثیر --restrict-path قرار نمی‌گیرد)
•"readlink"
•"test -d" (تنها در صورتی که گزینه پیکربندی "compat busybox" تنظیم شده باشد)
•"cat /proc/self/mountinfo"
•پایپ‌ها از طریق "gzip"، "pigz"، "bzip2"، "pbzip2"، "bzip3"، "xz"، "lzop"، "lz4"، "zstd" (stream_compress)
•پایپ‌ها از طریق "mbuffer" (stream_buffer، rate_limit)

یک خط نمونه در /root/.ssh/authorized_keys روی یک میزبان مقصد پشتیبان‌گیری:

command="ssh_filter_btrbk.sh --target --delete --restrict-path /mnt/btr_backup",restrict ssh-rsa AAAAB3NzaC1...hwumXFRQBL btrbk@example.org

-s, --source

اجازه دادن به دستورات مربوط به مبدا پشتیبان‌گیری: "btrfs subvolume snapshot" و "btrfs send". معادل با --snapshot --send.

-t, --target

اجازه دادن به دستورات مربوط به مقصد پشتیبان‌گیری و بایگانی: "btrfs receive" و "mkdir".

-d, --delete

اجازه دادن به دستورات حذف زیرحجم (subvolume): "btrfs subvolume delete". این گزینه در مبدا پشتیبان‌گیری در صورتی استفاده می‌شود که snapshot_preserve_daily بر روی “all” تنظیم نشده باشد، و برای مقصدهای پشتیبان‌گیری در صورتی که target_preserve_daily بر روی “all” تنظیم نشده باشد به کار می‌رود.

-i, --info

اجازه دادن به دستورات اطلاعاتی: "btrfs subvolume find-new" و "btrfs filesystem usage". این مورد توسط دستورات info و diff در btrbk استفاده می‌شود.

--snapshot

اجازه دادن به دستور اسنپ‌شات btrfs: "btrfs subvolume snapshot".

--send

اجازه دادن به دستور ارسال btrfs: "btrfs send".

--receive

اجازه دادن به دستور دریافت btrfs: "btrfs receive".

-p, --restrict-path <path>

محدود کردن دستورات به <path>. توجه داشته باشید که "btrfs subvolume show" و "btrfs subvolume list" تحت تاثیر این گزینه قرار نمی‌گیرند.

محدود کردن دستورات به نام‌های دقیق زیرحجم‌ها امکان‌پذیر نیست، زیرا btrfs-receive(8) یک <path> را به عنوان آرگومان دریافت می‌کند (دایرکتوری، بدون در نظر گرفتن نام فایل زیرحجمی که قرار است ایجاد شود، چرا که این مورد در send-stream کدگذاری شده است).

-l, --log

ثبت پیام‌های ACCEPT و REJECT در گزارش سیستم.

--sudo

اجازه دادن به اجرای دستورات btrfs از طریق sudo. در صورتی که در فایل پیکربندی btrbk خود عبارت "backend btrfs-progs-sudo" را دارید، این گزینه را فعال کنید.

لطفاً برای جزئیات بیشتر به صفحه پروژه btrbk در https://digint.ch/btrbk مراجعه کنید.

btrbk(1), btrbk.conf(5), btrfs(8)

Axel Burri <axel@tty0.ch>

2026-07-19 Btrbk 0.32.7