FLATPAK OVERRIDE(1) flatpak override FLATPAK OVERRIDE(1)

flatpak-override - بازنویسی و تغییر دسترسی‌های برنامه فلت‌پک

flatpak override [OPTION...] [APP]

نیازمندی‌های زمان اجرای مشخص‌شده توسط برنامه را بازنویسی و تغییر می‌دهد. این قابلیت می‌تواند برای اعطای منابع کمتر یا بیشتر از آنچه برنامه درخواست کرده است به یک برنامهٔ سندباکس‌شده استفاده شود.

به‌طور پیش‌فرض، برنامه در هنگام شروع به منابعی که درخواست کرده است دسترسی پیدا می‌کند. اما کاربر می‌تواند این دسترسی‌ها را برای یک اجرای خاص با مشخص کردن آرگومان‌های اضافی برای flatpak run، یا برای همیشه با استفاده از flatpak override بازنویسی و لغو کند.

تنظیمات بازنویسی برنامه در حالت کاربری در فایل‌های متنی واقع در مسیر $XDG_DATA_HOME/flatpak/overrides ذخیره می‌شوند.

اگر شناسهٔ برنامه APP مشخص نشود، بازنویسی‌ها روی تمام برنامه‌ها اعمال می‌شوند، اما بازنویسی‌های مختص هر برنامه می‌توانند بازنویسی‌های سراسری را لغو کرده و اولویت داشته باشند.

مگر اینکه با گزینه‌های --user یا --installation بازنویسی شود، این دستور نصب پیش‌فرض سراسری سیستم (system-wide) را تغییر می‌دهد.

گزینه‌های زیر پشتیبانی می‌شوند:

-h, --help

نمایش گزینه‌های راهنما و خروج.

-u, --user

به‌روزرسانی یک نصب به ازای کاربر (per-user).

--system

به‌روزرسانی نصب پیش‌فرض سراسری سیستم (system-wide).

--installation=NAME

نصب سراسری سیستم مشخص‌شده با NAME را از میان موارد تعریف‌شده در /etc/flatpak/installations.d/ به‌روزرسانی می‌کند. استفاده از --installation=default معادل استفاده از --system است.

--share=SUBSYSTEM

اشتراک‌گذاری یک زیرسیستم با نشست میزبان. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. SUBSYSTEM باید یکی از موارد زیر باشد: network، ipc. این گزینه می‌تواند چندین بار استفاده شود.

--unshare=SUBSYSTEM

عدم اشتراک‌گذاری یک زیرسیستم با نشست میزبان. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. SUBSYSTEM باید یکی از موارد زیر باشد: network، ipc. این گزینه می‌تواند چندین بار استفاده شود.

--share-if=SUBSYSTEM:CONDITION

اشتراک‌گذاری مشروط یک زیرسیستم با نشست میزبان، تنها در صورتی که شرط مشخص‌شده در زمان اجرا برقرار باشد. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. SUBSYSTEM باید یکی از موارد زیر باشد: network، ipc. CONDITION باید یکی از موارد زیر باشد: true, false, has-input-device, has-wayland, has-usb-device, has-usb-portal. شرط‌ها را می‌توان با ! نقیض کرد، به عنوان مثال !has-input-device. این گزینه می‌تواند چندین بار استفاده شود. موجود از نسخهٔ 1.17 به بعد.

برای جزئیات بیشتر بخش Conditional Permissions را در flatpak-metadata(5) ببینید.

--socket=SOCKET

در دسترس قرار دادن یک سوکت شناخته‌شده برای برنامه. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. SOCKET باید یکی از موارد زیر باشد: x11, wayland, fallback-x11, pulseaudio, system-bus, session-bus, ssh-auth, pcsc, cups, gpg-agent, inherit-wayland-socket. این گزینه می‌تواند چندین بار استفاده شود.

--nosocket=SOCKET

عدم دسترسی برنامه به یک سوکت شناخته‌شده. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. SOCKET باید یکی از موارد زیر باشد: x11, wayland, fallback-x11, pulseaudio, system-bus, session-bus, ssh-auth, pcsc, cups, gpg-agent, inherit-wayland-socket. این گزینه می‌تواند چندین بار استفاده شود.

--socket-if=SOCKET:CONDITION

در دسترس قرار دادن مشروط یک سوکت شناخته‌شده برای برنامه، تنها در صورتی که شرط مشخص‌شده در زمان اجرا برقرار باشد. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. SOCKET باید یکی از موارد زیر باشد: x11, wayland, fallback-x11, pulseaudio, system-bus, session-bus, ssh-auth, pcsc, cups, gpg-agent, inherit-wayland-socket. CONDITION باید یکی از موارد زیر باشد: true, false, has-input-device, has-wayland, has-usb-device, has-usb-portal. شرط‌ها را می‌توان با ! نقیض کرد، به عنوان مثال !has-wayland. این گزینه می‌تواند چندین بار استفاده شود. موجود از نسخهٔ 1.17 به بعد.

