DOAS.CONF(5) File Formats Manual DOAS.CONF(5)

doas.conf — فایل پیکربندی doas

ابزار doas(1) دستورها را با هویت سایر کاربران بر اساس قواعد تعریف‌شده در فایل پیکربندی doas.conf اجرا می‌کند.

قواعد دارای قالب زیر هستند:

permit|deny [options] identity [as target] [cmd command [args ...]]

قواعد از بخش‌های زیر تشکیل شده‌اند:

|deny
عملیاتی که در صورت تطابق این قاعده باید انجام شود.
options
گزینه‌ها عبارتند از:
کاربر ملزم به وارد کردن گذرواژه نیست.
اجرای موفقیت‌آمیز دستور در syslogd(8) ثبت نشود.
پس از آنکه کاربر با موفقیت احراز هویت شد، تا مدتی دوباره از او گذرواژه خواسته نشود.
متغیرهای محیطی، غیر از موارد فهرست‌شده در doas(1) ، هنگام ایجاد محیط برای فرآیند جدید حفظ شوند.
[variable ...] [variable=value ...] }
متغیرهای مشخص‌شده را که با فاصله از هم جدا شده‌اند، حفظ یا تنظیم کند. همچنین می‌توان متغیرها را با پیشوند ‘-’ حذف کرد یا با استفاده از ساختار دوم مقداردهی نمود. اگر نویسه نخست value برابر با ‘$’ باشد، مقداری که تنظیم می‌شود از متغیر محیطیِ موجود با همین نام گرفته خواهد شد. این گزینه پس از ایجاد محیط پیش‌فرض پردازش می‌شود.
identity
نام کاربری مورد نظر برای تطابق. گروه‌ها را می‌توان با قرار دادن یک دونقطه (‘:’) در ابتدای نام مشخص کرد. شناسه‌های عددی نیز پذیرفته می‌شوند.
target
کاربر مقصدی که کاربر اجراکننده مجاز است دستور را با هویت او اجرا کند. حالت پیش‌فرض تمام کاربران است.
command
دستوری که کاربر مجاز یا غیرمجاز به اجرای آن است. حالت پیش‌فرض تمام دستورها است. توجه داشته باشید که بهتر است مسیرهای مطلق مشخص شوند. اگر یک مسیر نسبی مشخص شود، تنها یک متغیر PATH محدود جستجو خواهد شد.
[argument ...]
آرگومان‌های دستور. آرگومان‌های ارائه‌شده برای دستور توسط کاربر باید با موارد مشخص‌شده مطابقت داشته باشند. کلیدواژه args به‌تنهایی به این معناست که دستور باید بدون هیچ آرگومانی اجرا شود.

آخرین قاعده منطبق، اقدام انجام‌شده را تعیین می‌کند. اگر هیچ قاعده‌ای مطابقت نداشته باشد، اقدام رد (denied) می‌شود.

توضیحات (کامنت‌ها) را می‌توان با استفاده از علامت هش (‘#’) در هر کجای فایل قرار داد، و تا انتهای خط جاری امتداد می‌یابند.

قواعد نقل‌قول زیر اعمال می‌شوند:

  • متن میان یک جفت علامت نقل‌قول دوتایی (‘"’) دقیقاً همان‌گونه که هست در نظر گرفته می‌شود.
  • نویسه اسلش وارونه (بک‌اسلش) (‘\’) نویسه بعدی، از جمله نویسه‌های خط جدید را در خارج از توضیحات اسکیپ می‌کند؛ در نتیجه، توضیحات نمی‌توانند در چندین خط امتداد یابند.
  • اگر در یک کلمه از نقل‌قول یا بک‌اسلش استفاده شود، آن کلمه به عنوان کلیدواژه در نظر گرفته نمی‌شود.

/etc/doas.conf
فایل پیکربندی doas(1).
/etc/examples/doas.conf
نمونه فایل پیکربندی.

مثال زیر به کاربر aja اجازه می‌دهد بسته‌ها را از یک مخزن آینه‌ای ترجیحی نصب کند؛ به گروه wheel اجازه می‌دهد دستورها را با هویت هر کاربری اجرا کند و در عین حال متغیرهای محیطی PS1 و SSH_AUTH_SOCK را حفظ کرده و متغیر ENV را حذف کند؛ به tedu اجازه می‌دهد procmap را بدون گذرواژه با دسترسی ریشه (root) اجرا کند؛ و همچنین به root اجازه می‌دهد دستورهای نامحدود را با هویت خودش اجرا کند در حالی که متغیر اصلی PATH را حفظ می‌نماید.

permit persist setenv { PKG_CACHE PKG_PATH } aja cmd pkg_add
permit setenv { -ENV PS1=$DOAS_PS1 SSH_AUTH_SOCK } :wheel
permit nopass tedu as root cmd /usr/sbin/procmap
permit nopass keepenv setenv { PATH } root as root

doas(1), syslogd(8)

فایل پیکربندی doas.conf نخستین بار در OpenBSD 5.8 ظاهر شد.

Ted Unangst <tedu@openbsd.org>

October 9, 2020 Linux 6.12.107+deb13-amd64