man(8) malcontent-client man page man(8)

malcontent-client - ابزار دسترسی به کنترل‌های والدین

malcontent-client get-app-filter [-q] [-n] [USER]

malcontent-client check-app-filter [-q] [-n] [USER] ARG

malcontent-client set-app-filter [-q] [-n] [USER] ARG

malcontent-client oars-section [-q] [-n] [USER] SECTION

malcontent-client get-session-limits [-q] [-n] [USER]

malcontent-client set-session-limits [-q] [-n] [USER] LIMIT-TYPE

malcontent-client monitor [-q] [USER]

malcontent-client record-usage [-q] USAGE-ENTRIES

malcontent-client query-usage [-q] USER RECORD-TYPE IDENTIFIER

malcontent-client get-estimated-times [-q] RECORD-TYPE

malcontent-client request-extension [-q] RECORD-TYPE IDENTIFIER [DURATION]

malcontent-client get-web-filter [-q] [-n] [USER]

malcontent-client set-web-filter [-q] [-n] [USER] ARG

malcontent-client update-web-filters [-q] [-n] [USER]

malcontent-client dump-web-filters [-q] [-n] [USER]

malcontent-client ابزاری برای پرس‌وجو و به‌روزرسانی تنظیمات کنترل‌های والدین برای کاربران سیستم است. انجام هر کاری فراتر از بررسی کنترل‌های والدینِ کاربر فعلی، معمولاً نیازمند دسترسی مدیر سیستم (administrator) است.

این ابزار با accounts-service که داده‌های کنترل‌های والدین را ذخیره می‌کند، ارتباط برقرار می‌کند.

نخستین آرگومان آن، دستوری است که باید اجرا شود. دستورهای پشتیبانی‌شده در ادامه مستند شده‌اند.

رابط خط فرمان (API) و قالب خروجی ناپایدار بوده و احتمالاً در نسخه‌های آیندهٔ malcontent-client تغییر خواهند کرد.

دریافت فیلتر برنامه برای یک کاربر. برای مثال:

# malcontent-client get-app-filter timmy
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلتر برنامه برای او دریافت می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

بررسی اینکه آیا یک برنامه، نوع محتوا یا ارجاع flatpak مشخص بر اساس فیلتر برنامهٔ فعلی کاربر، مجاز به استفاده توسط او هست یا خیر. برای مثال:

# malcontent-client check-app-filter timmy $(which gnome-calculator)

# malcontent-client check-app-filter timmy x-scheme-handler/http

# malcontent-client check-app-filter timmy app/com.realm667.WolfenDoom_Blade_of_Agony/x86_64/stable

نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلتر برنامه برای او بررسی می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
مسیر یک برنامه، نوع محتوا یا ارجاع flatpak جهت بررسی در برابر فیلتر برنامه، برای مشخص شدن اینکه آیا برای کاربر مشخص‌شده مجاز است یا خیر.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

تنظیم فیلتر برنامه برای یک کاربر و جایگزینی تمام مقادیر قبلی موجود در آن. برای مثال:

# malcontent-client set-app-filter timmy \
--disallow-user-installation \
$(which gnome-calculator) \
x-scheme-handler/http \
app/com.realm667.WolfenDoom_Blade_of_Agony/x86_64/stable
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلتر برنامه برای او تنظیم می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
موردی که باید در فیلتر برنامهٔ کاربر فیلتر شود. این مورد می‌تواند یک مسیر مطلق یا یک ارجاع flatpak از یک برنامه جهت مسدودسازی باشد؛ یک نوع محتوا برای مسدود کردن تمام برنامه‌هایی که آن نوع را مدیریت می‌کنند؛ یا یک جفت section=value مربوط به OARS جهت مسدود کردن نصب برنامه‌هایی با رده‌بندی شدیدتر در آن بخش OARS. می‌توان چندین مورد را مشخص کرد، و آنها به‌طور کامل جایگزین فیلتر برنامهٔ فعلی کاربر خواهند شد. در صورت مشخص نشدن هیچ موردی (صفر مورد)، فیلتر برنامه پاک خواهد شد.
به کاربر اجازه نصب flatpakها در مخزن کاربری داده شود.
کاربر از نصب flatpakها در مخزن کاربری منع شود.
به کاربر اجازه نصب flatpakها در مخزن سیستمی داده شود.
کاربر از نصب flatpakها در مخزن سیستمی منع شود.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

