| SYSUSERS.D(5) | sysusers.d | SYSUSERS.D(5) |
نام (NAME)
sysusers.d - تخصیص اعلانی کاربران و گروههای سیستمی
خلاصه دستور (SYNOPSIS)
#Type Name ID GECOS Home directory Shell u user_name uid "User Description" /home/dir /path/to/shell u user_name uid:gid "User Description" /home/dir /path/to/shell u user_name /file/owned/by/user "User Description" /home/dir /path/to/shell g group_name gid g group_name /file/owned/by/group m user_name group_name r - lowest-highest
توضیحات (DESCRIPTION)
systemd-sysusers از فایلهای دایرکتوری sysusers.d برای ایجاد کاربران و گروههای سیستمی و افزودن کاربران به گروهها در زمان نصب بسته یا هنگام بوت استفاده میکند. این ابزار تنها برای تخصیص کاربران و گروههای سیستمی قابل استفاده است و برای ایجاد کاربران و گروههای غیرسیستمی (یعنی کاربران عادی و "انسانی") مناسب نیست، زیرا مستقیماً به /etc/passwd و /etc/group دسترسی پیدا میکند و پایگاههای داده پیچیدهتر کاربران، مانند هر پایگاه داده مبتنی بر NIS یا LDAP را دور میزند.
دایرکتوریهای پیکربندی و اولویت (CONFIGURATION DIRECTORIES AND PRECEDENCE)
نام هر فایل پیکربندی باید به سبک package.conf یا package-part.conf باشد. حالت دوم باید زمانی استفاده شود که بخواهید بازنویسی آسان صرفاً این بخش از پیکربندی امکانپذیر باشد.
فایلهای موجود در /etc/sysusers.d فایلهای همنام در /usr/lib/sysusers.d و /run/sysusers.d را بازنویسی میکنند. فایلهای موجود در /run/sysusers.d فایلهای همنام در /usr/lib/sysusers.d را بازنویسی میکنند. بستهها باید فایلهای پیکربندی خود را در /usr/lib/sysusers.d نصب کنند. فایلهای موجود در /etc/sysusers.d برای مدیر محلی سیستم رزرو شدهاند، که میتواند از این سازوکار برای بازنویسی فایلهای پیکربندی نصبشده توسط بستههای ارائهدهنده (توزیعکننده) استفاده کند. تمام فایلهای پیکربندی بدون توجه به دایرکتوری محل قرارگیریشان، بر اساس نام فایل به ترتیب واژهنگاری (حروف الفبا) مرتب میشوند. اگر چندین فایل مسیر یکسانی را مشخص کنند، ورودی موجود در فایلی که نام آن از نظر واژهنگاری زودتر میآید اعمال خواهد شد. تمام ورودیهای بعدی برای همان نامهای کاربر و گروه به عنوان هشدار ثبت میشوند.
اگر مدیر سیستم بخواهد فایل پیکربندی ارائهشده توسط توزیعکننده را غیرفعال کند، روش توصیهشده قرار دادن یک پیوند نمادین (symlink) به /dev/null در /etc/sysusers.d/ با همان نام فایل است.
فرمت فایل پیکربندی (CONFIGURATION FILE FORMAT)
فرمت فایل به صورت یک خط به ازای هر کاربر یا گروه است که شامل نام، شناسه (ID)، توضیحات فیلد GECOS، دایرکتوری خانگی و پوسته (شل) ورود است:
#Type Name ID GECOS Home directory Shell u! httpd 404 "HTTP User" u! _authd /usr/bin/authd "Authorization user" u! postgres - "Postgresql Database" /var/lib/pgsql /usr/libexec/postgresdb g input - - m _authd input u root 0 "Superuser" /root /bin/zsh r - 500-900
خطوط خالی و خطوطی که با نویسه "#" شروع میشوند نادیده گرفته میشوند و میتوان از آنها برای یادداشتگذاری (کامنت) استفاده کرد.
نوع (Type)
نوع شامل یک حرف تکنویسهای است. انواع خطوط زیر پشتیبانی میشوند:
u
افزوده شده در نسخه 215.
نوع u میتواند با یک علامت تعجب ("!u") پسوندگذاری شود تا یک حساب کاربری کاملاً قفلشده ایجاد کند. این کار توصیه میشود، زیرا معمولاً نباید اجازه ورود به کاربران سیستمی داده شود. با یا بدون علامت تعجب، یک گذرواژه نامعتبر تنظیم میشود. برای "!u"، حساب کاربری همچنین قفل میشود، که برای روشهای احراز هویت غیر از گذرواژه، مانند SSH یا موارد مشابه تفاوت ایجاد میکند.
افزوده شده در نسخه 257.
g
افزوده شده در نسخه 215.
m
افزوده شده در نسخه 215.
r
افزوده شده در نسخه 216.
نام (Name)
فیلد نام، نام کاربر یا گروه را مشخص میکند. نام مشخصشده باید صرفاً شامل نویسههای a-z، A-Z، 0-9، "_" و "-" باشد، به جز اولین نویسه که باید یکی از a-z، A-Z یا "_" باشد (یعنی اعداد و "-" به عنوان اولین نویسه مجاز نیستند). نام کاربر/گروه باید حداقل یک نویسه و حداکثر 31 نویسه داشته باشد.
برای جزئیات بیشتر درباره نحو نامهای کاربر/گروه، به نحو نامهای کاربر/گروه (User/Group Name Syntax)[1] مراجعه کنید.
اکیداً توصیه میشود نامهای کاربر و گروهی را انتخاب کنید که احتمال تداخل آنها با کاربران عادی ایجادشده توسط مدیر سیستم کم باشد. یک روش خوب برای تضمین این امر، افزودن پیشوند خط زیرین (_) به ابتدای همه نامهای سیستم و گروه و پرهیز از نامهای بیش از حد عمومی است.
برای خطوط m، این فیلد باید حاوی نام کاربری باشد که میخواهید به یک گروه اضافه کنید.
برای خطوط از نوع r، این فیلد باید روی "-" تنظیم شود.
شناسه (ID)
برای u و g، شناسه عددی 32 بیتی UID یا GID کاربر/گروه است. از شناسههای 65535 یا 4294967295 استفاده نکنید، زیرا این شناسهها معانی جایگزین ویژهای دارند. برای تخصیص خودکار UID/GID برای کاربر یا گروه، مقدار "-" را مشخص کنید (این کار اکیداً توصیه میشود مگر اینکه استفاده از یک UID یا GID خاص کاملاً ضروری باشد). در غیر این صورت، یک مسیر مطلق در سیستم فایل مشخص کنید. در این حالت، UID/GID از مالک/گروه آن مسیر خوانده میشود. این قابلیت برای ایجاد کاربرانی مفید است که UID/GID آنها با مالکان فایلهای از پیش موجود (مانند باینریهای SUID یا SGID) مطابقت دارد. نحوهای "uid:gid" و "uid:groupname" پشتیبانی میشوند تا امکان ایجاد کاربران با گروههای اصلی مشخص فراهم شود. گروه مشخصشده باید صریحاً ایجاد شود یا از قبل وجود داشته باشد. مشخص کردن "-" برای UID در این نحوها نیز پشتیبانی میشود.
برای خطوط m، این فیلد باید حاوی نام گروهی باشد که میخواهید کاربر را به آن اضافه کنید.
برای خطوط از نوع r، این فیلد باید روی یک محدوده UID/GID در قالب "FROM-TO" تنظیم شود که هر دو مقدار به صورت اعداد دهدهی ASCII قالببندی شدهاند. در غیر این صورت، میتوان یک UID/GID تکی را که به صورت اعداد دهدهی ASCII قالببندی شده است مشخص کرد.
توضیحات (GECOS)
یک رشته کوتاه و توصیفی برای کاربرانی که باید ایجاد شوند، محصور در علامتهای نقلقول. توجه داشته باشید که این فیلد نباید شامل دونقطه (:) باشد.
صرفاً برای خطوط از نوع u اعمال میشود و در غیر این صورت باید خالی رها شود (یا "-").
دایرکتوری خانگی (Home Directory)
دایرکتوری خانگی برای یک کاربر سیستمی جدید. در صورت حذف، پیشفرض دایرکتوری ریشه (root) خواهد بود.
صرفاً برای خطوط از نوع u اعمال میشود و در غیر این صورت باید خالی رها شود (یا "-"). توصیه میشود این مقدار حذف شود، مگر اینکه نرمافزار صریحاً نیازمند تنظیم یک دایرکتوری خانگی باشد.
systemd-sysusers تنها رکورد دایرکتوری خانگی را در پایگاه داده کاربر تنظیم میکند. برای ایجاد واقعی دایرکتوری، افزودن یک قطعهپیکربندی مربوطه در tmpfiles.d(5) را در نظر بگیرید.
پوسته (Shell)
پوسته (شل) ورود کاربر. در صورت عدم تعیین، روی /usr/sbin/nologin تنظیم خواهد شد، مگر اینکه UID کاربر 0 باشد، که در این صورت از /bin/sh استفاده خواهد شد.
صرفاً برای خطوط از نوع u اعمال میشود و در غیر این صورت باید خالی رها شود (یا "-"). توصیه میشود این مقدار حذف شود، مگر اینکه پوسته متفاوتی از /usr/sbin/nologin باید استفاده شود.
مشخصکنندهها (SPECIFIERS)
مشخصکنندهها میتوانند در فیلدهای "Name"، "ID"، "GECOS"، "Home directory" و "Shell" استفاده شوند. یک مشخصکننده ناشناخته یا غیرقابلتفکیک به عنوان پیکربندی نامعتبر در نظر گرفته میشود. بسطهای زیر شناختهشده هستند:
جدول 1. مشخصکنندههای موجود
| مشخصکننده | مفهوم | جزئیات |
| "%a" | معماری | یک رشته کوتاه که معماری سیستم محلی را مشخص میکند. رشتهای مانند x86، x86-64 یا arm64. برای فهرست کامل، به معماریهای تعریفشده برای ConditionArchitecture= در systemd.unit(5) مراجعه کنید. |
| "%A" | نسخه ایمیج سیستمعامل | شناسه نسخه ایمیج سیستمعاملِ سیستم در حال اجرا، همانطور که از فیلد IMAGE_VERSION= در /etc/os-release خوانده میشود. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل میشود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید. |
| "%b" | شناسه بوت | شناسه بوت سیستم در حال اجرا، قالببندیشده به صورت رشته. برای اطلاعات بیشتر به random(4) مراجعه کنید. |
| "%B" | شناسه ساخت سیستمعامل | شناسه ساخت سیستمعاملِ سیستم در حال اجرا، همانطور که از فیلد BUILD_ID= در /etc/os-release خوانده میشود. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل میشود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید. |
| "%H" | نام میزبان | نام میزبان سیستم در حال اجرا. |
| "%l" | نام کوتاه میزبان | نام میزبان سیستم در حال اجرا، کوتاهشده در اولین نقطه برای حذف هرگونه مؤلفه دامنه. |
| "%m" | شناسه ماشین | شناسه ماشینِ سیستم در حال اجرا، قالببندیشده به صورت رشته. برای اطلاعات بیشتر به machine-id(5) مراجعه کنید. |
| "%M" | شناسه ایمیج سیستمعامل | شناسه ایمیج سیستمعاملِ سیستم در حال اجرا، همانطور که از فیلد IMAGE_ID= در /etc/os-release خوانده میشود. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل میشود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید. |
| "%o" | شناسه سیستمعامل | شناسه سیستمعاملِ سیستم در حال اجرا، همانطور که از فیلد ID= در /etc/os-release خوانده میشود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید. |
| "%q" | نام زیبای میزبان | نام زیبای میزبانِ (pretty hostname) سیستم در حال اجرا، همانطور که از فیلد PRETTY_HOSTNAME= در /etc/machine-info خوانده میشود. اگر تنظیم نشده باشد، به نام کوتاه میزبان تبدیل میشود. برای اطلاعات بیشتر به machine-info(5) مراجعه کنید. |
| "%T" | دایرکتوری فایلهای موقت | این یا /tmp است یا مسیری که "$TMPDIR"، "$TEMP" یا "$TMP" روی آن تنظیم شدهاند. (توجه داشته باشید که دایرکتوری ممکن است بدون خط مورب انتهایی مشخص شود.) |
| "%v" | انتشار هسته | همانند خروجی دستور uname -r. |
| "%V" | دایرکتوری برای فایلهای موقت بزرگتر و پایدار | این یا /var/tmp است یا مسیری که "$TMPDIR"، "$TEMP" یا "$TMP" روی آن تنظیم شدهاند. (توجه داشته باشید که دایرکتوری ممکن است بدون خط مورب انتهایی مشخص شود.) |
| "%w" | شناسه نسخه سیستمعامل | شناسه نسخه سیستمعاملِ سیستم در حال اجرا، همانطور که از فیلد VERSION_ID= در /etc/os-release خوانده میشود. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل میشود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید. |
| "%W" | شناسه گونه سیستمعامل | شناسه گونهٔ (واریانت) سیستمعاملِ سیستم در حال اجرا، همانطور که از فیلد VARIANT_ID= در /etc/os-release خوانده میشود. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل میشود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید. |
| "%%" | علامت تکدرصد | از "%%" به جای "%" برای مشخص کردن یک علامت تکدرصد استفاده کنید. |
خاصیت بیاثر بودن تکرار (IDEMPOTENCE)
توجه
داشته
باشید که
systemd-sysusers در
صورتی که
کاربران یا
گروههای
مشخصشده
از قبل وجود
داشته
باشند یا
کاربران
عضو
گروههای
مشخصشده
باشند، هیچ
کاری انجام
نخواهد
داد؛
بنابراین
معمولاً
دلیلی برای
بازنویسی
پیکربندی
ارائهدهنده
(توزیعکننده)
در sysusers.d وجود
ندارد، مگر
اینکه
بخواهید از
ایجاد
کاربران یا
گروههای
خاصی
جلوگیری
کنید.
همچنین ببینید (SEE ALSO)
نکات (NOTES)
- 1.
- نحو نامهای کاربر/گروه
| systemd 261.2 |