LOGINCTL(1) loginctl LOGINCTL(1)

loginctl - کنترل مدیریت ورود کاربر در سیستمدی (systemd-logind)

loginctl [گزینه‌ها...] {دستور} [نام...]

از loginctl می‌توان برای بررسی و کنترل وضعیت مدیر ورود systemd(1) یعنی systemd-logind.service(8) استفاده کرد.

دستورات زیر پشتیبانی می‌شوند:

list-sessions

فهرست کردن نشست‌های جاری. خروجی در قالب JSON را می‌توان با استفاده از گزینه --json= یا -j تغییر داد.

session-status [ID...]

نمایش اطلاعات خلاصه وضعیت زمان اجرای یک یا چند نشست، به همراه جدیدترین داده‌های لاگ از ژورنال. یک یا چند شناسه نشست را به عنوان پارامتر می‌پذیرد. اگر هیچ شناسه نشستی داده نشود، وضعیت نشست کاربر فراخواننده نمایش داده می‌شود. این تابع برای تولید خروجی خوانا برای انسان در نظر گرفته شده است. اگر به دنبال خروجی قابل تجزیه توسط رایانه هستید، به جای آن از show-session استفاده کنید.

افزوده شده در نسخه 233.

show-session [ID...]

نمایش ویژگی‌های یک یا چند نشست یا خود مدیر. اگر آرگومانی مشخص نشود، ویژگی‌های مدیر نمایش داده خواهد شد. اگر شناسه نشست مشخص شود، ویژگی‌های آن نشست نشان داده می‌شود. به طور ویژه، اگر شناسه داده شده "self" باشد، نشستی که فرایند loginctl به آن تعلق دارد استفاده می‌شود. اگر "auto" باشد، نشست جاری مانند "self" در صورت وجود استفاده می‌شود، و در غیر این صورت به نشست گرافیکی کاربر جاری بازمی‌گردد. به طور پیش‌فرض، ویژگی‌های خالی نمایش داده نمی‌شوند. برای نمایش آن‌ها نیز از --all استفاده کنید. برای انتخاب ویژگی‌های خاص جهت نمایش، از --property= استفاده کنید. این دستور برای زمان‌هایی در نظر گرفته شده که خروجی قابل تجزیه توسط رایانه مورد نیاز است. اگر به دنبال خروجی فرمت‌بندی‌شده و خوانا برای انسان هستید از session-status استفاده کنید.

افزوده شده در نسخه 233.

activate [ID]

فعال کردن یک نشست. این دستور در صورتی که نشست دیگری در جایگاه مربوطه در پیش‌زمینه باشد، این نشست را به پیش‌زمینه می‌آورد. یک شناسه نشست را به عنوان آرگومان می‌پذیرد. اگر آرگومانی مشخص نشود، نشست فراخواننده در پیش‌زمینه قرار می‌گیرد.

افزوده شده در نسخه 219.

lock-session [ID...], unlock-session [ID...]

فعال/غیرفعال کردن قفل صفحه روی یک یا چند نشست، در صورتی که نشست از آن پشتیبانی کند. یک یا چند شناسه نشست را به عنوان آرگومان می‌پذیرد. اگر آرگومانی مشخص نشود، نشست فراخواننده قفل/باز می‌شود.

افزوده شده در نسخه 233.

lock-sessions, unlock-sessions

فعال/غیرفعال کردن قفل صفحه روی تمام نشست‌های جاری که از آن پشتیبانی می‌کنند.

افزوده شده در نسخه 188.

terminate-session ID...

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

افزوده شده در نسخه 233.

kill-session ID...

ارسال یک سیگنال به یک یا چند فرایند از نشست. از --kill-whom= برای انتخاب فرایندی که باید متوقف شود استفاده کنید. از --signal= برای انتخاب سیگنال ارسالی استفاده کنید. اگر آرگومان به صورت رشته خالی مشخص شود، سیگنال به نشستی که دستور را فراخوانی کرده ارسال می‌شود.

افزوده شده در نسخه 233.

list-users

فهرست کردن کاربرانی که در حال حاضر وارد سیستم شده‌اند. خروجی در قالب JSON را می‌توان با استفاده از گزینه --json= یا -j تغییر داد.

user-status [USER...]