دریافت مقدار تنظیم‌شده برای یک بخش مشخص از OARS از فیلتر برنامهٔ کاربر داده‌شده. برای مثال:

# malcontent-client oars-section timmy language-profanity
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلتر OARS برای او دریافت می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
بخش OARS که سطح محدودیت کاربر مورد نظر باید برای آن دریافت شود. برای مثال، language-profanity.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

دریافت محدودیت‌های نشست تنظیم‌شده برای یک کاربر. برای مثال:

# malcontent-client get-session-limits timmy
نام کاربری یا شناسهٔ کاربری (ID) کاربری که محدودیت‌های نشست برای او دریافت می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)
بررسی محدودیت‌های نشست (به‌ویژه زمان انقضای نشست) در برابر تاریخ/زمان مشخص‌شده که در قالب ISO 8601 ارائه می‌شود. (پیش‌فرض: تاریخ/زمان فعلی.)

تنظیم محدودیت‌های نشست برای یک کاربر و جایگزینی کامل مقادیر قبلی آن. برای مثال:

# malcontent-client set-session-limits timmy \
daily-schedule \
--start-time 16:00 --end-time 18:00
نام کاربری یا شناسهٔ کاربری (ID) کاربری که محدودیت‌های نشست برای او تنظیم می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
نوع محدودیت نشست برای استفاده در مورد این کاربر. مقادیر ممکن عبارتند از:
- بدون محدودیت نشست.
- برنامهٔ زمان‌بندی روزانه با زمان‌های شروع و پایان مشخص. این مقادیر باید به‌صورت دو آرگومان ارائه شوند که زمان شروع و پایان برنامه در طول شبانه‌روز را مشخص می‌کنند.
- محدودیت روزانه بر کل مدت‌زمان فعال استفاده از رایانه در طول روز. این مقدار باید به‌صورت یک محدودیت زمانی بر حسب ثانیه ارائه شود.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

پایش تغییرات مربوط به هر یک از تنظیمات کنترل‌های والدین برای یک کاربر مشخص. برای مثال:

# malcontent-client monitor timmy
نام کاربری یا شناسهٔ کاربری (ID) کاربری که کنترل‌های والدین او پایش می‌شوند. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)

ثبت زمان‌های استفاده از نشست یا برنامه برای کاربر فعلی. برای مثال:

# malcontent-client record-usage 2025-04-22T08:00:00Z 2025-04-22T16:00:00Z login-session

# malcontent-client record-usage 2025-04-22T08:00:00Z 2025-04-22T16:00:00Z app "org.gnome.gedit"

یک یا چند مدخل استفاده برای افزودن. هر مدخل مجموعه‌ای از چهار آرگومان است:
  • تاریخ و زمان شروع دورهٔ استفاده (در قالب ISO 8601)،
  • تاریخ و زمان پایان دورهٔ استفاده (همچنین در قالب ISO 8601)،
  • نوع رکورد (login-session یا app) و
  • شناسهٔ رکورد (این مورد برای رکوردهای login-session باید یک رشتهٔ خالی باشد، و برای رکوردهای app شناسهٔ برنامه است).
در صورتی که آخرین شناسهٔ رکورد در فهرست آرگومان‌ها خالی باشد، می‌توان آن را حذف کرد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)

پرس‌وجوی زمان‌های استفاده از نشست یا برنامه برای یک کاربر مشخص. برای مثال:

# malcontent-client query-usage bob login-session ""

# malcontent-client query-usage bob app "org.gnome.gedit"

