.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "AA-EXEC 1" .TH AA-EXEC 1 2026-03-10 "AppArmor 4.1.7" AppArmor .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" aa\-exec \- اجرای برنامه تحت پروفایل یا فضای‌نام امنیتی AppArmor مشخص .SH "خلاصه دستور (SYNOPSIS)" .IX Header "خلاصه دستور (SYNOPSIS)" \&\fBaa\-exec\fR [گزینه‌ها] [\-\-] [\fI<دستور>\fR ...] .SH "توضیحات (DESCRIPTION)" .IX Header "توضیحات (DESCRIPTION)" دستور \&\fBaa\-exec\fR برای راه‌اندازی و اجرای یک برنامه تحت محدودیت پروفایل یا فضای‌نام (namespace) مشخص به کار می‌رود. اگر هم پروفایل و هم فضای‌نام مشخص شوند، دستور تحت آن پروفایل در فضای‌نام جدید سیاست اجرا و محدود خواهد شد. اگر فقط یک فضای‌نام مشخص شود، از نام پروفایل محدودیت فعلی استفاده می‌شود. اگر نه پروفایل و نه فضای‌نام مشخص نشوند، دستور با استفاده از اتصال استاندارد پروفایل اجرا خواهد شد (یعنی مانند زمانی که بدون دستور aa\-exec اجرا شده باشد). .PP اگر قرار است آرگومان‌ها به \fI<دستور>\fR فراخوانی‌شده توسط aa\-exec پاس داده شوند، باید از \-\- برای جداسازی آرگومان‌های aa\-exec از دستور استفاده شود: .PP .nf aa\-exec \-p profile1 \-\- ls \-l .fi .SH "گزینه‌ها (OPTIONS)" .IX Header "گزینه‌ها (OPTIONS)" دستور \&\fBaa\-exec\fR آرگومان‌های زیر را می‌پذیرد: .IP "\-p PROFILE, \-\-profile=PROFILE" 4 .IX Item "-p PROFILE, --profile=PROFILE" محدود کردن \fI<دستور>\fR با PROFILE. اگر PROFILE مشخص نشود، از نام پروفایل فعلی (احتمالاً unconfined) استفاده می‌شود. .IP "\-n NAMESPACE, \-\-namespace=NAMESPACE" 4 .IX Item "-n NAMESPACE, --namespace=NAMESPACE" استفاده از پروفایل‌ها در NAMESPACE. این کار باعث انتقال محدودیت به فضای‌نام جدید پروفایل می‌شود. .IP "\-i, \-\-immediate" 4 .IX Item "-i, --immediate" انتقال به PROFILE قبل از اجرای \fI<دستور>\fR. این کار اجرای \fI<دستور>\fR را تابع قوانین انتقال exec در پروفایل فعلی می‌کند. .IP "\-v, \-\-verbose" 4 .IX Item "-v, --verbose" نمایش دستوراتی که در حال اجرا هستند. .IP "\-d, \-\-debug" 4 .IX Item "-d, --debug" نمایش دستورات و کدهای خطا. .IP \-\- 4 .IX Item "--" نشان‌دهنده پایان گزینه‌ها است و پردازش بیشتر گزینه‌ها را غیرفعال می‌کند. هر آرگومانی بعد از \-\- به عنوان آرگومان‌های دستور در نظر گرفته می‌شود. این برای پاس دادن آرگومان‌ها به \fI<دستور>\fR فراخوانی‌شده توسط aa\-exec مفید است. .SH "محدودیت‌ها (RESTRICTIONS)" .IX Header "محدودیت‌ها (RESTRICTIONS)" دستور aa\-exec از \fR\f(BIaa_change_profile\fR\fI\|(3)\fR برای تغییر محدودیت امنیتی برنامه استفاده می‌کند. استفاده از \fI\fR\f(BIaa_change_profile\fR\fI\|(3)\fR ممکن است توسط سیاست به گونه‌ای محدود شده باشد که باعث بروز خطا یا نتایجی متفاوت از انتظار شود. .PP حتی هنگام استفاده از \fIaa\-exec\fR از وضعیت نامحدود (unconfined)، محدودیت‌های درون سیاست می‌توانند باعث بروز خطا شوند یا سبب شوند محدودیت اعمال‌شده با آنچه درخواست شده متفاوت باشد. .PP برای جزئیات بیشتر به مستندات محدودیت نامحدود غیرممتاز (unprivileged unconfined restriction) مراجعه کنید: .PP https://gitlab.com/apparmor/apparmor/\-/wikis/unprivileged_unconfined_restriction .SH "پشته‌سازی (STACKING)" .IX Header "پشته‌سازی (STACKING)" دستور aa\-exec می‌تواند برای تنظیم پشته‌ای از پروفایل‌ها به عنوان محدودیت امنیتی استفاده شود. هنگامی که یک برنامه توسط یک پشته محدود می‌شود، تمام پروفایل‌های موجود در پشته به گونه‌ای بررسی می‌شوند که گویی خود پروفایلِ محدودکننده برنامه هستند. میانجی‌گری و تصمیم‌گیری نهایی، اشتراک دسترسی‌های مجاز در هر یک از پروفایل‌های موجود در پشته خواهد بود. .PP پروفایل‌های موجود در یک پشته به طور مستقل رفتار می‌کنند. هر پروفایل می‌تواند پرچم‌ها و انتقال‌های پروفایل مختص به خود را داشته باشد. در طول یک فراخوانی exec، هر پروفایل انتقال خود را مشخص می‌کند و نتایج برای تشکیل یک پشته استانداردشده (canonicalized) جدید با یکدیگر ترکیب می‌شوند. .PP جداکننده پروفایل که نشان‌دهنده یک پشته است، دنباله کاراکتری \fI//&\fR می‌باشد. بنابراین یک پشته را می‌توان به شکل زیر بیان کرد: .Sp .Vb 6 \& $ aa\-exec \-p "unconfined//&firefox" \-\- bash \& $ ps \-Z \& LABEL PID TTY TIME CMD \& unconfined 30714 pts/12 00:00:00 bash \& firefox//&unconfined (unconfined) 31160 pts/12 00:00:00 bash \& firefox//&unconfined (unconfined) 31171 pts/12 00:00:00 ps .Ve .SH "فضاهای نام (NAMESPACES)" .IX Header "فضاهای نام (NAMESPACES)" دستور aa\-exec می‌تواند برای ورود به محدودیت امنیتی در یک فضای‌نام سیاست (policy namespace) دیگر استفاده شود، به شرطی که آن فضای‌نام وجود داشته باشد، قابل مشاهده باشد، و پروفایل نیز در آن فضای‌نام موجود باشد. توجه داشته باشید برنامه‌هایی که در داخل فضای‌نام اجرا می‌شوند قادر به خروج از آن نخواهند بود و ممکن است توسط محدودیت‌های اضافی پیرامون فضاهای نام محدودتر شوند. فایل‌ها و منابعی که برای والد اجراکننده برنامه قابل مشاهده هستند ممکن است در فضای‌نام سیاست قابل مشاهده نباشند که این امر منجر به رد دسترسی (access denial) می‌شود. .PP برای ورود به یک فضای‌نام سیاست، نام فضای‌نام با استفاده از پیشوند و پسوند \fI:\fR به ابتدای نام پروفایل اضافه می‌شود. .PP به عنوان مثال: .Sp .Vb 6 \& $ aa\-exec \-p :ex1:unconfined \-\- bash \& $ ps \-Z \& LABEL PID TTY TIME CMD \& \- 30714 pts/12 00:00:00 bash \& unconfined 34372 pts/12 00:00:00 bash \& unconfined 34379 pts/12 00:00:00 ps .Ve .PP محدودیت فرآیندهای خارج از فضای‌نام ممکن است قابل مشاهده نباشد که در این صورت محدودیت با یک \- نمایش داده می‌شود. اگر سیاست به صورت پشته‌ای باشد ممکن است تنها بخشی از محدودیت قابل مشاهده باشد. با این حال محدودیت‌ها معمولاً از فضای‌نام والد سیاست به طور کامل قابل مشاهده هستند. .PP به عنوان مثال، محدودیت فرزند را می‌توان در والد بررسی و مشاهده کرد: .Sp .Vb 3 \& $ ps \-Z 34372 \& LABEL PID TTY STAT TIME COMMAND \& :ex1:unconfined 34372 pts/12 S+ 0:00 bash .Ve .PP و در صورت پشته‌سازی با فضاهای نام: .Sp .Vb 6 \& $ aa\-exec \-p "unconfined//&:ex1:unconfined" \-\- bash \& $ ps \-Z \& LABEL PID TTY TIME CMD \& \- 30714 pts/12 00:00:00 bash \& unconfined 36298 pts/12 00:00:00 bash \& unconfined 36305 pts/12 00:00:00 ps .Ve .PP در حالی که از فضای‌نام والد محدودیت کامل قابل مشاهده است: .Sp .Vb 3 \& $ ps \-Z 36298 \& LABEL PID TTY STAT TIME COMMAND \& unconfined//&:ex1:unconfined 36298 pts/12 S+ 0:00 bash .Ve .SH "گزارش اشکال (BUGS)" .IX Header "گزارش اشکال (BUGS)" اگر اشکالی پیدا کردید، لطفاً آن را در نشانی زیر گزارش دهید: .SH "همچنین ببینید (SEE ALSO)" .IX Header "همچنین ببینید (SEE ALSO)" \&\fBapparmor\fR\|(7)، \fBapparmor.d\fR\|(5)، \fBaa_change_profile\fR\|(3)، \&\fBaa_change_onexec\fR\|(3) و .