نمایش اطلاعات خلاصه وضعیت زمان اجرای یک یا چند کاربر واردشده، به همراه جدیدترین داده‌های لاگ از ژورنال. یک یا چند نام کاربری یا شناسه عددی کاربر (UID) را به عنوان پارامتر می‌پذیرد. اگر پارامتری داده نشود، وضعیت برای کاربر نشستِ فراخواننده نمایش داده می‌شود. این تابع برای تولید خروجی خوانا برای انسان در نظر گرفته شده است. اگر به دنبال خروجی قابل تجزیه توسط رایانه هستید، به جای آن از show-user استفاده کنید.

افزوده شده در نسخه 233.

show-user [USER...]

نمایش ویژگی‌های یک یا چند کاربر یا خود مدیر. اگر آرگومانی مشخص نشود، ویژگی‌های مدیر نمایش داده خواهد شد. اگر کاربری مشخص شود، ویژگی‌های آن کاربر نشان داده می‌شود. به طور پیش‌فرض، ویژگی‌های خالی نمایش داده نمی‌شوند. برای نمایش آن‌ها نیز از --all استفاده کنید. برای انتخاب ویژگی‌های خاص جهت نمایش، از --property= استفاده کنید. این دستور برای زمان‌هایی در نظر گرفته شده که خروجی قابل تجزیه توسط رایانه مورد نیاز است. اگر به دنبال خروجی فرمت‌بندی‌شده و خوانا برای انسان هستید از user-status استفاده کنید.

افزوده شده در نسخه 233.

enable-linger [USER...], disable-linger [USER...]

فعال/غیرفعال کردن ماندگاری کاربر (lingering) برای یک یا چند کاربر. در صورت فعال بودن برای یک کاربر خاص، یک مدیر کاربر در زمان بوت برای کاربر ایجاد می‌شود و پس از خروج کاربر از سیستم همچنان فعال باقی می‌ماند. این ویژگی به کاربرانی که وارد سیستم نشده‌اند اجازه می‌دهد سرویس‌های طولانی‌مدت را اجرا کنند. یک یا چند نام کاربری یا UID عددی را به عنوان آرگومان می‌پذیرد. اگر آرگومانی مشخص نشود، ماندگاری را برای کاربر نشستِ فراخواننده فعال/غیرفعال می‌کند.

همچنین ببینید تنظیم KillUserProcesses= در logind.conf(5).

افزوده شده در نسخه 233.

terminate-user USER...

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

افزوده شده در نسخه 233.

kill-user USER...

ارسال یک سیگنال به تمام فرایندهای یک کاربر. از --signal= برای انتخاب سیگنال ارسالی استفاده کنید. اگر آرگومان به صورت رشته خالی مشخص شود، سیگنال به نشست‌های کاربری که دستور را فراخوانی کرده ارسال می‌شود.

افزوده شده در نسخه 233.

list-seats

فهرست کردن جایگاه‌های (seats) موجود در سیستم محلی. خروجی در قالب JSON را می‌توان با استفاده از گزینه --json= یا -j تغییر داد.

seat-status [NAME...]

نمایش اطلاعات خلاصه وضعیت زمان اجرای یک یا چند جایگاه. یک یا چند نام جایگاه را به عنوان پارامتر می‌پذیرد. اگر نام جایگاهی داده نشود، وضعیت جایگاه نشست فراخواننده نمایش داده می‌شود. این تابع برای تولید خروجی خوانا برای انسان در نظر گرفته شده است. اگر به دنبال خروجی قابل تجزیه توسط رایانه هستید، به جای آن از show-seat استفاده کنید.

افزوده شده در نسخه 233.

show-seat [NAME...]

نمایش ویژگی‌های یک یا چند جایگاه یا خود مدیر. اگر آرگومانی مشخص نشود، ویژگی‌های مدیر نمایش داده خواهد شد. اگر جایگاهی مشخص شود، ویژگی‌های آن جایگاه نشان داده می‌شود. به طور پیش‌فرض، ویژگی‌های خالی نمایش داده نمی‌شوند. برای نمایش آن‌ها نیز از --all استفاده کنید. برای انتخاب ویژگی‌های خاص جهت نمایش، از --property= استفاده کنید. این دستور برای زمان‌هایی در نظر گرفته شده که خروجی قابل تجزیه توسط رایانه مورد نیاز است. اگر به دنبال خروجی فرمت‌بندی‌شده و خوانا برای انسان هستید از seat-status استفاده کنید.