برای جزئیات بیشتر بخش Conditional Permissions را در flatpak-metadata(5) ببینید.

--device=DEVICE

در دسترس قرار دادن یک دستگاه برای برنامه. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. DEVICE باید یکی از موارد زیر باشد: dri, input, usb, kvm, shm, all. این گزینه می‌تواند چندین بار استفاده شود.

--nodevice=DEVICE

عدم دسترسی برنامه به یک دستگاه. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. DEVICE باید یکی از موارد زیر باشد: dri, input, usb, kvm, shm, all. این گزینه می‌تواند چندین بار استفاده شود.

--device-if=DEVICE:CONDITION

در دسترس قرار دادن مشروط یک دستگاه برای برنامه، تنها در صورتی که شرط مشخص‌شده در زمان اجرا برقرار باشد. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. DEVICE باید یکی از موارد زیر باشد: dri, input, usb, kvm, shm, all. CONDITION باید یکی از موارد زیر باشد: true, false, has-input-device, has-wayland, has-usb-device, has-usb-portal. شرط‌ها را می‌توان با ! نقیض کرد، به عنوان مثال !has-input-device. این گزینه می‌تواند چندین بار استفاده شود. موجود از نسخهٔ 1.17 به بعد.

برای جزئیات بیشتر بخش Conditional Permissions را در flatpak-metadata(5) ببینید.

--allow=FEATURE

مجاز کردن دسترسی به یک ویژگی مشخص. این گزینه گروه [Context] در فراداده‌ها را به‌روزرسانی می‌کند. FEATURE باید یکی از موارد زیر باشد: devel, multiarch, bluetooth, canbus, per-app-dev-shm. این گزینه می‌تواند چندین بار استفاده شود.

برای معنای ویژگی‌های مختلف به flatpak-build-finish(1) مراجعه کنید.

--disallow=FEATURE

غیرمجاز کردن دسترسی به یک ویژگی مشخص. این گزینه گروه [Context] در فراداده‌ها را به‌روزرسانی می‌کند. FEATURE باید یکی از موارد زیر باشد: devel, multiarch, bluetooth, canbus, per-app-dev-shm. این گزینه می‌تواند چندین بار استفاده شود.

--allow-if=FEATURE:CONDITION

مجاز کردن دسترسی مشروط به یک ویژگی مشخص، تنها هنگامی که شرط مشخص‌شده در زمان اجرا برقرار باشد. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. FEATURE باید یکی از موارد زیر باشد: devel, multiarch, bluetooth. CONDITION باید یکی از موارد زیر باشد: true, false, has-input-device, has-wayland, has-usb-device, has-usb-portal. شرط‌ها را می‌توان با ! نقیض کرد، به عنوان مثال !has-input-device. این گزینه می‌تواند چندین بار استفاده شود. موجود از نسخهٔ 1.17 به بعد.

برای جزئیات بیشتر بخش Conditional Permissions را در flatpak-metadata(5) ببینید.

--filesystem=FILESYSTEM

مجاز کردن دسترسی برنامه به بخشی از سیستم فایل. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. FILESYSTEM می‌تواند یکی از موارد زیر باشد: home, host, host-os, host-etc, host-root, xdg-desktop, xdg-documents, xdg-download, xdg-music, xdg-pictures, xdg-public-share, xdg-templates, xdg-videos, xdg-run, xdg-config, xdg-cache, xdg-data، یک مسیر مطلق، یا یک مسیر نسبی نسبت به دایرکتوری خانگی مانند dir/~ یا مسیرهای نسبی نسبت به دایرکتوری‌های xdg مانند xdg-download/subdir. پسوند اختیاری :ro نشان می‌دهد که مکان مورد نظر فقط‌خواندنی خواهد بود. پسوند اختیاری :create نشان می‌دهد که مکان مورد نظر خواندنی-نوشتنی است و در صورت عدم وجود ایجاد می‌شود. این گزینه می‌تواند چندین بار استفاده شود. برای جزئیات مربوط به مفاهیم این سیستم‌های فایل، فهرست "[Context] filesystems" را در flatpak-metadata(5) ببینید.

--nofilesystem=FILESYSTEM

اثر یک --filesystem=FILESYSTEM قبلی در مانیفست برنامه یا در یک لایهٔ بازنویسی با اولویت پایین‌تر را خنثی می‌کند، و/یا یک --filesystem=FILESYSTEM قبلی را از این لایهٔ بازنویسی‌ها حذف می‌نماید. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. FILESYSTEM می‌تواند همان مقادیر مربوط به --filesystem را دریافت کند، اما پسوندهای :ro و :create در اینجا استفاده نمی‌شوند. این گزینه می‌تواند چندین بار استفاده شود.

این گزینه مانع از دسترسی به یک --filesystem با دامنهٔ محدودتر نمی‌شود. به عنوان مثال، اگر برنامه‌ای معادل --filesystem=xdg-config/MyApp را در مانیفست خود یا به صورت یک بازنویسی سراسری سیستم داشته باشد، و دستور flatpak override --user --nofilesystem=home به عنوان بازنویسی به ازای کاربر اعمال شود، آن‌گاه برنامه از دسترسی به بخش اعظم پوشهٔ خانگی محروم خواهد شد، اما همچنان مجاز به دسترسی به $XDG_CONFIG_HOME/MyApp خواهد بود.

