'\" t .\" Title: usbguard-rules.conf .\" Author: [بخش "نویسنده" را ببینید] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 09/05/2026 .\" Manual: \ \& .\" Source: \ \& .\" Language: Persian .\" .TH "USBGUARD\-RULES\&.CO" "5" "09/05/2026" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" usbguard-rules.conf \- فایل مجموعه قوانین USBGuard .SH "توضیحات (DESCRIPTION)" .sp فایل \fBusbguard\-rules\&.conf\fR توسط دیمن USBGuard پس از پردازش فایل پیکربندی اصلی، usbguard\-daemon\&.conf(5)، بارگذاری می‌شود\&. این دیمن انتظار دارد که فایل حاوی قوانینی باشد که به زبانی نوشته شده‌اند که در بخش «زبان قوانین» در ادامه شرح داده شده است\&. .SH "زبان قوانین (RULE LANGUAGE)" .sp دیمن USBGuard بر اساس یک خط‌مشی تعریف‌شده توسط مجموعه‌ای از قوانین، تصمیم می‌گیرد که کدام دستگاه USB را مجاز کند\&. هنگامی که یک دستگاه USB به سیستم متصل می‌شود، دیمن قوانین موجود را به صورت متوالی بررسی می‌کند\&. اگر قانون منطبقی پیدا شود، بر اساس هدف (target) قانون، دستگاه را مجاز (\fBallow\fR)، غیرمجاز و مسدود (\fBblock\fR) یا حذف (\fBreject\fR) می‌کند\&. اگر هیچ قانون منطبقی یافت نشود، تصمیم بر اساس یک هدف پیش‌فرض ضمنی اتخاذ می‌شود\&. این پیش‌فرض ضمنی مسدود کردن دستگاه است تا زمانی که تصمیمی توسط کاربر گرفته شود\&. گرامر زبان قوانین که با ساختاری شبیه به BNF بیان شده، به شرح زیر است: .sp .if n \{\ .RS 4 .\} .nf rule ::= target attributes\&. target ::= "allow" | "block" | "reject"\&. attributes ::= attributes | attribute\&. attributes ::= \&. .fi .if n \{\ .RE .\} .sp مشخصه‌های قانون مشخص می‌کنند که کدام دستگاه‌ها باید مطابقت داده شوند یا چه شرایطی باید برقرار باشد تا قانون اعمال شود\&. برای فهرست مشخصه‌های موجود، بخش «مشخصات دستگاه» و برای فهرست شرایط پشتیبانی‌شده، بخش «شرایط» را ببینید\&. .SS "اهداف (Targets)" .sp هدف یک قانون مشخص می‌کند که آیا استفاده از دستگاه مجاز خواهد بود یا خیر\&. سه نوع هدف شناخته شده است: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBallow\fR \- مجاز کردن دستگاه\&. دستگاه و رابط‌های آن اجازه برقراری ارتباط با سیستم را خواهند داشت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBblock\fR \- سلب مجوز دستگاه\&. دستگاه تا زمانی که مجاز نشود در حالت مسدود باقی خواهد ماند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBreject\fR \- سلب مجوز و حذف دستگاه از سیستم\&. برای اینکه دستگاه دوباره برای سیستم قابل مشاهده شود، باید مجدداً به درگاه متصل گردد\&. .RE .SS "مشخصات دستگاه (Device Specification)" .sp به جز هدف، تمام فیلدهای دیگر یک قانون اختیاری هستند\&. قانونی که در آن تنها هدف مشخص شده باشد، با هر دستگاهی مطابقت خواهد داشت\&. این قابلیت به مدیر خط‌مشی اجازه می‌دهد تا یک هدف پیش‌فرض صریح بنویسد\&. اگر هیچ قانونی از خط‌مشی بر دستگاه قابل اعمال نباشد، هدف ضمنی پیکربندی‌شده در usbguard\-daemon\&.conf(5) استفاده خواهد شد\&. با این حال، اگر فردی بخواهد کاربرد یک قانون را به مجموعه‌ای از دستگاه‌ها یا فقط یک دستگاه محدود کند، می‌تواند این کار را با استفاده از مشخصه‌های دستگاه و شرایط قانون انجام دهد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمشخصه‌های دستگاه (Device Attributes)\fR .RS 4 .sp مشخصه‌های دستگاه مقادیر خاصی هستند که پس از اتصال دستگاه USB به سیستم، از آن خوانده می‌شوند\&. این که کدام مشخصه‌ها در دسترس هستند در ادامه تعریف شده است\&. برخی از مشخصه‌ها اشتقاقی هستند و برخی بر اساس مقادیری هستند که مستقیماً از دستگاه خوانده می‌شوند\&. همه مشخصه‌ها از دو شکل پشتیبانی می‌کنند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBتک‌مقدار (single\-valued)\fR با ساختار: .sp .if n \{\ .RS 4 .\} .nf name value .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBچندمقدار (multi\-valued)\fR با ساختار: .sp .if n \{\ .RS 4 .\} .nf name [operator] { value1 value2 \&.\&.\&. } .fi .if n \{\ .RE .\} .RE .sp که در آن \fIoperator\fR (عملگر) اختیاری یکی از موارد زیر است: .PP \fBall\-of\fR .RS 4 مجموعه مشخصه‌های دستگاه باید شامل تمام مقادیر مشخص‌شده باشد تا قانون مطابقت یابد\&. .RE .PP \fBone\-of\fR .RS 4 مجموعه مشخصه‌های دستگاه باید شامل حداقل یکی از مقادیر مشخص‌شده باشد تا قانون مطابقت یابد\&. .RE .PP \fBnone\-of\fR .RS 4 مجموعه مشخصه‌های دستگاه نباید شامل هیچ‌یک از مقادیر مشخص‌شده باشد تا قانون مطابقت یابد\&. .RE .PP \fBequals\fR .RS 4 مجموعه مشخصه‌های دستگاه باید دقیقاً شامل همان مجموعه از مقادیر باشد تا قانون مطابقت یابد\&. .RE .PP \fBequals\-ordered\fR .RS 4 مجموعه مشخصه‌های دستگاه باید دقیقاً شامل همان مجموعه از مقادیر و با همان ترتیب باشد تا قانون مطابقت یابد\&. .RE .PP \fBmatch\-all\fR .RS 4 مجموعه مشخصه‌های دستگاه باید زیرمجموعه‌ای از مقادیر مشخص‌شده باشد تا قانون مطابقت یابد\&. .RE .sp اگر عملگر مشخص نشود، روی \fBequals\fR تنظیم می‌شود\&. .sp فهرست مشخصه‌ها: .PP \fBid\fR usb\-device\-id .RS 4 مطابقت با یک شناسه دستگاه USB\&. .RE .PP \fBid\fR [operator] { usb\-device\-id \&... } .RS 4 مطابقت با مجموعه‌ای از شناسه‌های دستگاه USB\&. .RE .PP \fBhash\fR "value" .RS 4 مطابقت با یک هش محاسبه‌شده از مقادیر مشخصه‌های دستگاه و داده‌های توصیف‌گر USB\&. این هش برای هر دستگاه توسط USBGuard محاسبه می‌شود\&. .RE .PP \fBhash\fR [operator] { "value" \&... } .RS 4 مطابقت با مجموعه‌ای از هش‌های دستگاه\&. .RE .PP \fBparent\-hash\fR "value" .RS 4 مطابقت با هش دستگاه والد\&. .RE .PP \fBparent\-hash\fR [operator] { "value" \&... } .RS 4 مطابقت با مجموعه‌ای از هش‌های دستگاه والد\&. .RE .PP \fBname\fR "device\-name" .RS 4 مطابقت با مشخصه نام دستگاه USB\&. .RE .PP \fBname\fR [operator] { "device\-name" \&... } .RS 4 مطابقت با مجموعه‌ای از نام‌های دستگاه USB\&. .RE .PP \fBserial\fR "serial\-number" .RS 4 مطابقت با مشخصه دستگاه iSerial در USB\&. .RE .PP \fBserial\fR [operator] { "serial\-number" \&... } .RS 4 مطابقت با مجموعه‌ای از مشخصه‌های دستگاه iSerial در USB\&. .RE .PP \fBvia\-port\fR "port\-id" .RS 4 مطابقت با درگاه USB که دستگاه از طریق آن متصل شده است\&. توجه داشته باشید که برخی سیستم‌ها شماره‌گذاری درگاه ناپایداری دارند\&. درگاه ممکن است پس از راه‌اندازی مجدد سیستم یا هنگام بارگذاری مجدد برخی ماژول‌های هسته تغییر کند\&. اگر می‌خواهید مطمئن شوید که یک دستگاه از طریق یک دستگاه والد خاص متصل شده است، از مشخصه \fBparent\-hash\fR استفاده کنید\&. .RE .PP \fBvia\-port\fR [operator] { "port\-id" \&... } .RS 4 مطابقت با مجموعه‌ای از درگاه‌های USB\&. .RE .PP \fBwith\-interface\fR interface\-type .RS 4 مطابقت با نوع رابطی که دستگاه USB فراهم می‌کند\&. .RE .PP \fBwith\-interface\fR [operator] { interface\-type \&... } .RS 4 مطابقت دادن مجموعه‌ای از انواع رابط‌ها با مجموعه رابط‌هایی که دستگاه USB ارائه می‌دهد\&. .RE .PP \fBwith\-connect\-type\fR "connect\-type" .RS 4 مطابقت با مشخصه دستگاه USB به صورت port/connect_type\&. .RE .PP \fBwith\-connect\-type\fR [operator] { "connect\-type" \&... } .RS 4 مطابقت با مجموعه‌ای از مشخصه‌های دستگاه USB به صورت port/connect_type\&. .RE .PP \fBlabel\fR "label" .RS 4 یک رشته دلخواه را به یک قانون مرتبط می‌کند\&. برچسب (Label) برای ذخیره برخی اطلاعات زمینه‌ای درباره قانون یا برای فیلتر کردن قوانین بر اساس برچسب مفید است\&. این مشخصه هنگام بررسی اعمال شدن یک قانون روی دستگاه استفاده نمی‌شود\&. .RE .sp مقدار \fIusb\-device\-id\fR یک جفت جداشده با دونقطه به شکل \fIvendor_id:product_id\fR است\&. تمام دستگاه‌های USB این شناسه را توسط سازنده دریافت کرده‌اند و این مقدار باید نوع محصول USB را به طور منحصربه‌فرد مشخص کند\&. هر دو مقدار \fIvendor_id\fR و \fIproduct_id\fR اعدادی ۱۶ بیتی هستند که در مبنای شانزده‌شانزدهی (هگزادسیمال) نشان داده می‌شوند\&. امکان استفاده از نویسه ستاره برای مطابقت با هر شناسه دستگاه *:* یا هر شناسه محصول از یک سازنده خاص، به عنوان مثال 1234:* وجود دارد\&. .sp مقدار \fIport\-id\fR یک شناسه درگاه USB وابسته به پلتفرم است\&. در لینوکس در مورد یک کنترل‌کننده USB (دقیق‌تر یک «root hub») به شکل "usbN" یا در مورد یک دستگاه USB به شکل "bus\-port[\&.port[\&.port \&...]]" (مثلاً 1\-2، 1\-2\&.1 و \&...) است\&. .sp مقدار \fIinterface\-type\fR نمایانگر یک رابط USB است و باید به صورت سه عدد ۸ بیتی در مبنای شانزده‌شانزدهی جداشده با نویسه دونقطه قالب‌بندی شود، یعنی \fIcc:ss:pp\fR\&. این اعداد به ترتیب نشان‌دهنده کلاس رابط (\fIcc\fR)، زیرکلاس (\fIss\fR) و پروتکل (\fIpp\fR) هستند که توسط USB\-IF تعیین شده‌اند\&. برای جزئیات بیشتر به فهرست کلاس‌ها، زیرکلاس‌ها و پروتکل‌های تعیین‌شده مراجعه کنید\&. به جای شماره زیرکلاس و پروتکل، می‌توانید یک نویسه ستاره (*) بنویسید تا با تمام زیرکلاس‌ها یا پروتکل‌ها مطابقت یابد\&. تطبیق یک کلاس خاص با یک پروتکل خاص مجاز نیست؛ یعنی اگر از ستاره برای شماره زیرکلاس استفاده کنید، باید برای پروتکل نیز از ستاره استفاده نمایید\&. .RE .SS "شرایط (Conditions)" .sp اینکه قانونی که با یک دستگاه مطابقت دارد اعمال شود یا خیر، می‌تواند با استفاده از شرایط قانون بیشتر محدود گردد\&. اگر عبارت شرط در زمان ارزیابی قانون برقرار باشد، هدف قانون برای دستگاه اعمال می‌شود\&. یک عبارت شرط زمانی برقرار است که مقدار آن درست (true) ارزیابی شود\&. در غیر این صورت، ارزیابی قانون با قانون بعدی ادامه می‌یابد\&. شرایط یک قانون دارای ساختار نحوی زیر است: .sp .if n \{\ .RS 4 .\} .nf if [!]condition if [operator] { [!]conditionA [!]conditionB \&.\&.\&. } .fi .if n \{\ .RE .\} .sp به صورت اختیاری، می‌توان از علامت تعجب (!) برای نقیض کردن نتیجه یک شرط استفاده کرد\&. .sp تفسیر عملگر مجموعه: .PP \fBall\-of\fR .RS 4 اگر تمام شرایط مشخص‌شده به عنوان درست (true) ارزیابی شوند، به درست ارزیابی می‌شود\&. .RE .PP \fBone\-of\fR .RS 4 اگر یکی از شرایط مشخص‌شده به عنوان درست (true) ارزیابی شود، به درست ارزیابی می‌شود\&. .RE .PP \fBnone\-of\fR .RS 4 اگر هیچ‌یک از شرایط مشخص‌شده به عنوان درست (true) ارزیابی نشوند، به درست ارزیابی می‌شود\&. .RE .PP \fBequals\fR .RS 4 مشابه \fBall\-of\fR\&. .RE .PP \fBequals\-ordered\fR .RS 4 مشابه \fBall\-of\fR\&. .RE .sp فهرست شرایط: .PP \fBlocaltime(time_range)\fR .RS 4 اگر زمان محلی در بازه زمانی مشخص‌شده باشد، به درست (true) ارزیابی می‌شود\&. \fItime_range\fR می‌تواند به صورت HH:MM[:SS] یا HH:MM[:SS]\-HH:MM[:SS] نوشته شود\&. .RE .PP \fBallowed\-matches(query)\fR .RS 4 اگر یک دستگاه مجاز با پرس‌وجوی مشخص‌شده (\fIquery\fR) مطابقت داشته باشد، به درست (true) ارزیابی می‌شود\&. پرس‌وجو از ساختار نحوی قوانین استفاده می‌کند\&. \fBشرایط درون پرس‌وجو ارزیابی نمی‌شوند\fR\&. .RE .PP \fBrule\-applied\fR .RS 4 اگر قانونی که در حال حاضر ارزیابی می‌شود قبلاً با دستگاهی مطابقت داشته باشد، به درست (true) ارزیابی می‌شود\&. .RE .PP \fBrule\-applied(past_duration)\fR .RS 4 اگر قانونی که در حال حاضر ارزیابی می‌شود در مدت زمان گذشته که با پارامتر مشخص شده با دستگاهی مطابقت یافته باشد، به درست (true) ارزیابی می‌شود\&. \fIpast_duration\fR می‌تواند به صورت HH:MM:SS، HH:MM یا SS نوشته شود\&. .RE .PP \fBrule\-evaluated\fR .RS 4 اگر قانونی که در حال حاضر ارزیابی می‌شود قبلاً ارزیابی شده باشد، به درست (true) ارزیابی می‌شود\&. .RE .PP \fBrule\-evaluated(past_duration)\fR .RS 4 اگر قانونی که در حال حاضر ارزیابی می‌شود در مدت زمان گذشته که با پارامتر مشخص شده ارزیابی شده باشد، به درست (true) ارزیابی می‌شود\&. \fIpast_duration\fR می‌تواند به صورت HH:MM:SS، HH:MM یا SS نوشته شود\&. .RE .PP \fBrandom\fR .RS 4 با احتمال p(true)=0\&.5 به درست/نادرست ارزیابی می‌شود\&. .RE .PP \fBrandom(p_true)\fR .RS 4 با احتمال مشخص‌شده p(true)=p_true به درست ارزیابی می‌شود\&. .RE .PP \fBtrue\fR .RS 4 همواره به درست (true) ارزیابی می‌شود\&. .RE .PP \fBfalse\fR .RS 4 همواره به نادرست (false) ارزیابی می‌شود\&. .RE .SS "قانون جزئی (Partial rule)" .sp قانون جزئی قانونی بدون هدف (target) است\&. قوانین جزئی ممکن است توسط برخی دستورات ابزار خط فرمان \fBusbguard\fR استفاده شوند\&. .SS "توضیحات و کامنت‌ها (Comments)" .sp به منظور درک آسان مفهوم هر قانون، می‌توان از کامنت‌ها استفاده کرد\&. هر چیزی پس از نویسه "#" توسط تجزیه‌کننده قوانین نادیده گرفته می‌شود\&. .SH "خط‌مشی اولیه (INITIAL POLICY)" .sp با استفاده از ابزار خط فرمان \fBusbguard\fR و زیردستور \fBgenerate\-policy\fR آن، می‌توانید به جای نوشتن خط‌مشی از ابتدا، یک خط‌مشی اولیه برای سیستم خود ایجاد کنید\&. این ابزار برای تمام دستگاه‌های متصل به سیستم در زمان اجرا، یک خط‌مشی \fBallow\fR تولید می‌کند\&. این دستور گزینه‌های متعددی برای تنظیم خط‌مشی حاصل دارد؛ برای جزئیات بیشتر به usbguard(1) مراجعه کنید\&. .sp خط‌مشی روی خروجی استاندارد چاپ خواهد شد\&. بهتر است پیش از استفاده از قوانین تولیدشده در سیستم، آن‌ها را بازبینی کنید\&. گردش کار معمول برای تولید یک خط‌مشی اولیه می‌تواند به این صورت باشد: .sp .if n \{\ .RS 4 .\} .nf $ sudo usbguard generate\-policy > rules\&.conf $ vi rules\&.conf (review/modify the rule set) $ sudo install \-m 0600 \-o root \-g root rules\&.conf /etc/usbguard/rules\&.conf $ sudo systemctl restart usbguard .fi .if n \{\ .RE .\} .SH "نمونه خط‌مشی‌ها (EXAMPLE POLICIES)" .sp مثال‌های زیر نشان می‌دهند که برای پیاده‌سازی خط‌مشی داده‌شده چه مواردی را در فایل \fBrules\&.conf\fR قرار دهید\&. .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} \fBمجاز کردن دستگاه‌های ذخیره‌سازی بزرگ USB (فلش‌درایوهای USB) و مسدود کردن بقیه موارد\fR .sp این خط‌مشی هر دستگاهی را که صرفاً یک دستگاه ذخیره‌سازی داده نباشد، مسدود می‌کند\&. دستگاه‌هایی که رابط صفحه‌کلید مخفی در یک فلش‌درایو USB دارند مسدود خواهند شد\&. فقط دستگاه‌هایی با یک رابط ذخیره‌سازی بزرگ مجاز به تعامل با سیستم‌عامل خواهند بود\&. این خط‌مشی از یک قانون منفرد تشکیل شده است: .sp .if n \{\ .RS 4 .\} .nf allow with\-interface equals { 08:*:* } .fi .if n \{\ .RE .\} .sp مسدودسازی در این حالت ضمنی است زیرا ما قانون block ننوشته‌ایم\&. مسدودسازی ضمنی برای کاربران میزکار مفید است\&. یک اپلت میزکار که به رویدادهای USBGuard گوش می‌دهد، در صورت اعمال یک هدف ضمنی، می‌تواند از کاربر برای تصمیم‌گیری سوال کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} \fBاجازه به یک دستگاه Yubikey خاص برای اتصال از طریق یک درگاه خاص (و رد کردن هر چیز دیگر روی آن درگاه)\fR .sp .if n \{\ .RS 4 .\} .nf allow 1050:0011 name "Yubico Yubikey II" serial "0001234567" via\-port "1\-2" hash "044b5e168d40ee0245478416caf3d998" reject via\-port "1\-2" .fi .if n \{\ .RE .\} .sp ما می‌توانستیم صرفاً از هش برای مطابقت دستگاه استفاده کنیم\&. با این حال، استفاده از مشخصه‌های name و serial راهنمای مفیدی برای بازبینی‌های بعدی خط‌مشی فراهم می‌کند\&. از سوی دیگر، هش خاص‌ترین مقداری است که می‌توانیم برای شناسایی یک دستگاه استفاده کنیم\&. اگر می‌خواهید قانونی فقط با یک دستگاه مطابقت داشته باشد، این مشخصه بهترین گزینه برای استفاده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} \fBرد کردن دستگاه‌هایی با ترکیب مشکوک از رابط‌ها\fR .sp یک فلش‌درایو USB که رابط صفحه‌کلید یا شبکه را پیاده‌سازی می‌کند بسیار مشکوک است\&. مجموعه قوانین زیر خط‌مشی‌ای را تشکیل می‌دهد که فلش‌درایوهای USB را مجاز کرده و صراحتاً دستگاه‌هایی با رابط اضافی و مشکوک (همان‌طور که قبلاً تعریف شد) را رد می‌کند\&. .sp .if n \{\ .RS 4 .\} .nf allow with\-interface equals { 08:*:* } reject with\-interface all\-of { 08:*:* 03:00:* } reject with\-interface all\-of { 08:*:* 03:01:* } reject with\-interface all\-of { 08:*:* e0:*:* } reject with\-interface all\-of { 08:*:* 02:*:* } .fi .if n \{\ .RE .\} .sp این خط‌مشی تمام دستگاه‌های فلش‌درایو USB دارای رابطی از کلاس‌های HID/Keyboard، Communications و Wireless را رد می‌کند\&. توجه داشته باشید که حالت مجاز پیش‌فرض رویکرد اشتباهی است و نباید مجموعه‌ای از دستگاه‌ها را رد کرده و بقیه را مجاز بگذارید\&. خط‌مشی فوق فرض می‌کند که مسدودسازی حالت پیش‌فرض است\&. رد کردن مجموعه‌ای از دستگاه‌ها که «بد» در نظر گرفته می‌شوند رویکرد خوبی برای محدود کردن مواجهه سیستم‌عامل با چنین دستگاه‌هایی تا حد امکان است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} \fBمجاز کردن دستگاه USB صرفاً صفحه‌کلید تنها در صورتی که هنوز دستگاه USB دیگری با رابط صفحه‌کلید مجاز نشده باشد\fR .sp .if n \{\ .RS 4 .\} .nf allow with\-interface one\-of { 03:00:01 03:01:01 } if !allowed\-matches(with\-interface one\-of { 03:00:01 03:01:01 }) .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} \fB«رولت روسی» بازی کردن با دستگاه‌های USB\fR .sp .if n \{\ .RS 4 .\} .nf allow if random(0\&.1666) reject .fi .if n \{\ .RE .\} .RE .SH "همچنین ببینید (SEE ALSO)" .sp usbguard\-daemon(8), usbguard\-daemon\&.conf(5) .SH "اشکالات (BUGS)" .sp اگر اشکالی در این نرم‌افزار پیدا کردید یا مایلید ویژگی جدیدی درخواست دهید، لطفاً یک تیکت در نشانی https://github\&.com/USBGuard/usbguard/issues/new ثبت کنید\&. .SH "نویسنده (AUTHOR)" .sp ‏USBGuard در اصل توسط Daniel Kopeček نوشته شده است\&. افراد بسیاری در توسعه آن مشارکت داشته‌اند\&. .SH "منابع (RESOURCES)" .sp وبگاه اصلی: https://usbguard\&.github\&.io .SH "کپی‌رایت و تکثیر (COPYING)" .sp مجوز GPLv2+: گنو GPL نسخه ۲ یا بالاتر http://gnu\&.org/licenses/gpl\&.html\&. این نرم‌افزار آزاد است: شما می‌توانید آزادانه آن را تغییر داده و بازتوزیع کنید\&. در حدود مجاز قانون، هیچ ضمانتی وجود ندارد\&.