افزوده شده در نسخه 233.

attach NAME DEVICE...

اتصال دائمی یک یا چند دستگاه به یک جایگاه. دستگاه‌ها باید از طریق مسیرهای دستگاه در سیستم فایل /sys/ مشخص شوند. برای ایجاد یک جایگاه جدید، حداقل یک کارت گرافیک را به یک نام جایگاه قبلاً استفاده‌نشده متصل کنید. نام‌های جایگاه فقط می‌توانند شامل a–z، A–Z، 0–9، "-" و "_" باشند و باید با پیشوند "seat" آغاز شوند. برای لغو انتساب یک دستگاه به یک جایگاه خاص، کافی است آن را به جایگاه دیگری دوباره اختصاص دهید، یا از flush-devices استفاده کنید.

افزوده شده در نسخه 233.

flush-devices

حذف تمامی انتساب‌های دستگاه‌ها که پیش‌تر با attach ایجاد شده‌اند. پس از این فراخوانی، تنها جایگاه‌های تولیدشده به صورت خودکار باقی خواهند ماند و تمام سخت‌افزارهای جایگاه به آن‌ها اختصاص می‌یابد.

terminate-seat NAME...

خاتمه دادن به تمامی نشست‌های روی یک جایگاه. این دستور تمام فرایندهای تمامی نشست‌های روی آن جایگاه را متوقف کرده و کلیه منابع زمان اجرا اختصاص‌یافته به آن‌ها را آزاد می‌کند.

افزوده شده در نسخه 233.

گزینه‌های زیر پشتیبانی می‌شوند:

-p, --property=

هنگام نمایش ویژگی‌های نشست/کاربر/جایگاه، نمایش را به ویژگی‌های خاصی که به عنوان آرگومان مشخص شده محدود می‌کند. اگر مشخص نشود، تمام ویژگی‌های مقداردهی‌شده نمایش داده می‌شوند. آرگومان باید یک نام ویژگی باشد، مانند "Sessions". اگر بیش از یک بار مشخص شود، تمام ویژگی‌ها با نام‌های مشخص‌شده نمایش داده می‌شوند.

--value

هنگام نمایش ویژگی‌های نشست/کاربر/جایگاه، فقط مقدار را چاپ می‌کند و از نام ویژگی و "=" صرف‌نظر می‌کند.

افزوده شده در نسخه 230.

-a, --all

هنگام نمایش ویژگی‌های نشست/کاربر/جایگاه، تمام ویژگی‌ها را صرف‌نظر از اینکه مقداردهی شده‌اند یا نه نشان می‌دهد.

-l, --full

ورودی‌های درخت فرایند را کوتاه (با سه نقطه) نمی‌کند.

افزوده شده در نسخه 198.

--kill-whom=

هنگام استفاده با kill-session، انتخاب می‌کند که کدام فرایندها متوقف شوند. یکی از مقادیر "leader" یا "all" را می‌پذیرد تا مشخص کند فقط فرایند رهبر نشست متوقف شود یا تمام فرایندهای نشست. در صورت حذف، پیش‌فرض all است.

افزوده شده در نسخه 252.

-s, --signal=

هنگام استفاده با kill-session یا kill-user، انتخاب می‌کند که کدام سیگنال به فرایندهای انتخاب‌شده ارسال شود. باید یکی از مشخص‌کننده‌های سیگنال شناخته‌شده باشد، مانند SIGTERM، SIGINT یا SIGSTOP. در صورت حذف، پیش‌فرض SIGTERM است.

مقدار ویژه "help" فهرستی از مقادیر شناخته‌شده را نمایش داده و برنامه فوراً خارج می‌شود، و مقدار ویژه "list" مقادیر شناخته‌شده را به همراه شماره‌های عددی سیگنال فهرست کرده و برنامه فوراً خارج می‌شود.

-n, --lines=

هنگام استفاده با user-status و session-status، تعداد خطوط ژورنال را برای نمایش کنترل می‌کند که از جدیدترین‌ها شمارش می‌شود. یک آرگومان عدد صحیح مثبت می‌پذیرد. پیش‌فرض 10 است.

افزوده شده در نسخه 219.