به عنوان یک حالت ویژه، --nofilesystem=host:reset علاوه بر داشتن رفتار --nofilesystem=host، تمام مجوزهای --filesystem به‌ارث‌رسیده از مانیفست برنامه یا لایهٔ بازنویسی با اولویت کمتر را نادیده می‌گیرد.

--add-policy=SUBSYSTEM.KEY=VALUE

افزودن گزینهٔ خط‌مشی عمومی (policy). برای مثال، "--add-policy=subsystem.key=v1 --add-policy=subsystem.key=v2" به این فراداده نگاشت می‌شود:
[Policy subsystem]
key=v1;v2;

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

--remove-policy=SUBSYSTEM.KEY=VALUE

حذف گزینهٔ خط‌مشی عمومی (policy). این گزینه می‌تواند چندین بار استفاده شود.

--env=VAR=VALUE

تنظیم یک متغیر محیطی در برنامه. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--unset-env=VAR

لغو تنظیم یک متغیر محیطی در برنامه. این گزینه ورودی unset-environment در گروه [Context] فراداده‌ها و همچنین گروه [Environment] را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--env-fd=FD

خواندن متغیرهای محیطی از توصیف‌گر فایل FD، و تنظیم آن‌ها همانند استفاده از گزینهٔ --env. از این گزینه می‌توان برای جلوگیری از مشاهده شدن متغیرهای محیطی و مقادیر آن‌ها توسط سایر کاربران استفاده کرد.

هر متغیر محیطی در قالب VAR=VALUE است که پس از آن یک بایت صفر دنبال می‌شود. این همان قالبی است که توسط env -0 و /proc/*/environ استفاده می‌شود.

--own-name=NAME

اجازه به برنامه برای در اختیار داشتن نام شناخته‌شدهٔ (well-known name) NAME روی گذرگاه نشست (session bus). این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--talk-name=NAME

اجازه به برنامه برای ارتباط با نام شناخته‌شدهٔ (well-known name) NAME روی گذرگاه نشست (session bus). این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--no-talk-name=NAME

عدم اجازه به برنامه برای ارتباط با نام شناخته‌شدهٔ (well-known name) NAME روی گذرگاه نشست (session bus). این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--system-own-name=NAME

اجازه به برنامه برای در اختیار داشتن نام شناخته‌شدهٔ (well-known name) NAME روی گذرگاه سیستم (system bus). اگر NAME با .* خاتمه یابد، به برنامه اجازه می‌دهد تا تمام نام‌های منطبق را در اختیار داشته باشد. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--system-talk-name=NAME

اجازه به برنامه برای ارتباط با نام شناخته‌شدهٔ (well-known name) NAME روی گذرگاه سیستم (system bus). اگر NAME با .* خاتمه یابد، به برنامه اجازه می‌دهد با تمام نام‌های منطبق ارتباط برقرار کند. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--system-no-talk-name=NAME

عدم اجازه به برنامه برای ارتباط با نام شناخته‌شدهٔ (well-known name) NAME روی گذرگاه سیستم (system bus). اگر NAME با .* خاتمه یابد، به برنامه اجازه ارتباط با هیچ‌کدام از نام‌های منطبق را نمی‌دهد. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--persist=FILENAME

اگر برنامه به دایرکتوری خانگی واقعی دسترسی ندارد، مسیر (نسبت به دایرکتوری خانگی) FILENAME را به مسیر متناظر در دایرکتوری مختص برنامه متصل (bind mount) می‌کند و اجازه می‌دهد از آن مکان برای داده‌های پایدار استفاده شود. این گزینه بخش Context فراداده‌های برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--reset

حذف بازنویسی‌ها. اگر یک APP مشخص شده باشد، بازنویسی‌های مربوط به آن برنامه حذف می‌شوند؛ در غیر این صورت بازنویسی‌های سراسری حذف خواهند شد.

--show

نمایش بازنویسی‌ها. اگر یک APP مشخص شده باشد، بازنویسی‌های مربوط به آن برنامه را نمایش می‌دهد؛ در غیر این صورت بازنویسی‌های سراسری را نمایش خواهد داد.

-v, --verbose

چاپ اطلاعات اشکال‌زدایی حین پردازش دستور.

--ostree-verbose

چاپ اطلاعات اشکال‌زدایی OSTree حین پردازش دستور.

$ flatpak override --nosocket=wayland org.gnome.gedit

$ flatpak override --filesystem=home org.mozilla.Firefox

$ flatpak override --socket-if=x11:!has-wayland org.example.App

اعطای دسترسی به سوکت X11 تنها در زمانی که برنامه در یک نشست ویلند (Wayland) اجرا نمی‌شود.

flatpak(1), flatpak-run(1)

flatpak