'\" t .TH "USERDBCTL" "1" "" "systemd 261.2" "userdbctl" .\" ----------------------------------------------------------------- .\" * 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)" userdbctl \- بازرسی کاربران، گروه‌ها و عضویت‌های گروهی .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBuserdbctl\fR\ 'u \fBuserdbctl\fR [OPTIONS...] {COMMAND} [NAME...] .SH "توضیحات (DESCRIPTION)" .PP \fBuserdbctl\fR می‌تواند برای بازرسی کاربران و گروه‌ها (و همچنین عضویت‌های گروهی) سیستم استفاده شود\&. این ابزار کلاینت اطلاعات کاربر/گروه ارائه‌شده توسط سرویس‌های مختلف سیستم را استعلام می‌کند؛ هم مواردی که با رکوردهای کاربر/گروه JSON کار می‌کنند (همان‌طور که توسط تعاریف \m[blue]\fBJSON User Records\fR\m[]\&\s-2\u[1]\d\s+2 و \m[blue]\fBJSON Group Records\fR\m[]\&\s-2\u[2]\d\s+2 تعریف شده‌اند) و هم رکوردهای کاربر و گروه کلاسیک UNIX NSS/glibc\&. این ابزار در وهله اول یک کلاینت برای \m[blue]\fBUser/Group Record Lookup API via Varlink\fR\m[]\&\s-2\u[3]\d\s+2 است، و همچنین ممکن است رکوردهای کاربر و گروهِ تکمیلی (drop\-in) با قالب JSON را از مسیرهای /etc/userdb/, /run/userdb/, /run/host/userdb/, /usr/lib/userdb/ دریافت کند (برای جزئیات درباره رکوردهای کاربر drop\-in به \fBnss-systemd\fR(8) مراجعه کنید)\&. .SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-\-output=\fR\fB\fIMODE\fR\fR .RS 4 حالت خروجی را انتخاب می‌کند\&. یکی از مقادیر "classic"، "friendly"، "table" یا "json" را می‌پذیرد\&. اگر "classic" باشد، خروجی بسیار شبیه به قالب /etc/passwd یا /etc/group تولید می‌شود\&. اگر "friendly" باشد، خروجی جامع‌تر، کاربرپسند و خوانا برای انسان تولید می‌گردد\&. اگر "table" باشد، خروجی به صورت حداقلی و جدولی تولید می‌شود\&. اگر "json" باشد، خروجی با قالب JSON تولید می‌گردد\&. در صورتی که یک کاربر/گروه در خط فرمان مشخص شده باشد، پیش‌فرض "friendly" است، و در غیر این صورت "table"\&. .sp توجه داشته باشید که اکثر قالب‌های خروجی تمام اطلاعات موجود را نشان نمی‌دهند\&. به ویژه، "classic" و "table" تنها مهم‌ترین فیلدها را نمایش می‌دهند\&. حالت‌های مختلف همچنین هش‌های گذرواژه را نشان نمی‌دهند\&. از "json" برای مشاهده همه فیلدها، از جمله فیلدهای احراز هویت استفاده کنید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fB\-\-json=\fR\fB\fIFORMAT\fR\fR .RS 4 حالت خروجی JSON (مشابه \fB\-\-output=json\fR) و حالت دقیق نمایش را انتخاب می‌کند\&. یکی از مقادیر "pretty" یا "short" را می‌پذیرد\&. اگر "pretty" باشد، فاصله‌های خالی و خطوط جدیدِ خوانا برای انسان در خروجی درج می‌شوند تا داده‌های JSON خواناتر شوند\&. اگر "short" باشد، تمام فاصله‌های خالی اضافی حذف می‌شوند\&. .sp اضافه‌شده در نسخه 250\&. .RE .PP \fB\-\-service=\fR\fB\fISERVICE\fR\fR\fB[:\fISERVICE\&...\fR]\fR, \fB\-s\fR \fISERVICE\fR:\fISERVICE\&...\fR .RS 4 کنترل می‌کند که کدام سرویس‌ها برای کاربران/گروه‌ها استعلام شوند\&. فهرستی از یک یا چند نام سرویس را که با ":" از هم جدا شده‌اند می‌پذیرد\&. برای فهرستی از نام‌های سرویس شناخته‌شده به بخش‌های زیر مراجعه کنید\&. در صورت مشخص نشدن، تمام سرویس‌های موجود به طور هم‌زمان استعلام می‌شوند\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fB\-\-with\-nss=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا جستجوهای کلاسیک کاربر/گروه glibc/NSS در خروجی گنجانده شوند یا خیر\&. اگر \fB\-\-with\-nss=no\fR استفاده شود، هرگونه تلاش برای تفکیک یا شمارش کاربران/گروه‌هایی که صرفاً از طریق glibc NSS ارائه می‌شوند متوقف می‌گردد\&. اگر \fB\-\-with\-nss=yes\fR مشخص شود، چنین کاربران/گروه‌هایی در خروجی گنجانده می‌شوند (که حالت پیش‌فرض است)\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fB\-\-with\-varlink=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا جستجوهای کاربر/گروه Varlink در خروجی گنجانده شوند یا خیر، یعنی جستجوهایی که از طریق \m[blue]\fBUser/Group Record Lookup API via Varlink\fR\m[]\&\s-2\u[3]\d\s+2 انجام می‌شوند\&. اگر \fB\-\-with\-varlink=no\fR استفاده شود، هرگونه تلاش برای تفکیک یا شمارش کاربران/گروه‌هایی که صرفاً از طریق Varlink ارائه می‌شوند متوقف می‌گردد\&. اگر \fB\-\-with\-varlink=yes\fR مشخص شود، چنین کاربران/گروه‌هایی در خروجی گنجانده می‌شوند (که حالت پیش‌فرض است)\&. .sp اضافه‌شده در نسخه 249\&. .RE .PP \fB\-\-with\-dropin=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا جستجوهای کاربر/گروه تعریف‌شده با استفاده از فایل‌های تکمیلی (drop\-in) در مسیرهای /etc/userdb/, /run/userdb/, /run/host/userdb/, /usr/lib/userdb/ در خروجی گنجانده شوند یا خیر\&. اگر \fB\-\-with\-dropin=no\fR استفاده شود، این رکوردها نادیده گرفته می‌شوند\&. اگر \fB\-\-with\-dropin=yes\fR مشخص شود، چنین کاربران/گروه‌هایی در خروجی گنجانده می‌شوند (که حالت پیش‌فرض است)\&. .sp اضافه‌شده در نسخه 249\&. .RE .PP \fB\-\-synthesize=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا رکوردهایی برای کاربران/گروه‌های root و nobody در صورتی که به شکل دیگری تعریف نشده باشند، و همچنین کاربران/گروه‌ها برای محدوده UID «خارجی» (foreign) سنتز (ترکیب و ایجاد) شوند یا خیر\&. به طور پیش‌فرض (یا با "yes")، چنین رکوردهایی در صورت مفقود بودن به طور ضمنی سنتز می‌شوند زیرا اهمیت ویژه‌ای برای سیستم‌عامل دارند\&. با مقدار "no"، این سنتز خاموش می‌شود\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fB\-N\fR .RS 4 این گزینه مخفف \fB\-\-with\-nss=no\fR \fB\-\-synthesize=no\fR است\&. از این گزینه برای نمایش تنها رکوردهایی استفاده کنید که به صورت بومی به عنوان رکوردهای کاربر یا گروه JSON تعریف شده‌اند، در حالی که تمام سازگاری‌های NSS/glibc و تمام سنتزهای ضمنی خاموش شده‌اند\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fB\-\-multiplexer=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا جستجوها از طریق سرویس تسهیم‌کننده (اگر روی true مشخص شود، که پیش‌فرض است) انجام شود یا جستجوها در کلاینت انجام شود (اگر روی false مشخص شود)\&. استفاده از سرویس تسهیم‌کننده عموماً ارجح است، زیرا در یک محیط ایزوله و قفل‌شده (sandbox) اجرا می‌شود\&. .sp اضافه‌شده در نسخه 250\&. .RE .PP \fB\-\-chain\fR .RS 4 هنگامی که همراه با دستور \fBssh\-authorized\-keys\fR استفاده شود، امکان ارسال یک خط فرمان اضافی را پس از نام کاربر فراهم می‌کند که پس از تکمیل جستجو به صورت زنجیره‌ای اجرا می‌شود\&. این امر اجازه می‌دهد تا چندین ابزار که کلیدهای مجاز SSH را نمایش می‌دهند به یکدیگر زنجیر شوند\&. .sp اضافه‌شده در نسخه 250\&. .RE .PP \fB\-\-fuzzy\fR, \fB\-z\fR .RS 4 هنگامی که با دستور \fBuser\fR یا \fBgroup\fR استفاده شود، یک جستجوی رشته‌ای فازی (تقریبی) انجام می‌دهد\&. هر آرگومان مشخص‌شده با نام کاربر، نام واقعی رکورد کاربر، آدرس ایمیل و سایر رشته‌های توصیفی رکورد کاربر یا گروه تطبیق داده می‌شود\&. علاوه بر این، به جای تطبیق دقیق، تطبیق زیررشته یا تطبیقی که انحرافات جزئی در املای کلمات را مجاز می‌داند اعمال می‌گردد\&. .sp اضافه‌شده در نسخه 257\&. .RE .PP \fB\-\-disposition=\fR .RS 4 هنگامی که با دستور \fBuser\fR یا \fBgroup\fR استفاده شود، بر اساس ماهیت/طبقه‌بندی (disposition) رکورد فیلتر می‌کند\&. یکی از مقادیر "intrinsic"، "system"، "regular"، "dynamic" یا "container" را می‌پذیرد\&. می‌تواند چندین بار استفاده شود، که در این صورت فقط کاربرانی که با هر یک از طبقه‌بندی‌های مشخص‌شده مطابقت داشته باشند نمایش داده می‌شوند\&. .sp اضافه‌شده در نسخه 257\&. .RE .PP \fB\-I\fR, \fB\-S\fR, \fB\-R\fR .RS 4 به ترتیب میان‌برهایی برای \fB\-\-disposition=intrinsic\fR، \fB\-\-disposition=system\fR و \fB\-\-disposition=regular\fR هستند\&. .sp اضافه‌شده در نسخه 257\&. .RE .PP \fB\-\-uid\-min=\fR, \fB\-\-uid\-max=\fR .RS 4 هنگامی که با دستور \fBuser\fR یا \fBgroup\fR استفاده شود، خروجی را بر اساس محدوده‌های UID/GID فیلتر می‌کند\&. به ترتیب مقادیر عددی حداقل یا حداکثر UID/GID را می‌پذیرد\&. فقط رکوردهای داخل محدوده مشخص‌شده را نمایش می‌دهد\&. هنگامی که روی دستور \fBuser\fR اعمال شود، با UIDها مطابقت داده می‌شود\&. هنگامی که روی دستور \fBgroup\fR اعمال شود، با GIDها مطابقت داده می‌شود (علیرغم نام سوییچ)\&. در صورت مشخص نشدن، مقدار پیش‌فرض 0 (برای حداقل) و 4294967294 (برای حداکثر) است، یعنی به طور پیش‌فرض هیچ فیلتری اعمال نمی‌شود زیرا کل محدوده UID/GID پوشش داده شده است\&. .sp اضافه‌شده در نسخه 257\&. .RE .PP \fB\-\-uuid=\fR .RS 4 هنگامی که با دستور \fBuser\fR یا \fBgroup\fR استفاده شود، خروجی را به رکوردی با UUID مشخص‌شده محدود و فیلتر می‌کند\&. در صورت مشخص نشدن، هیچ فیلتر مبتنی بر UUID اعمال نمی‌شود\&. .sp اضافه‌شده در نسخه 259\&. .RE .PP \fB\-\-boundaries=\fR .RS 4 هنگامی که با دستور \fBuser\fR یا \fBgroup\fR استفاده شود، کنترل می‌کند که آیا اطلاعات مرزهای مرتبط با محدوده UID/GID در خروجی جدولی نمایش داده شود یا خیر\&. یک مقدار بولی می‌پذیرد\&. پیش‌فرض true است\&. .sp اضافه‌شده در نسخه 257\&. .RE .PP \fB\-B\fR .RS 4 میان‌بری برای \fB\-\-boundaries=no\fR است\&. .sp اضافه‌شده در نسخه 257\&. .RE .PP \fB\-\-from\-file=PATH\fR, \fB\-F\fR .RS 4 هنگامی که با دستور \fBuser\fR یا \fBgroup\fR استفاده شود، تعریف کاربر را با فرمت JSON از فایل مشخص‌شده می‌خواند، به جای اینکه آن را از سیستم استعلام کند\&. اگر مسیر به صورت "\-" مشخص شود، داده‌های JSON را از ورودی استاندارد می‌خواند\&. این گزینه برای اعتبارسنجی و بررسی سریع رکوردهای کاربر یا گروه JSON و بررسی نحوه تفسیر آن‌ها در سیستم محلی مفید است\&. .sp اضافه‌شده در نسخه 258\&. .RE .PP \fB\-\-no\-pager\fR .RS 4 خروجی را به یک صفحه‌بند (pager) هدایت نمی‌کند\&. .RE .PP \fB\-\-no\-legend\fR .RS 4 راهنما (legend)، یعنی سرستون‌ها و پانویس حاوی نکات را چاپ نمی‌کند\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 یک متن کوتاه راهنما را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-version\fR .RS 4 یک رشته کوتاه مربوط به نسخه برنامه را چاپ کرده و خارج می‌شود\&. .RE .SH "فرمان‌ها (COMMANDS)" .PP دستورات زیر پشتیبانی می‌شوند: .PP \fBuser\fR [\fIUSER\fR\&...] .RS 4 تمام رکوردهای کاربر شناخته‌شده را فهرست می‌کند یا جزئیات یک یا چند رکورد کاربر مشخص‌شده را نمایش می‌دهد\&. از \fB\-\-output=\fR برای تنظیم حالت خروجی استفاده کنید\&. .sp در صورت استفاده به همراه \fB\-\-from\-file=\fR داده‌های رکورد کاربر به جای استعلام از سیستم، در قالب JSON از فایل مشخص‌شده خوانده می‌شود\&. برای جزئیات به بالا مراجعه کنید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBgroup\fR [\fIGROUP\fR\&...] .RS 4 تمام رکوردهای گروه شناخته‌شده را فهرست می‌کند یا جزئیات یک یا چند رکورد گروه مشخص‌شده را نمایش می‌دهد\&. از \fB\-\-output=\fR برای تنظیم حالت خروجی استفاده کنید\&. .sp در صورت استفاده به همراه \fB\-\-from\-file=\fR داده‌های رکورد گروه به جای استعلام از سیستم، در قالب JSON از فایل مشخص‌شده خوانده می‌شود\&. برای جزئیات به بالا مراجعه کنید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBusers\-in\-group\fR [\fIGROUP\fR\&...] .RS 4 کاربرانی را که عضو گروه‌های مشخص‌شده هستند فهرست می‌کند\&. اگر هیچ گروهی مشخص نشده باشد، تمام عضویت‌های کاربر/گروه تعریف‌شده را فهرست می‌نماید\&. از \fB\-\-output=\fR برای تنظیم حالت خروجی استفاده کنید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBgroups\-of\-user\fR [\fIUSER\fR\&...] .RS 4 گروه‌هایی را که کاربران مشخص‌شده عضو آن‌ها هستند فهرست می‌کند\&. اگر هیچ کاربری مشخص نشده باشد، تمام عضویت‌های کاربر/گروه تعریف‌شده را فهرست می‌نماید (در این حالت، \fBgroups\-of\-user\fR و \fBusers\-in\-group\fR معادل یکدیگر هستند)\&. از \fB\-\-output=\fR برای تنظیم حالت خروجی استفاده کنید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBservices\fR .RS 4 تمام سرویس‌هایی را که در حال حاضر تعاریف کاربر/گروه را به سیستم ارائه می‌دهند فهرست می‌کند\&. برای فهرستی از سرویس‌های شناخته‌شده ارائه‌دهنده اطلاعات کاربر به بخش‌های زیر مراجعه کنید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBssh\-authorized\-keys\fR .RS 4 کلیدهای مجاز SSH را برای این حساب نمایش می‌دهد\&. این دستور برای این در نظر گرفته شده است که به دیمن SSH اجازه دهد کلیدهای مجاز را از رکوردهای کاربر دریافت کند، به بخش‌های زیر مراجعه نمایید\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBload\-credentials\fR .RS 4 هنگامی که مشخص شود، اعتبارهای (credentials) زیر هنگام ارسال مورد استفاده قرار می‌گیرند: .PP \fIuserdb\&.user\&.*\fR, \fIuserdb\&.group\&.*\fR .RS 4 این اعتبارات باید حاوی رکوردهای معتبر \m[blue]\fBJSON User\fR\m[]\&\s-2\u[1]\d\s+2 و \m[blue]\fBJSON Group\fR\m[]\&\s-2\u[2]\d\s+2 باشند\&. به ازای هر اعتبار منطبق، فایل‌های مختلفی در /etc/userdb/ ایجاد می‌شود که رابط توصیف‌شده در \fBnss-systemd\fR(8) را پیاده‌سازی می‌کند\&. هر رکورد کاربر ارسال‌شده باید شامل فیلدهای معتبر UID و GID باشد\&. هر رکورد گروه ارسال‌شده باید شامل یک فیلد GID باشد (یعنی تخصیص خودکار UID/GID پشتیبانی نمی‌شود)\&. برای هر دو رکورد کاربر و گروه، پسوند اعتبار (برای "userdb\&.user\&.foobar" پسوند "foobar" است) باید با نام کاربر یا گروه کدگذاری‌شده در رکورد مطابقت داشته باشد\&. .sp اضافه‌شده در نسخه 258\&. .RE .sp اضافه‌شده در نسخه 258\&. .RE .SH "سرویس‌های شناخته‌شده (WELL-KNOWN SERVICES)" .PP دستور \fBuserdbctl services\fR تمام سرویس‌های در حال اجرایی را که تعاریف کاربر یا گروه را به سیستم ارائه می‌دهند فهرست می‌کند\&. سرویس‌های شناخته‌شده زیر در میان این فهرست نمایش داده می‌شوند: .PP \fBio\&.systemd\&.DynamicUser\fR .RS 4 این سرویس توسط خود مدیر سرویس سیستم (یعنی PID 1) ارائه می‌شود و تمام کاربرانی را (و گروه‌های آن‌ها را) که از طریق تنظیم \fIDynamicUser=\fR در فایل‌های واحد (unit) سرویس ایجاد شده‌اند در دسترس سیستم قرار می‌دهد (برای جزئیات درباره این تنظیم به \fBsystemd.exec\fR(5) مراجعه کنید)\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBio\&.systemd\&.Home\fR .RS 4 این سرویس توسط \fBsystemd-homed.service\fR(8) ارائه می‌شود و تمام کاربران (و گروه‌های آن‌ها) متعلق به دایرکتوری‌های خانگی مدیریت‌شده توسط آن سرویس را در دسترس سیستم قرار می‌دهد\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBio\&.systemd\&.Machine\fR .RS 4 این سرویس توسط \fBsystemd-machined.service\fR(8) ارائه می‌شود و رکوردهایی را برای تمام کاربران/گروه‌های استفاده‌شده توسط کانتینری که از فضای نام کاربر (user namespacing) استفاده می‌کند، سنتز می‌نماید\&. .sp اضافه‌شده در نسخه 246\&. .RE .PP \fBio\&.systemd\&.Multiplexer\fR .RS 4 این سرویس توسط \fBsystemd-userdbd.service\fR(8) ارائه می‌شود و جستجوهای کاربر/گروه را به تمام سرویس‌های جستجوی دیگر در حال اجرا تسهیم (توزیع) می‌کند\&. این سرویس نقطه ورود اصلی برای کلاینت‌های رکوردهای کاربر/گروه است، زیرا پیاده‌سازی سمت کلاینت را به طور اساسی ساده می‌کند، چرا که کلاینت‌ها می‌توانند به جای پرس‌وجو از تمام سرویس‌های در حال اجرا به صورت موازی، از یک سرویس واحد استعلام بگیرند\&. \fBuserdbctl\fR نیز ترجیحاً از این سرویس استفاده می‌کند، مگر اینکه \fB\-\-with\-nss=\fR یا \fB\-\-service=\fR استفاده شوند که در این صورت کنترل دقیق‌تری بر روی سرویس‌های هدف مورد نیاز است\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBio\&.systemd\&.NameServiceSwitch\fR .RS 4 این سرویس (نیز) توسط \fBsystemd-userdbd.service\fR(8) ارائه می‌شود و رکوردهای کلاسیک کاربر و گروه NSS/glibc را به رکوردهای کاربر/گروه JSON تبدیل می‌کند و سازگاری کامل رو به عقب را فراهم می‌سازد\&. برای غیرفعال کردن این سازگاری از \fB\-\-with\-nss=no\fR استفاده کنید، به بالا مراجعه نمایید\&. توجه داشته باشید که این سازگاری در واقع در هر دو جهت فراهم شده است: \fBnss-systemd\fR(8) به طور خودکار رکوردهای کاربر/گروه کلاسیک NSS/glibc را از تمام رکوردهای کاربر/گروه JSON ارائه‌شده به سیستم سنتز می‌کند، بنابراین استفاده از هر دو API تا حد زیادی معادل است و دسترسی به داده‌های یکسانی را فراهم می‌کند، با این حال APIهای NSS/glibc لزوماً تنها مجموعه محدودتری از فیلدها را در معرض نمایش قرار می‌دهند\&. .sp اضافه‌شده در نسخه 245\&. .RE .PP \fBio\&.systemd\&.DropIn\fR .RS 4 این سرویس (نیز) توسط \fBsystemd-userdbd.service\fR(8) ارائه می‌شود و رکوردهای کاربر/گروه JSON را از مسیرهای /etc/userdb/, /run/userdb/, /run/host/userdb/, /usr/lib/userdb/ دریافت می‌کند\&. .sp اضافه‌شده در نسخه 249\&. .RE .PP توجه داشته باشید که \fBuserdbctl\fR دارای پشتیبانی داخلی برای جستجوهای مبتنی بر NSS نیز هست\&. این بدان معناست که اگر نه \fBio\&.systemd\&.Multiplexer\fR و نه \fBio\&.systemd\&.NameServiceSwitch\fR در حال اجرا نباشند، جستجوها در پایگاه‌های داده پایه‌ای کاربر/گروه همچنان کار خواهند کرد\&. .SH "یکپارچه‌سازی با SSH (INTEGRATION WITH SSH)" .PP ابزار \fBuserdbctl\fR ممکن است برای در دسترس قرار دادن فهرست کلیدهای مجاز SSH که احتمالاً در یک رکورد کاربر موجود است به دیمن SSH برای احراز هویت استفاده شود\&. برای این منظور، موارد زیر را در \fBsshd_config\fR(5) پیکربندی کنید: .sp .if n \{\ .RS 4 .\} .nf \&... AuthorizedKeysCommand /usr/bin/userdbctl ssh\-authorized\-keys %u AuthorizedKeysCommandUser root \&... .fi .if n \{\ .RE .\} .PP گاهی اوقات، اجازه دادن به فراخوانی زنجیره‌ای برنامه دیگری برای فهرست کردن کلیدهای مجاز SSH مفید است\&. با استفاده از گزینه \fB\-\-chain\fR، چنین ابزاری می‌تواند پس از اتمام جستجو، فارغ از اینکه کلید SSH یافت شده باشد یا خیر، توسط \fBuserdbctl ssh\-authorized\-keys\fR به صورت زنجیره‌ای اجرا شود\&. مثال: .sp .if n \{\ .RS 4 .\} .nf \&... AuthorizedKeysCommand /usr/bin/userdbctl ssh\-authorized\-keys %u \-\-chain /usr/bin/othertool %u AuthorizedKeysCommandUser root \&... .fi .if n \{\ .RE .\} .PP دستور بالا ابتدا پایگاه داده userdb را برای کلیدهای SSH استعلام می‌کند و سپس \fB/usr/bin/othertool\fR را به صورت زنجیره‌ای اجرا می‌نماید تا آن نیز استعلام شود\&. .SH "کدهای خروج (EXIT STATUS)" .PP در صورت موفقیت، مقدار 0 برگردانده می‌شود، و در غیر این صورت یک کد شکست غیر صفر برمی‌گردد\&. .SH "محیط (ENVIRONMENT)" .PP \fI$SYSTEMD_LOG_LEVEL\fR .RS 4 حداکثر سطح ثبت وقایع (لاگ) برای پیام‌های منتشرشده (پیام‌های با سطح لاگ بالاتر، یعنی با اهمیت کمتر، نادیده گرفته خواهند شد)\&. فهرستی از مقادیر جداشده با کاما را می‌پذیرد\&. یک مقدار می‌تواند یکی از موارد زیر باشد (به ترتیب کاهش اهمیت): \fBemerg\fR، \fBalert\fR، \fBcrit\fR، \fBerr\fR، \fBwarning\fR، \fBnotice\fR، \fBinfo\fR، \fBdebug\fR یا یک عدد صحیح در محدوده 0\&...7\&. برای اطلاعات بیشتر به \fBsyslog\fR(3) مراجعه کنید\&. هر مقدار می‌تواند به صورت اختیاری با یکی از پیشوندهای \fBconsole\fR، \fBsyslog\fR، \fBkmsg\fR یا \fBjournal\fR همراه با یک دو نقطه (:) مشخص شود تا حداکثر سطح لاگ را برای آن مقصد لاگ خاص تعیین کند (برای مثال \fBSYSTEMD_LOG_LEVEL=debug,console:info\fR مشخص می‌کند که لاگ در سطح debug باشد مگر هنگام ثبت در کنسول که باید در سطح info باشد)\&. توجه داشته باشید که حداکثر سطح لاگ سراسری بر حداکثر سطوح لاگِ هر مقصد اولویت دارد\&. .RE .PP \fI$SYSTEMD_LOG_COLOR\fR .RS 4 یک مقدار بولی\&. اگر درست باشد، پیام‌های نوشته‌شده در tty بر اساس اولویت رنگی خواهند شد\&. .sp این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال نوشته شوند، زیرا \fBjournalctl\fR(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان پیام‌ها را بر اساس سطح لاگ رنگی می‌کنند\&. .RE .PP \fI$SYSTEMD_LOG_TIME\fR .RS 4 یک مقدار بولی\&. اگر درست باشد، پیام‌های لاگ کنسول با یک برچسب زمانی پیشوند می‌شوند\&. .sp این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال یا یک فایل نوشته شوند، زیرا \fBjournalctl\fR(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان برچسب‌های زمانی را بر اساس متادیتای ورودی پیوست می‌کنند\&. .RE .PP \fI$SYSTEMD_LOG_LOCATION\fR .RS 4 یک مقدار بولی\&. اگر درست باشد، پیام‌ها با نام فایل و شماره خط در کد منبع که پیام از آنجا سرچشمه گرفته است پیشوند می‌شوند\&. .sp توجه داشته باشید که مکان لاگ اغلب به عنوان متادیتا به ورودی‌های ژورنال ضمیمه می‌شود\&. با این حال، درج مستقیم آن در متن پیام می‌تواند هنگام اشکال‌زدایی برنامه‌ها راحت باشد\&. .RE .PP \fI$SYSTEMD_LOG_TID\fR .RS 4 یک مقدار بولی\&. اگر درست باشد، پیام‌ها با شناسه عددی ریسه جاری (TID) پیشوند می‌شوند\&. .sp توجه داشته باشید که این اطلاعات به هر حال به عنوان متادیتا به ورودی‌های ژورنال پیوست می‌شود\&. با این حال، درج مستقیم آن در متن پیام می‌تواند هنگام اشکال‌زدایی برنامه‌ها راحت باشد\&. .RE .PP \fI$SYSTEMD_LOG_TARGET\fR .RS 4 مقصد پیام‌های لاگ\&. یکی از مقادیر \fBconsole\fR (ثبت در tty متصل‌شده)، \fBconsole\-prefixed\fR (ثبت در tty متصل‌شده اما با پیشوندهایی که سطح لاگ و "facility" را مشخص می‌کنند، به \fBsyslog\fR(3) مراجعه کنید)، \fBkmsg\fR (ثبت در بافر لاگ چرخشی هسته)، \fBjournal\fR (ثبت در ژورنال)، \fBjournal\-or\-kmsg\fR (ثبت در ژورنال در صورت در دسترس بودن، و در غیر این صورت در kmsg)، \fBauto\fR (تعیین خودکار مقصد لاگ مناسب، پیش‌فرض)، \fBnull\fR (غیرفعال کردن خروجی لاگ)\&. .RE .PP \fI$SYSTEMD_LOG_RATELIMIT_KMSG\fR .RS 4 آیا محدودیت نرخ (ratelimit) روی kmsg اعمال شود یا خیر\&. یک مقدار بولی می‌پذیرد\&. پیش‌فرض "true" است\&. در صورت غیرفعال شدن، systemd پیام‌های نوشته‌شده در kmsg را محدود نمی‌کند\&. .RE .PP \fI$SYSTEMD_PAGER\fR, \fI$PAGER\fR .RS 4 صفحه‌بندی که هنگام مشخص نشدن \fB\-\-no\-pager\fR استفاده می‌شود\&. در صورت تنظیم بودن \fI$SYSTEMD_PAGER\fR از آن استفاده می‌شود؛ در غیر این صورت از \fI$PAGER\fR استفاده خواهد شد\&. اگر نه \fI$SYSTEMD_PAGER\fR و نه \fI$PAGER\fR تنظیم نشده باشند، مجموعه‌ای از پیاده‌سازی‌های شناخته‌شده صفحه‌بند به نوبت امتحان می‌شوند، از جمله \fBless\fR(1) و \fBmore\fR(1)، تا زمانی که یکی پیدا شود\&. اگر هیچ پیاده‌سازی صفحه‌بندی پیدا نشود، هیچ صفحه‌بندی فراخوانی نمی‌شود\&. تنظیم این متغیرهای محیطی روی یک رشته خالی یا مقدار "cat" معادل ارسال \fB\-\-no\-pager\fR است\&. .sp نکته: اگر \fI$SYSTEMD_PAGERSECURE\fR تنظیم نشده باشد، \fI$SYSTEMD_PAGER\fR و \fI$PAGER\fR فقط برای غیرفعال کردن صفحه‌بند (با "cat" یا "") می‌توانند استفاده شوند، و در غیر این صورت نادیده گرفته می‌شوند\&. .RE .PP \fI$SYSTEMD_LESS\fR .RS 4 لغو گزینه‌های ارسالی به \fBless\fR (به طور پیش‌فرض "FRSXMK")\&. .sp کاربران ممکن است بخواهند دو گزینه را به ویژه تغییر دهند: .PP \fBK\fR .RS 4 این گزینه به صفحه‌بند دستور می‌دهد هنگام فشرده شدن Ctrl+C فوراً خارج شود\&. برای اینکه به \fBless\fR اجازه دهید خودش Ctrl+C را برای بازگشت به خط فرمان صفحه‌بند مدیریت کند، این گزینه را لغو کنید\&. .sp اگر مقدار \fI$SYSTEMD_LESS\fR شامل "K" نباشد، و صفحه‌بند فراخوانی‌شده \fBless\fR باشد، Ctrl+C توسط فایل اجرایی نادیده گرفته شده و باید توسط صفحه‌بند مدیریت شود\&. .RE .PP \fBX\fR .RS 4 این گزینه به صفحه‌بند دستور می‌دهد که رشته‌های مقداردهی اولیه و پایان‌دهی termcap را به ترمینال ارسال نکند\&. این گزینه به طور پیش‌فرض تنظیم شده است تا خروجی دستور حتی پس از خروج صفحه‌بند در ترمینال قابل مشاهده باقی بماند\&. با این حال، این امر مانع از عملکرد برخی قابلیت‌های صفحه‌بند می‌شود، به ویژه خروجی صفحه‌بندی‌شده را نمی‌توان با ماوس پیمایش (اسکرول) کرد\&. .RE .sp توجه داشته باشید که تنظیم متغیر محیطی معمولی \fI$LESS\fR هیچ تاثیری برای فراخوانی‌های \fBless\fR توسط ابزارهای systemd ندارد\&. .sp برای توضیحات بیشتر به \fBless\fR(1) مراجعه کنید\&. .RE .PP \fI$SYSTEMD_LESSCHARSET\fR .RS 4 لغو مجموعه نویسه (charset) ارسالی به \fBless\fR (به طور پیش‌فرض "utf\-8"، اگر ترمینال فراخواننده به عنوان سازگار با UTF-8 تشخیص داده شود)\&. .sp توجه داشته باشید که تنظیم متغیر محیطی معمولی \fI$LESSCHARSET\fR هیچ تاثیری برای فراخوانی‌های \fBless\fR توسط ابزارهای systemd ندارد\&. .RE .PP \fI$SYSTEMD_PAGERSECURE\fR .RS 4 دستورات رایج صفحه‌بند مانند \fBless\fR(1)، علاوه بر «صفحه‌بندی»، یعنی پیمایش در خروجی، از باز کردن یا نوشتن در فایل‌های دیگر و اجرای دستورات دلخواه شل پشتیبانی می‌کنند\&. هنگامی که دستورات با امتیازات بالا، به عنوان مثال تحت \fBsudo\fR(8) یا \fBpkexec\fR(1) فراخوانی می‌شوند، صفحه‌بند به یک مرز امنیتی تبدیل می‌شود\&. باید دقت شود که تنها برنامه‌هایی با قابلیت‌های کاملاً محدود به عنوان صفحه‌بند استفاده شوند، و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا شروع زیرفرایندها مجاز نباشند\&. «حالت امن» برای صفحه‌بند ممکن است همان‌طور که در زیر توضیح داده شده فعال شود، \fIاگر صفحه‌بند از آن پشتیبانی کند\fR (بیشتر صفحه‌بندها به شیوه‌ای نوشته نشده‌اند که این موضوع را در نظر بگیرند)\&. توصیه می‌شود یا صراحتاً «حالت امن» را فعال کنید یا با استفاده از \fB\-\-no\-pager\fR یا \fIPAGER=cat\fR هنگام اجازه دادن به کاربران غیرقابل اعتماد برای اجرای دستورات با امتیازات بالا، صفحه‌بند را کاملاً غیرفعال نمایید\&. .sp این گزینه یک آرگومان بولی می‌پذیرد\&. هنگامی که روی درست تنظیم شود، «حالت امن» صفحه‌بند فعال می‌شود\&. در «حالت امن»، هنگام فراخوانی صفحه‌بند \fBLESSSECURE=1\fR تنظیم خواهد شد، که به صفحه‌بند دستور می‌دهد دستوراتی را که فایل‌های جدید باز می‌کنند یا ایجاد می‌کنند یا زیرفرایندهای جدید آغاز می‌کنند غیرفعال کند\&. در حال حاضر فقط \fBless\fR(1) شناخته شده است که این متغیر را درک می‌کند و «حالت امن» را پیاده‌سازی می‌نماید\&. .sp هنگامی که روی نادرست تنظیم شود، هیچ محدودیتی بر صفحه‌بند اعمال نمی‌شود\&. تنظیم \fISYSTEMD_PAGERSECURE=0\fR یا حذف نکردن آن از متغیرهای محیطی به ارث رسیده ممکن است به کاربر اجازه دهد دستورات دلخواه را اجرا کند\&. .sp هنگامی که \fI$SYSTEMD_PAGERSECURE\fR تنظیم نشده باشد، ابزارهای systemd تلاش می‌کنند تا به طور خودکار تشخیص دهند که آیا «حالت امن» باید فعال شود و آیا صفحه‌بند از آن پشتیبانی می‌کند یا خیر\&. اگر UID مؤثر با مالک نشست ورود یکسان نباشد، به \fBgeteuid\fR(2) و \fBsd_pid_get_owner_uid\fR(3) مراجعه کنید، یا هنگام اجرا تحت \fBsudo\fR(8) یا ابزارهای مشابه (\fI$SUDO_UID\fR تنظیم شده باشد \&\s-2\u[4]\d\s+2)\&. در این موارد، \fISYSTEMD_PAGERSECURE=1\fR تنظیم می‌شود و صفحه‌بندهایی که پیاده‌سازی «حالت امن» در آن‌ها شناخته‌شده نیست اصلاً استفاده نخواهند شد\&. توجه داشته باشید که این تشخیص خودکار فقط متداول‌ترین سازوکارهای ارتقای امتیازات را پوشش می‌دهد و برای راحتی کار در نظر گرفته شده است\&. توصیه می‌شود صراحتاً \fI$SYSTEMD_PAGERSECURE\fR را تنظیم کرده یا صفحه‌بند را غیرفعال کنید\&. .sp توجه داشته باشید که اگر متغیرهای \fI$SYSTEMD_PAGER\fR یا \fI$PAGER\fR قرار است رعایت شوند، به جز برای غیرفعال کردن صفحه‌بند، \fI$SYSTEMD_PAGERSECURE\fR نیز باید تنظیم شده باشد\&. .RE .PP \fI$SYSTEMD_COLORS\fR .RS 4 یک آرگومان بولی، یا یک مقدار ویژه می‌پذیرد\&. به طور پیش‌فرض (تنظیم‌نشده)، \fBsystemd\fR و ابزارهای مرتبط در صورت امکان از رنگ‌ها در خروجی خود استفاده خواهند کرد\&. اگر \fI$COLORTERM\fR روی "truecolor" یا "24bit" تنظیم شده باشد، رنگ‌های 24 بیتی فعال می‌شوند، در غیر این صورت 256 رنگ، مگر اینکه \fI$NO_COLOR\fR یا \fI$TERM\fR نشان دهد رنگ‌ها غیرفعال هستند\&. .PP \fBtrue\fR .RS 4 مشابه تنظیم‌نشده، با این تفاوت که \fI$NO_COLOR\fR نادیده گرفته می‌شود\&. .RE .PP \fBfalse\fR .RS 4 خروجی تک‌رنگ خواهد بود\&. .RE .PP "16", "256", "24bit" .RS 4 همیشه به ترتیب از رنگ‌های پایه ۱۶ تایی ANSI، ۲۵۶ رنگ، یا رنگ ۲۴ بیتی استفاده می‌کند\&. .RE .PP "auto\-16", "auto\-256", "auto\-24bit" .RS 4 از تعداد رنگ‌های مشخص‌شده، بر اساس \fI$TERM\fR و اینکه کنسول به چه چیزی متصل است، استفاده می‌کند\&. .RE .RE .PP \fI$SYSTEMD_URLIFY\fR .RS 4 مقدار باید یک بولی باشد\&. کنترل می‌کند که آیا پیوندهای قابل کلیک در خروجی برای شبیه‌سازهای ترمینالی که از این قابلیت پشتیبانی می‌کنند تولید شود یا خیر\&. این گزینه را می‌توان برای لغو تصمیمی که \fBsystemd\fR بر اساس \fI$TERM\fR و سایر شرایط می‌گیرد تعیین کرد\&. .RE .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBsystemd-userdbd.service\fR(8), \fBsystemd-homed.service\fR(8), \fBnss-systemd\fR(8), \fBgetent\fR(1) .SH "یادداشت‌ها (NOTES)" .IP " 1." 4 JSON User Records .RS 4 \%https://systemd.io/USER_RECORD .RE .IP " 2." 4 JSON Group Records .RS 4 \%https://systemd.io/GROUP_RECORD .RE .IP " 3." 4 User/Group Record Lookup API via Varlink .RS 4 \%https://systemd.io/USER_GROUP_API .RE .IP " 4." 4 توصیه می‌شود سایر ابزارها نیز \fI$SUDO_UID\fR را در صورت لزوم تنظیم و بررسی کنند و با آن به عنوان یک رابط مشترک رفتار نمایند\&.