-o, --output=

هنگام استفاده با user-status و session-status، قالب‌بندی ورودی‌های ژورنال نمایش داده شده را کنترل می‌کند. برای انتخاب‌های موجود، به journalctl(1) مراجعه کنید. پیش‌فرض "short" است.

افزوده شده در نسخه 219.

-H, --host=

عملیات را از راه دور اجرا می‌کند. یک نام میزبان، یا یک نام کاربری و نام میزبان که با "@" از هم جدا شده‌اند را برای اتصال مشخص کنید. نام میزبان به طور اختیاری می‌تواند دارای پسوند پورتی باشد که ssh روی آن گوش می‌دهد (با ":" جدا می‌شود)، و سپس نام کانتینر (با "/" جدا می‌شود) که مستقیماً به کانتینر خاصی روی میزبان مشخص‌شده متصل می‌شود. این گزینه از SSH برای گفتگو با نمونه مدیر ماشین راه دور استفاده می‌کند. نام‌های کانتینر را می‌توان با machinectl -H HOST برشمرد. آدرس‌های IPv6 را درون براکت قرار دهید.

-M, --machine=

عملیات را روی یک کانتینر محلی اجرا می‌کند. نام یک کانتینر را برای اتصال مشخص کنید، که به صورت اختیاری می‌تواند با یک نام کاربری برای اتصال به عنوان آن کاربر و یک نویسه جداکننده "@" پیشوند شود. اگر رشته ویژه ".host" به جای نام کانتینر استفاده شود، اتصالی به سیستم محلی برقرار می‌شود (که برای اتصال به گذرگاه کاربری یک کاربر خاص مفید است: "--user --machine=lennart@.host"). اگر ساختار "@" استفاده نشود، اتصال به عنوان کاربر root برقرار می‌شود. اگر ساختار "@" استفاده شود، طرف چپ یا طرف راست ممکن است حذف شوند (اما نه هر دو) که در این صورت نام کاربر محلی و ".host" ضمنی در نظر گرفته می‌شوند.

--no-ask-password

از کاربر برای احراز هویت در عملیات‌های دارای امتیاز ویژه درخواست نمی‌کند.

--no-pager

خروجی را به یک صفحه‌بند (pager) هدایت نمی‌کند.

--no-legend

راهنما (legend) یعنی سربرگ ستون‌ها و پانویس با راهنمایی‌ها را چاپ نمی‌کند.

--json=MODE

خروجی را با قالب JSON نمایش می‌دهد. یکی از مقادیر "short" (برای کوتاه‌ترین خروجی ممکن بدون هیچ فاصله خالی یا خطوط جدید اضافی)، "pretty" (برای نسخه زیبای همان، همراه با تورفتگی و خطوط جدید) یا "off" (برای غیرفعال کردن خروجی JSON، که پیش‌فرض است) را انتظار دارد.

-j

معادل --json=pretty در صورت اجرا در یک ترمینال، و --json=short در غیر این صورت.

-h, --help

یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود.

--version

یک رشته نسخه کوتاه را چاپ کرده و خارج می‌شود.

در صورت موفقیت 0 بازگردانده می‌شود، در غیر این صورت یک کد خطای غیر صفر برگردانده خواهد شد.

مثال 1. استعلام وضعیت کاربر

$ loginctl user-status
fatima (1005)
           Since: Sat 2016-04-09 14:23:31 EDT; 54min ago
           State: active
        Sessions: 5 *3
            Unit: user-1005.slice
                  ├─user@1005.service
                    ...
                  ├─session-3.scope
                    ...
                  └─session-5.scope
                    ├─3473 login -- fatima
                    └─3515 -zsh
Apr 09 14:40:30 laptop login[2325]: pam_unix(login:session):
                       session opened for user fatima by LOGIN(uid=0)
Apr 09 14:40:30 laptop login[2325]: LOGIN ON tty3 BY fatima

دو نشست وجود دارد، 3 و 5. نشست 3 یک نشست گرافیکی است که با ستاره علامت‌گذاری شده است. درخت پردازش شامل دو واحد scope مربوطه و واحد مدیر کاربر نشان داده شده است.

$SYSTEMD_LOG_LEVEL

