LOGPROF.CONF(5) AppArmor LOGPROF.CONF(5)

logprof.conf - فایل پیکربندی برای ابزارهای پروفایل‌بندی AppArmor

برنامه aa-logprof(1) را می‌توان با محتویات logprof.conf به نحوی پیکربندی کرد که رفتارهای پیش‌فرض خاصی داشته باشد.

بخش [qualifiers] برنامه‌های مشخصی را فهرست می‌کند که باید هنگام پرسش درباره این که با چه حالتی اجرا شوند، زیرمجموعه‌ای از فهرست کامل ix/px/ux به آن‌ها اختصاص یابد.

از آنجا که ایجاد یک پروفایل جداگانه برای /bin/bash خطرناک است، می‌توان مشخص کرد که برای /bin/bash، فقط گزینه‌های (I)nherit، (U)nconstrained و (D)eny مجاز باشند و هنگام پرسش درباره افزودن آن به یک پروفایل، فقط همین گزینه‌ها در اعلان نمایش داده شوند.

به همین ترتیب، اگر برنامه‌ای در حال حاضر /bin/mount را در حالت ix یا px اجرا کند، کار نخواهد کرد؛ بنابراین می‌توان تنها گزینه‌های (U)nconstrained و (D)eny را به عنوان گزینه‌های ممکن ارائه داد.

و برنامه‌های خاصی مانند grep، awk، sed، cp و mkdir باید همواره به جای داشتن پروفایل جداگانه یا اجرا به صورت مهارنشده (unconfined)، پروفایل والد را به ارث ببرند، بنابراین برای آن‌ها می‌توان مشخص کرد که فقط (I)nherit و (D)eny گزینه‌های مجاز باشند.

هر برنامه‌ای که در بخش qualifiers فهرست نشده باشد، مجموعه کامل گزینه‌های (I)nherit / (P)rofile / (U)nconstrained / (D)eny را دریافت می‌کند.

اگر کاربر قصد انجام کار پیچیده‌تری دارد و خواهان رفتاری متفاوت است، می‌تواند خط مربوطه را در فایل پیکربندی تغییر داده یا حذف کند.

بخش [defaulthat] برنامه‌های آگاه از changehat و اینکه اگر کاربر مشخص کند دسترسی مجاز است اما نباید کلاه (hat) اختصاصی داشته باشد، aa-logprof(1) ورودی‌های آن برنامه را به چه کلاهی تقلیل خواهد داد، فهرست می‌کند.

بخش [globs] امکان اصلاح موتور قوانین logprof را در رابطه با پیشنهادهای الگوسازی (globbing) که به کاربر پیشنهاد می‌شود فراهم می‌کند.

قالب هر خط به این صورت است: -- "<perl glob> = <apparmor glob>".

هنگامی که aa-logprof(1) درباره یک مسیر مشخص سوال می‌کند، اگر الگوی perl با مسیر مطابقت داشته باشد، آن بخش از مسیر را که مطابقت داشته با الگوی مربوطه در apparmor جایگزین کرده و آن را به فهرست پیشنهادهای الگوسازی اضافه می‌کند.

خطوطی که با # شروع می‌شوند، توضیح (کامنت) هستند و نادیده گرفته می‌شوند.

[qualifiers]
  # things will very likely be painfully broken if bash has it's own profile
  /bin/bash  = iu
  # mount doesn't work if it's confined
  /bin/mount = u
  # these helper utilities should inherit the parent profile and
  # shouldn't have their own profiles
  /bin/awk   = i
  /bin/grep  = i
  /bin/sed   = i
[defaulthat]
  /usr/sbin/sshd           = EXEC
  /usr/sbin/httpd2         = DEFAULT_URI
  /usr/sbin/httpd2-prefork = DEFAULT_URI
[globs]
  # /foo/bar/lib/libbaz.so -> /foo/bar/lib/lib*
  /lib/lib[^\/]+so[^\/]*$  = /lib/lib*so*
  # strip kernel version numbers from kernel module accesses
  ^/lib/modules/[^\/]+\/   = /lib/modules/*/
  # strip pid numbers from /proc accesses
  ^/proc/\d+/              = /proc/*/

اگر اشکالی پیدا کردید، لطفاً آن را در https://gitlab.com/apparmor/apparmor/-/issues گزارش دهید.

apparmor(7)، apparmor.d(5)، aa-enforce(1)، aa-complain(1)، aa-disable(1)، aa_change_hat(2)، aa-logprof(1)، aa-genprof(1)، و https://wiki.apparmor.net.

2026-03-10 AppArmor 4.1.7