نام کاربری یا شناسهٔ کاربری (ID) کاربری که اطلاعات استفاده برای او دریافت می‌شود.
نوع رکورد و شناسه‌ای که رکوردهای آن باید مورد پرس‌وجو قرار گیرند. برای مشاهدهٔ مقادیر معتبر، مستندات دستور record-usage را ببینید.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

پرس‌وجوی محدودیت‌های استفاده و نشست برای کاربر فعلی، جهت محاسبهٔ میزان زمان باقی‌مانده در نشست آنها یا زمان باقی‌مانده برای استفاده از برنامه‌ها. برای مثال:

# malcontent-client get-estimated-times login-session
نوع رکورد استفاده برای پرس‌وجو. این مقدار می‌تواند login-session یا app باشد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)

درخواست تمدید محدودیت زمان استفاده از رایانه (screen time) برای کاربر فعلی، برای نشست آنها یا برنامهٔ مشخص‌شده. برای مثال:

# malcontent-client request-extension login-session ""
نوع رکورد و شناسه‌ای که درخواست تمدید برای آن ثبت می‌شود. برای مشاهدهٔ مقادیر معتبر، مستندات دستور record-usage را ببینید.
مدت زمان درخواستی برای تمدید (بر حسب ثانیه)، یا صفر تا به والدین اجازه داده شود مدت زمان را انتخاب کنند (معمولاً این به معنای تمدید تا پایان امروز است). (پیش‌فرض: صفر.)
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)

دریافت فیلتر وب برای یک کاربر. برای مثال:

# malcontent-client get-web-filter timmy
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلتر وب برای او دریافت می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

تنظیم فیلتر وب برای یک کاربر و جایگزینی تمام مقادیر قبلی موجود در آن. برای مثال:

# malcontent-client set-web-filter timmy \
--force-safe-search \
--filter-type block-list \
adult=https://v.firebog.net/hosts/Prigent-Adult.txt \
advertising=https://v.firebog.net/hosts/Prigent-Ads.txt \
reddit.com \
~mastodon.social
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلتر وب برای او تنظیم می‌شود. در صورت مشخص نشدن، به‌طور پیش‌فرض از کاربر فعلی استفاده خواهد شد.
موردی که باید در فیلتر وب کاربر فیلتر شود. این مورد می‌تواند یک جفت id=filter-URI یا یک نام میزبان (hostname) جداگانه جهت مسدودسازی باشد. برای هر دو نوع مورد می‌توان از پیشوند ~ (تیلدا) استفاده کرد تا به جای مسدود شدن، مجاز دانسته شوند. شناسهٔ منبع فیلتر (filter URI) باید به یک فایل متنی با همان قالب /etc/hosts اشاره کند که وب‌سایت‌های مشمول فیلتر در آن فهرست شده‌اند. شناسهٔ (ID) مرتبط، یک رشتهٔ الفبایی-عددی دلخواه است که برای ردیابی فیلتر در طول زمان به کار می‌رود، حتی اگر URI اصلی آن تغییر کند. می‌توان چندین مورد را مشخص کرد، و آنها به‌طور کامل جایگزین فیلتر وب فعلی کاربر خواهند شد. در صورت مشخص نشدن هیچ موردی (صفر مورد)، فیلتر وب پاک خواهد شد.
اجبار به فعال‌سازی حالت «جستجوی ایمن» (safe search) برای موتورهای جستجوی شناخته‌شده و وب‌سایت‌های پرطرفدار.
نوع فیلتر وب مورد استفاده برای این کاربر. مقادیر ممکن عبارتند از:
- بدون فیلتر وب.
- وب‌سایت‌ها به‌طور پیش‌فرض مجاز هستند، مگر اینکه در یکی از فهرست‌های مسدودسازی (block lists) آمده باشند. وب‌سایت‌های موجود در فهرست‌های مجاز (allow lists) همواره مجاز هستند.
- وب‌سایت‌ها به‌طور پیش‌فرض مسدود هستند، مگر اینکه در یکی از فهرست‌های مجاز آمده باشند. فهرست‌های مسدودسازی نادیده گرفته می‌شوند.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