حداکثر سطح ثبت وقایع (لاگ) برای پیام‌های منتشرشده (پیام‌های با سطح لاگ بالاتر، یعنی با اهمیت کمتر، نادیده گرفته خواهند شد). فهرستی از مقادیر جداشده با کاما را می‌پذیرد. یک مقدار می‌تواند یکی از موارد زیر باشد (به ترتیب کاهش اهمیت): emerg، alert، crit، err، warning، notice، info، debug یا یک عدد صحیح در محدوده 0...7. برای اطلاعات بیشتر به syslog(3) مراجعه کنید. هر مقدار می‌تواند به صورت اختیاری با یکی از پیشوندهای console، syslog، kmsg یا journal همراه با یک دو نقطه (:) مشخص شود تا حداکثر سطح لاگ را برای آن مقصد لاگ خاص تعیین کند (برای مثال SYSTEMD_LOG_LEVEL=debug,console:info مشخص می‌کند که لاگ در سطح debug باشد مگر هنگام ثبت در کنسول که باید در سطح info باشد). توجه داشته باشید که حداکثر سطح لاگ سراسری بر حداکثر سطوح لاگِ هر مقصد اولویت دارد.

$SYSTEMD_LOG_COLOR

یک مقدار بولی. اگر درست باشد، پیام‌های نوشته‌شده در tty بر اساس اولویت رنگی خواهند شد.

این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان پیام‌ها را بر اساس سطح لاگ رنگی می‌کنند.

$SYSTEMD_LOG_TIME

یک مقدار بولی. اگر درست باشد، پیام‌های لاگ کنسول با یک برچسب زمانی پیشوند می‌شوند.

این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال یا یک فایل نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان برچسب‌های زمانی را بر اساس متادیتای ورودی پیوست می‌کنند.

$SYSTEMD_LOG_LOCATION

یک مقدار بولی. اگر درست باشد، پیام‌ها با نام فایل و شماره خط در کد منبع که پیام از آنجا سرچشمه گرفته است پیشوند می‌شوند.

توجه داشته باشید که مکان لاگ اغلب به عنوان متادیتا به ورودی‌های ژورنال ضمیمه می‌شود. با این حال، درج مستقیم آن در متن پیام می‌تواند هنگام اشکال‌زدایی برنامه‌ها راحت باشد.

$SYSTEMD_LOG_TID

یک مقدار بولی. اگر درست باشد، پیام‌ها با شناسه عددی ریسه جاری (TID) پیشوند می‌شوند.

توجه داشته باشید که این اطلاعات به هر حال به عنوان متادیتا به ورودی‌های ژورنال پیوست می‌شود. با این حال، درج مستقیم آن در متن پیام می‌تواند هنگام اشکال‌زدایی برنامه‌ها راحت باشد.

$SYSTEMD_LOG_TARGET

مقصد پیام‌های لاگ. یکی از مقادیر console (ثبت در tty متصل‌شده)، console-prefixed (ثبت در tty متصل‌شده اما با پیشوندهایی که سطح لاگ و "facility" را مشخص می‌کنند، به syslog(3) مراجعه کنید)، kmsg (ثبت در بافر لاگ چرخشی هسته)، journal (ثبت در ژورنال)، journal-or-kmsg (ثبت در ژورنال در صورت در دسترس بودن، و در غیر این صورت در kmsg)، auto (تعیین خودکار مقصد لاگ مناسب، پیش‌فرض)، null (غیرفعال کردن خروجی لاگ).

$SYSTEMD_LOG_RATELIMIT_KMSG

آیا محدودیت نرخ (ratelimit) روی kmsg اعمال شود یا خیر. یک مقدار بولی می‌پذیرد. پیش‌فرض "true" است. در صورت غیرفعال شدن، systemd پیام‌های نوشته‌شده در kmsg را محدود نمی‌کند.

$SYSTEMD_PAGER, $PAGER

صفحه‌بندی که هنگام مشخص نشدن --no-pager استفاده می‌شود. در صورت تنظیم بودن $SYSTEMD_PAGER از آن استفاده می‌شود؛ در غیر این صورت از $PAGER استفاده خواهد شد. اگر نه $SYSTEMD_PAGER و نه $PAGER تنظیم نشده باشند، مجموعه‌ای از پیاده‌سازی‌های شناخته‌شده صفحه‌بند به نوبت امتحان می‌شوند، از جمله less(1) و more(1)، تا زمانی که یکی پیدا شود. اگر هیچ پیاده‌سازی صفحه‌بندی پیدا نشود، هیچ صفحه‌بندی فراخوانی نمی‌شود. تنظیم این متغیرهای محیطی روی یک رشته خالی یا مقدار "cat" معادل ارسال --no-pager است.

