از localectl
میتوان
برای
پرسوجو و
تغییر
تنظیمات
محلی (locale) و
پیکربندی
صفحهکلید
سیستم
استفاده
کرد. این
ابزار با
systemd-localed(8) ارتباط
برقرار
میکند تا
فایلهایی
مانند /etc/locale.conf و
/etc/vconsole.conf را اصلاح
کند.
تنظیمات
محلی
سیستم،
تنظیمات
زبان
سرویسهای
سیستمی و
رابط
کاربری قبل
از ورود
کاربر
(مانند مدیر
نمایش)، و
همچنین
حالت
پیشفرض
برای
کاربران پس
از ورود به
سیستم را
کنترل
میکند.
تنظیمات
صفحهکلید،
چیدمان
صفحهکلید
مورد
استفاده در
کنسول متنی
و رابط
کاربری
گرافیکی
قبل از ورود
کاربر
(مانند مدیر
نمایش)، و
همچنین
حالت
پیشفرض
برای
کاربران پس
از ورود به
سیستم را
کنترل
میکند.
توجه
داشته
باشید
تغییراتی
که با
استفاده از
این ابزار
انجام
میشوند
ممکن است
برای اعمال
شدن در
مراحل
اولیه بوت
سیستم
نیازمند
بازسازی initrd
باشند.
ساختار initrd
بهطور
خودکار
توسط localectl
بازسازی
نمیشود؛
این کار
باید
بهصورت
دستی انجام
شود که
معمولاً با
نصب مجدد
بسته هسته
(کرنل) توزیع
صورت
میگیرد.
توجه
داشته
باشید که از
systemd-firstboot(1)
میتوان
برای
مقداردهی
اولیه
تنظیمات
محلی سیستم
برای
ایمیجهای
سیستمی
مانتشده
(اما
بوتنشده)
استفاده
کرد.
دستورات
زیر
پشتیبانی
میشوند:
status
تنظیمات
فعلی مربوط
به محلی
سیستم و
نگاشت
صفحهکلید
را نمایش
میدهد. اگر
هیچ دستوری
مشخص نشود،
این دستور
به عنوان
حالت
پیشفرض
ضمنی در نظر
گرفته
میشود.
در نسخه
۱۹۵ اضافه
شد.
set-locale LOCALE، set-locale
VARIABLE=LOCALE...
تنظیم
محلی سیستم.
این دستور
یک لوکال
مانند "en_US.UTF-8"،
یا یک یا چند
انتساب
لوکال
مانند "
LANG=de_DE.utf8"،
"
LC_MESSAGES=en_GB.utf8" و غیره
را دریافت
میکند. اگر
یک لوکال
بدون نام
متغیر
ارائه شود،
متغیر
لوکال "LANG="
تنظیم
خواهد شد.
برای
جزئیات در
مورد
تنظیمات
موجود و
معانی
آنها به
locale(7)
مراجعه
کنید. برای
مشاهده
فهرست
لوکالهای
موجود از
list-locales
استفاده
کنید (به زیر
مراجعه
کنید).
در نسخه
۱۹۵ اضافه
شد.
list-locales
فهرست
کردن
لوکالهای
موجود که
برای
پیکربندی
با
set-locale مفید
هستند.
در نسخه
۱۹۵ اضافه
شد.
set-keymap MAP [TOGGLEMAP]
تنظیم
نگاشت
صفحهکلید
سیستم برای
کنسول و X11.
این دستور
نام یک
نگاشت
(مانند «de» یا
«us») و در صورت
تمایل نام
دومی را
برای تعریف
نگاشت
تغییر
وضعیت (toggle)
صفحهکلید
دریافت
میکند. مگر
اینکه
گزینه
--no-convert
داده شده
باشد،
تنظیم
انتخابشده
همچنین پس
از تبدیل به
نزدیکترین
نگاشت
صفحهکلید
منطبق در X11،
به عنوان
نگاشت
پیشفرض
صفحهکلید
سیستم برای X11
نیز اعمال
میشود.
برای
مشاهده
فهرست
نگاشتهای
موجود
صفحهکلید
از
list-keymaps
استفاده
کنید (به زیر
مراجعه
کنید).
در نسخه
۱۹۵ اضافه
شد.
list-keymaps
فهرست
کردن
نگاشتهای
صفحهکلید
موجود برای
کنسول، که
برای
پیکربندی
با
set-keymap مفید
هستند.
در نسخه
۱۹۵ اضافه
شد.
set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]]
تنظیم
نگاشت
پیشفرض
صفحهکلید
سیستم برای X11
و کنسول
مجازی. این
دستور نام
یک چیدمان
صفحهکلید
(مانند "de" یا
"us")، و در
صورت تمایل
یک مدل (model)،
گونه (variant) و
گزینهها (options)
را دریافت
میکند؛
برای
جزئیات به
kbd(4) مراجعه
کنید. مگر
اینکه
گزینه
--no-convert
ارسال شده
باشد،
تنظیم
انتخابشده
همچنین پس
از تبدیل به
نزدیکترین
نگاشت
منطبق
کنسول، به
عنوان
نگاشت
صفحهکلید
کنسول
سیستم نیز
اعمال
میشود.
در نسخه
۱۹۵ اضافه
شد.
list-x11-keymap-models،
list-x11-keymap-layouts، list-x11-keymap-variants
[LAYOUT]، list-x11-keymap-options
فهرست
کردن
مدلها،
چیدمانها،
گونهها و
گزینههای
موجود
نگاشت کلید
در X11 که برای
پیکربندی
با
set-keymap مفید
هستند.
دستور
list-x11-keymap-variants
میتواند
بهصورت
اختیاری یک
پارامتر layout
دریافت کند
تا خروجی را
به
گونههای
مناسب برای
آن چیدمان
خاص محدود
کند.
در نسخه
۲۰۱ اضافه
شد.
گزینههای
زیر
پشتیبانی
میشوند:
-l، --full
خروجی را
کوتاه
(بیضوی/ellipsize) نکن.
در نسخه
۲۵۷ اضافه
شد.
--no-convert
اگر
دستور
set-keymap یا
set-x11-keymap اجرا
شود و این
گزینه داده
شده باشد،
نگاشت کلید
به ترتیب از
کنسول به X11 یا
از X11 به کنسول
تبدیل
نخواهد شد.
در نسخه
۱۹۵ اضافه
شد.
-H، --host=
اجرای
عملیات از
راه دور.
برای
اتصال، نام
میزبان (hostname) یا
ترکیبی از
نام کاربری
و نام
میزبان که
با "@" از هم
جدا
شدهاند را
مشخص کنید.
همچنین
میتوان به
انتهای نام
میزبان
شماره
درگاهی که SSH
روی آن گوش
میدهد را
با علامت ":"
و سپس نام
کانتینر را
با علامت "/"
افزود که
مستقیماً
به یک
کانتینر
خاص در
میزبان
مشخصشده
متصل
میشود. این
کار از SSH برای
ارتباط با
نمونه مدیر
ماشین راه
دور
استفاده
میکند.
نامهای
کانتینرها
را میتوان
با machinectl -H HOST
مشاهده کرد.
نشانیهای IPv6
باید داخل
قلاب (براکت)
قرار
گیرند.
-M، --machine=
اجرای
عملیات روی
یک کانتینر
محلی. نام
کانتینری
که
میخواهید
به آن متصل
شوید را
مشخص کنید؛
به عنوان
گزینه
اختیاری
میتوان
پیشوند نام
کاربر
همراه با
نویسه
جداکننده "@"
را قبل از آن
قرار داد.
اگر رشته
خاص ".host"
بهجای نام
کانتینر
استفاده
شود، اتصال
به سیستم
محلی
برقرار
میشود (که
برای اتصال
به گذرگاه
کاربری یک
کاربر خاص
مفید است: "--user
--machine=lennart@.host"). اگر
ساختار "@"
استفاده
نشود،
اتصال با
دسترسی
کاربر ریشه
(root) برقرار
میشود. در
صورت
استفاده از
ساختار "@"
میتوان
سمت چپ یا
راست آن را
حذف کرد (اما
نه هر دو را)
که در این
حالت نام
کاربری
محلی و ".host"
بهصورت
ضمنی در نظر
گرفته
میشوند.
--no-ask-password
عدم
درخواست
گذرواژه از
کاربر برای
احراز هویت
در عملیات
دارای
دسترسی
ویژه.
-h، --help
چاپ یک
متن
راهنمای
کوتاه و
خروج.
--version
چاپ رشته
کوتاه
مربوط به
نسخه
برنامه و
خروج.
--no-pager
عدم
ارسال
خروجی به
صفحهبندیکننده
(pager).
$SYSTEMD_LOG_LEVEL
حداکثر
سطح ثبت
وقایع (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
یک مقدار
بولی. اگر true
باشد،
پیامهای
نوشتهشده
روی tty بر اساس
اولویت
رنگآمیزی
میشوند.
این تنظیم
تنها زمانی
کاربرد
دارد که
پیامها
مستقیماً
روی
ترمینال
نوشته
شوند، زیرا
journalctl(1) و سایر
ابزارهای
نمایش
گزارشها،
پیامها را
خودبهخود
بر اساس سطح
گزارش رنگی
میکنند.
$SYSTEMD_LOG_TIME
یک مقدار
بولی. اگر true
باشد،
پیامهای
ثبت کنسول
با یک برچسب
زمانی
پیشوندگذاری
میشوند.
این تنظیم
تنها زمانی
مفید است که
پیامها
مستقیماً
روی
ترمینال یا
در یک فایل
نوشته
شوند، زیرا
journalctl(1) و سایر
ابزارهای
نمایش
گزارشها،
برچسبهای
زمانی را بر
اساس
فرادادههای
مدخل به
خودی خود
الصاق
میکنند.
$SYSTEMD_LOG_LOCATION
یک مقدار
بولی. اگر true
باشد،
پیامها با
نام فایل و
شماره خط در
کد منبع که
پیام از آن
سرچشمه
گرفته است
پیشوندگذاری
میشوند.
توجه
داشته
باشید که
محل وقوع
لاگ
معمولاً به
عنوان
فراداده به
مدخلهای
ژورنال
ضمیمه
میشود؛ با
این حال،
درج مستقیم
آن در متن
پیام
میتواند
هنگام
عیبیابی
برنامهها
سودمند
باشد.
$SYSTEMD_LOG_TID
یک مقدار
بولی. اگر true
باشد،
پیامها با
شناسه عددی
ریسه فعلی (TID)
پیشوندگذاری
میشوند.
توجه
داشته
باشید که
این
اطلاعات در
هر حال به
عنوان
فراداده به
مدخلهای
ژورنال
ضمیمه
میشود. با
این حال،
درج مستقیم
آن در متن
پیام
میتواند
هنگام
اشکالزدایی
برنامهها
سودمند
باشد.
$SYSTEMD_LOG_TARGET
مقصد
پیامهای
ثبت وقایع.
یکی از
موارد زیر:
console (ثبت در tty
متصلشده)،
console-prefixed (ثبت در tty
متصل اما
همراه با
پیشوندهایی
شامل کد سطح
لاگ و «facility»،
به
syslog(3)
مراجعه
کنید)،
kmsg
(ثبت در بافر
حلقوی
گزارشهای
کرنل)،
journal
(ثبت در
ژورنال)،
journal-or-kmsg (ثبت در
ژورنال در
صورت موجود
بودن،
وگرنه در kmsg)،
auto (تشخیص
خودکار
مقصد مناسب
گزارشگیری،
حالت
پیشفرض)،
null
(غیرفعال
کردن خروجی
ثبت وقایع).
$SYSTEMD_LOG_RATELIMIT_KMSG
آیا
ارسال
پیامها به kmsg
محدودسازی
نرخ (rate limit) شود
یا خیر. یک
مقدار بولی
میپذیرد.
پیشفرض "true"
است. در صورت
غیرفعال
شدن، systemd
پیامهای
نوشتهشده
به kmsg را
محدود
نمیکند.
$SYSTEMD_PAGER، $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
بازنویسی
مجموعه
نویسههای
ارسالشده
به
less (بهطور
پیشفرض
"utf-8"، اگر
مشخص شود
ترمینال
فراخوان با
UTF-8 سازگار
است).
توجه
داشته
باشید که
تنظیم
متغیر
محیطی
معمولی $LESSCHARSET
هیچ تأثیری
بر
فراخوانیهای
less توسط
ابزارهای systemd
ندارد.
$SYSTEMD_PAGERSECURE
دستورات
صفحهبندیکننده
متداول
مانند
less(1)،
علاوه بر
«صفحهبندی»
(یعنی
پیمایش در
خروجی)، از
باز کردن یا
نوشتن در
فایلهای
دیگر و
اجرای
دستورات
دلخواه شل
نیز
پشتیبانی
میکنند.
هنگامی که
دستورات با
اختیارات
ارتقایافته
اجرا
میشوند
(مثلاً تحت
sudo(8) یا
pkexec(1))،
صفحهبندیکننده
به یک مرز
امنیتی
تبدیل
میشود.
باید دقت
شود که تنها
از
برنامههایی
با
عملکردهای
کاملاً
محدود به
عنوان
صفحهبندیکننده
استفاده
شود و
قابلیتهای
تعاملی
ناخواسته
مانند باز
کردن یا
ایجاد
فایلهای
جدید یا
راهاندازی
زیرپردازهها
مجاز نباشد.
«حالت امن»
(secure mode) برای
صفحهبندیکننده
میتواند
مطابق شرح
زیر فعال
شود،
در
صورتی که
صفحهبندیکننده
از آن
پشتیبانی
کند (بیشتر
صفحهبندیکنندهها
با در نظر
گرفتن این
موضوع
نوشته
نشدهاند).
توصیه
میشود
هنگام
اجازه دادن
به کاربران
غیرقابل
اعتماد
برای اجرای
دستورات با
اختیارات
بالا،
«حالت امن»
را صراحتاً
فعال کنید
یا با
استفاده از
گزینه
--no-pager یا
تنظیم
PAGER=cat
صفحهبندیکننده
را کاملاً
غیرفعال
نمایید.
این گزینه
یک آرگومان
بولی
میپذیرد.
هنگامی که
مقدار true
تنظیم شود،
«حالت امن»
صفحهبندیکننده
فعال
میشود. در
«حالت
امن»،
متغیر LESSSECURE=1
هنگام
فراخوانی
صفحهبندیکننده
تنظیم
خواهد شد که
به آن دستور
میدهد
دستوراتی
که
فایلهای
جدید را باز
یا ایجاد
کرده یا
زیرپردازههای
جدید اجرا
میکنند،
غیرفعال
کند. در حال
حاضر تنها
less(1) شناخته
شده است که
این متغیر
را درک کرده
و «حالت
امن» را
پیادهسازی
میکند.
هنگامی که
مقدار false
تنظیم شود،
هیچ
محدودیتی
بر
صفحهبندیکننده
اعمال
نمیشود.
تنظیم 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"
تنظیم شده
باشد،
رنگهای ۲۴
بیتی فعال
خواهند شد،
در غیر این
صورت ۲۵۶
رنگ فعال
میشود،
مگر اینکه
$NO_COLOR یا
$TERM
نشان دهند
که رنگها
غیرفعال
هستند.
true
همانند
حالت
تنظیمنشده،
با این
تفاوت که $NO_COLOR
نادیده
گرفته
میشود.
false
خروجی
تکرنگ
(سیاه و سفید)
خواهد بود.
"16"، "256"،
"24bit"
همیشه به
ترتیب از ۱۶
رنگ پایه ANSI،
۲۵۶ رنگ یا
رنگهای ۲۴
بیتی
استفاده
کن.
"auto-16"، "auto-256"،
"auto-24bit"
استفاده
از تعداد
رنگهای
دادهشده،
بسته به $TERM و
آنچه کنسول
به آن متصل
است.
$SYSTEMD_URLIFY
مقدار
باید یک
بولی باشد.
مشخص
میکند که
آیا در
شبیهسازهای
ترمینالی
که از
پیوندهای
قابل کلیک
پشتیبانی
میکنند،
پیوند
ایجاد شود
یا خیر.
میتوان
این متغیر
را برای لغو
تصمیمی که
systemd بر اساس $TERM
و شرایط
دیگر
میگیرد
مشخص نمود.