بارگیری و به‌روزرسانی فیلترهای وب کامپایل‌شده برای یک کاربر خاص یا برای تمام کاربران. این دستور، پیکربندی فعلی فیلتر وب کاربر را خوانده و پایگاه دادهٔ فیلتر کامپایل‌شده را با استفاده از آن پیکربندی به‌روزرسانی می‌کند. برای مثال:

# malcontent-client update-web-filters timmy
برای به‌روزرسانی پیکربندی فیلتر وب یک کاربر، از malcontent-client set-web-filter استفاده کنید.
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلترهای وب برای او به‌روزرسانی می‌شوند. در صورت مشخص نشدن، فیلترهای وب برای تمام کاربرانی که این فیلترها را تنظیم کرده‌اند به‌روزرسانی خواهد شد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

تخلیه و نمایش (Dump) فیلترهای وب کامپایل‌شده برای یک کاربر خاص یا برای تمام کاربران. این‌ها همان قواعد فیلتری هستند که در حال حاضر مورد استفاده قرار می‌گیرند. برای مثال:

# malcontent-client dump-web-filters timmy
نام کاربری یا شناسهٔ کاربری (ID) کاربری که فیلترهای وب برای او تخلیه می‌شوند. در صورت مشخص نشدن، فیلترهای وب برای تمام کاربرانی که این فیلترها را تنظیم کرده‌اند تخلیه خواهد شد.
با پیشرفت عملیات، تنها پیام‌های خطا نمایش داده شوند و هیچ پیام اطلاع‌رسانی ارائه نشود. (پیش‌فرض: نمایش پیام‌های اطلاع‌رسانی.)
اجازه احراز هویت تعاملی از طریق polkit داده نشود. اگر برای تکمیل عملیات به این مورد نیاز باشد، عملیات با شکست مواجه خواهد شد. (پیش‌فرض: اجازه احراز هویت تعاملی داده می‌شود.)

malcontent-client از متغیرهای محیطی استاندارد GLib برای اشکال‌زدایی پشتیبانی می‌کند. این متغیرها برای استفاده در محیط عملیاتی (production) در نظر گرفته نشده‌اند:

$G_MESSAGES_DEBUG
این متغیر می‌تواند شامل یک یا چند نام دامنهٔ اشکال‌زدایی برای نمایش خروجی اشکال‌زدایی باشد. مقدار all تمام خروجی‌های اشکال‌زدایی را فعال می‌کند. به‌طور پیش‌فرض، هیچ خروجی اشکال‌زدایی فعال نیست.

malcontent-client در صورت مواجهه با مشکل، ممکن است یکی از کدهای خطای زیر را بازگرداند.

0
هیچ مشکلی رخ نداد. این ابزار اجرا شد و فیلتر برنامه را با موفقیت بررسی کرد. در صورت اجرای دستور check-app-filter، مسیر، نوع محتوا یا ارجاع flatpak داده‌شده برای کاربر مورد نظر مجاز بوده است.
1
هنگام راه‌اندازی، یک گزینهٔ نامعتبر به malcontent-client داده شد.
2
کاربر فعلی مجوز لازم برای پرس‌وجوی فیلتر برنامه را برای کاربر مورد نظر نداشت.
3
در صورت اجرای دستور check-app-filter، مسیر، نوع محتوا یا ارجاع flatpak داده‌شده برای کاربر مورد نظر مجاز نبود.
4
قابلیت Malcontent در سطح سیستم غیرفعال است و بنابراین کنترل‌های والدین فعال نبوده و اعمال نمی‌شود.
5
عملیات ناموفق بود و اطلاعات خطای مشخص‌تری در دسترس نیست.
6
سرویس مشغول بود؛ کمی بعد دوباره تلاش کنید.

هرگونه اشکالی که پیدا می‌شود باید در وب‌سایت پروژه گزارش شود:
https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues

Endless Mobile, Inc. Philip Withnall

Copyright © 2018 Endless Mobile, Inc. Copyright © 2025 GNOME Foundation, Inc.

20 Mar 2025 1.2