نکته: اگر $SYSTEMD_PAGERSECURE تنظیم نشده باشد، $SYSTEMD_PAGER و $PAGER فقط برای غیرفعال کردن صفحه‌بند (با "cat" یا "") می‌توانند استفاده شوند، و در غیر این صورت نادیده گرفته می‌شوند.

$SYSTEMD_LESS

لغو گزینه‌های ارسالی به less (به طور پیش‌فرض "FRSXMK").

کاربران ممکن است بخواهند دو گزینه را به ویژه تغییر دهند:

K

این گزینه به صفحه‌بند دستور می‌دهد هنگام فشرده شدن Ctrl+C فوراً خارج شود. برای اینکه به less اجازه دهید خودش Ctrl+C را برای بازگشت به خط فرمان صفحه‌بند مدیریت کند، این گزینه را لغو کنید.

اگر مقدار $SYSTEMD_LESS شامل "K" نباشد، و صفحه‌بند فراخوانی‌شده less باشد، Ctrl+C توسط فایل اجرایی نادیده گرفته شده و باید توسط صفحه‌بند مدیریت شود.

X

این گزینه به صفحه‌بند دستور می‌دهد که رشته‌های مقداردهی اولیه و پایان‌دهی termcap را به ترمینال ارسال نکند. این گزینه به طور پیش‌فرض تنظیم شده است تا خروجی دستور حتی پس از خروج صفحه‌بند در ترمینال قابل مشاهده باقی بماند. با این حال، این امر مانع از عملکرد برخی قابلیت‌های صفحه‌بند می‌شود، به ویژه خروجی صفحه‌بندی‌شده را نمی‌توان با ماوس پیمایش (اسکرول) کرد.

توجه داشته باشید که تنظیم متغیر محیطی معمولی $LESS هیچ تاثیری برای فراخوانی‌های less توسط ابزارهای systemd ندارد.

برای توضیحات بیشتر به less(1) مراجعه کنید.

$SYSTEMD_LESSCHARSET

لغو مجموعه نویسه (charset) ارسالی به less (به طور پیش‌فرض "utf-8"، اگر ترمینال فراخواننده به عنوان سازگار با UTF-8 تشخیص داده شود).

توجه داشته باشید که تنظیم متغیر محیطی معمولی $LESSCHARSET هیچ تاثیری برای فراخوانی‌های less توسط ابزارهای systemd ندارد.

$SYSTEMD_PAGERSECURE

دستورات رایج صفحه‌بند مانند less(1)، علاوه بر «صفحه‌بندی»، یعنی پیمایش در خروجی، از باز کردن یا نوشتن در فایل‌های دیگر و اجرای دستورات دلخواه شل پشتیبانی می‌کنند. هنگامی که دستورات با امتیازات بالا، به عنوان مثال تحت sudo(8) یا pkexec(1) فراخوانی می‌شوند، صفحه‌بند به یک مرز امنیتی تبدیل می‌شود. باید دقت شود که تنها برنامه‌هایی با قابلیت‌های کاملاً محدود به عنوان صفحه‌بند استفاده شوند، و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا شروع زیرفرایندها مجاز نباشند. «حالت امن» برای صفحه‌بند ممکن است همان‌طور که در زیر توضیح داده شده فعال شود، اگر صفحه‌بند از آن پشتیبانی کند (بیشتر صفحه‌بندها به شیوه‌ای نوشته نشده‌اند که این موضوع را در نظر بگیرند). توصیه می‌شود یا صراحتاً «حالت امن» را فعال کنید یا با استفاده از --no-pager یا PAGER=cat هنگام اجازه دادن به کاربران غیرقابل اعتماد برای اجرای دستورات با امتیازات بالا، صفحه‌بند را کاملاً غیرفعال نمایید.

این گزینه یک آرگومان بولی می‌پذیرد. هنگامی که روی درست تنظیم شود، «حالت امن» صفحه‌بند فعال می‌شود. در «حالت امن»، هنگام فراخوانی صفحه‌بند LESSSECURE=1 تنظیم خواهد شد، که به صفحه‌بند دستور می‌دهد دستوراتی را که فایل‌های جدید باز می‌کنند یا ایجاد می‌کنند یا زیرفرایندهای جدید آغاز می‌کنند غیرفعال کند. در حال حاضر فقط less(1) شناخته شده است که این متغیر را درک می‌کند و «حالت امن» را پیاده‌سازی می‌نماید.

هنگامی که روی نادرست تنظیم شود، هیچ محدودیتی بر صفحه‌بند اعمال نمی‌شود. تنظیم SYSTEMD_PAGERSECURE=0 یا حذف نکردن آن از متغیرهای محیطی به ارث رسیده ممکن است به کاربر اجازه دهد دستورات دلخواه را اجرا کند.

هنگامی که $SYSTEMD_PAGERSECURE تنظیم نشده باشد، ابزارهای systemd تلاش می‌کنند تا به طور خودکار تشخیص دهند که آیا «حالت امن» باید فعال شود و آیا صفحه‌بند از آن پشتیبانی می‌کند یا خیر. اگر UID مؤثر با مالک نشست ورود یکسان نباشد، به geteuid(2) و sd_pid_get_owner_uid(3) مراجعه کنید، یا هنگام اجرا تحت sudo(8) یا ابزارهای مشابه ($SUDO_UID تنظیم شده باشد [1]). در این موارد، SYSTEMD_PAGERSECURE=1 تنظیم می‌شود و صفحه‌بندهایی که پیاده‌سازی «حالت امن» در آن‌ها شناخته‌شده نیست اصلاً استفاده نخواهند شد. توجه داشته باشید که این تشخیص خودکار فقط متداول‌ترین سازوکارهای ارتقای امتیازات را پوشش می‌دهد و برای راحتی کار در نظر گرفته شده است. توصیه می‌شود صراحتاً $SYSTEMD_PAGERSECURE را تنظیم کرده یا صفحه‌بند را غیرفعال کنید.

توجه داشته باشید که اگر متغیرهای $SYSTEMD_PAGER یا $PAGER قرار است رعایت شوند، به جز برای غیرفعال کردن صفحه‌بند، $SYSTEMD_PAGERSECURE نیز باید تنظیم شده باشد.

$SYSTEMD_COLORS

یک آرگومان بولی، یا یک مقدار ویژه می‌پذیرد. به طور پیش‌فرض (تنظیم‌نشده)، systemd و ابزارهای مرتبط در صورت امکان از رنگ‌ها در خروجی خود استفاده خواهند کرد. اگر $COLORTERM روی "truecolor" یا "24bit" تنظیم شده باشد، رنگ‌های 24 بیتی فعال می‌شوند، در غیر این صورت 256 رنگ، مگر اینکه $NO_COLOR یا $TERM نشان دهد رنگ‌ها غیرفعال هستند.

true

مشابه تنظیم‌نشده، با این تفاوت که $NO_COLOR نادیده گرفته می‌شود.

false

خروجی تک‌رنگ خواهد بود.

"16", "256", "24bit"

همیشه به ترتیب از رنگ‌های پایه ۱۶ تایی ANSI، ۲۵۶ رنگ، یا رنگ ۲۴ بیتی استفاده می‌کند.

"auto-16", "auto-256", "auto-24bit"

از تعداد رنگ‌های مشخص‌شده، بر اساس $TERM و اینکه کنسول به چه چیزی متصل است، استفاده می‌کند.

$SYSTEMD_URLIFY

مقدار باید یک بولی باشد. کنترل می‌کند که آیا پیوندهای قابل کلیک در خروجی برای شبیه‌سازهای ترمینالی که از این قابلیت پشتیبانی می‌کنند تولید شود یا خیر. این گزینه را می‌توان برای لغو تصمیمی که systemd بر اساس $TERM و سایر شرایط می‌گیرد تعیین کرد.

systemd(1), systemctl(1), systemd-logind.service(8), logind.conf(5)

1.
توصیه می‌شود که سایر ابزارها در صورت لزوم $SUDO_UID را تنظیم و بررسی کنند و با آن به عنوان یک رابط مشترک رفتار نمایند.
systemd 261.2