SYSTEMD-ASK-PASSWORD(1) systemd-ask-password SYSTEMD-ASK-PASSWORD(1)

systemd-ask-password - درخواست گذرواژه یا عبارت عبور سیستمی از کاربر

systemd-ask-password [OPTIONS...] [MESSAGE]

systemd-ask-password می‌تواند برای درخواست تعاملی یک گذرواژه یا عبارت عبور (passphrase) از کاربر، با استفاده از یک اعلان پرسش مشخص‌شده در خط فرمان استفاده شود. هنگامی که از یک TTY اجرا شود، گذرواژه را در همان TTY درخواست کرده و آن را در خروجی استاندارد چاپ می‌کند. هنگامی که بدون TTY یا با --no-tty اجرا شود، از سازوکار پرس‌وجوی مبتنی بر عامل (agent-based) در سطح کل سیستم یا برای هر کاربر استفاده خواهد کرد که به کاربران فعال اجازه می‌دهد از طریق چندین عامل که در ادامه فهرست شده‌اند پاسخ دهند.

هدف این ابزار، درخواست گذرواژه‌های سراسری سیستم یا مربوط به هر کاربر است — نوع اول شامل گذرواژه‌هایی است که احتمالاً به یک حساب کاربری خاص وابسته نیستند. از جمله مثال‌ها می‌توان به این موارد اشاره کرد: بازگشایی قفل دیسک‌های سخت رمزنگاری‌شده هنگام اتصال یا در زمان بوت، و وارد کردن عبارت عبور گواهی SSL برای سرورهای وب و VPN.

عامل‌های موجود در سطح سیستم عبارتند از:

•یک عامل گذرواژه در زمان بوت که با استفاده از plymouth(8) از کاربر گذرواژه درخواست می‌کند،
•یک عامل گذرواژه در زمان بوت که گذرواژه را مستقیماً روی کنسول از کاربر می‌پرسد — systemd-ask-password-console.service(8)،
•عاملی که ورودی گذرواژه را از طریق پیام wall(1) درخواست می‌کند — systemd-ask-password-wall.service(8)،
•یک عامل TTY که به صورت موقت در هنگام فراخوانی‌های systemctl(1) ایجاد می‌شود،
•یک عامل خط فرمان که می‌تواند به صورت موقت برای پردازش درخواست‌های گذرواژه در صف اجرا شود — systemd-tty-ask-password-agent --query.

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

عامل‌های گذرواژه اضافی را می‌توان مطابق با مشخصات عامل گذرواژه systemd (systemd Password Agent Specification)[1] پیاده‌سازی کرد.

اگر گذرواژه روی یک TTY درخواست شود، کاربر می‌تواند کلید TAB را فشار دهد تا ستاره‌هایی که معمولاً به ازای هر نویسه تایپ‌شده نمایش داده می‌شوند مخفی شوند. فشردن کلید Backspace به عنوان نخستین کلید نیز همین اثر را خواهد داشت.

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

--icon=

یک نام آیکون را در کنار پرس‌وجوی گذرواژه مشخص می‌کند که ممکن است در تمام عامل‌هایی که از نمایش گرافیکی پشتیبانی می‌کنند استفاده شود. نام آیکون باید از مشخصات نام‌گذاری آیکون XDG (XDG Icon Naming Specification)[2] پیروی کند.

--id=

یک شناسه برای این پرس‌وجوی گذرواژه مشخص می‌کند. این شناسه به دلخواه قابل انتخاب است و امکان شناسایی درخواست‌ها توسط عامل‌های درگیر را فراهم می‌سازد. این شناسه باید شامل زیرسیستمی که پرس‌وجو را انجام می‌دهد و شیء خاصی که پرس‌وجو برای آن انجام می‌شود باشد. مثال: "--id=cryptsetup:/dev/sda5".

در نسخه 227 اضافه شد.

--keyname=

یک نام کلید در دسته‌کلید هسته (kernel keyring) را برای استفاده به عنوان حافظه نهان (cache) گذرواژه پیکربندی می‌کند. در صورت تنظیم، این ابزار تلاش خواهد کرد هر گذرواژه جمع‌آوری‌شده را در دسته‌کلید هسته مربوط به کاربر root به عنوان کلیدی با نام مشخص‌شده درج کند. اگر با --accept-cached ترکیب شود، همچنین تلاش خواهد کرد به جای درخواست فوری از کاربر، چنین گذرواژه‌های ذخیره‌شده‌ای را از کلید موجود در دسته‌کلید هسته بازیابی کند. با استفاده از این گزینه، می‌توان از دسته‌کلید هسته به عنوان یک حافظه نهان مؤثر استفاده کرد تا در صورتی که چندین شیء با گذرواژه یکسان بازگشایی می‌شوند، از درخواست مکرر گذرواژه از کاربران جلوگیری شود. برای کلید ذخیره‌شده مهلت زمانی 2.5 دقیقه تعیین می‌شود که پس از آن از دسته‌کلید هسته پاک خواهد شد. توجه داشته باشید که می‌توان چندین گذرواژه را تحت همان نام کلید ذخیره کرد، که در این صورت آنها به عنوان فهرستی از گذرواژه‌های جداشده با NUL ذخیره می‌شوند. از keyctl(1) برای دسترسی مستقیم به کلید ذخیره‌شده از طریق دسته‌کلید هسته استفاده کنید. مثال: "--keyname=cryptsetup"

در نسخه 227 اضافه شد.

--credential=

یک گواهی‌نامه/اعتبارنامه (credential) را برای خواندن گذرواژه از آن – در صورت وجود – پیکربندی می‌کند. این گزینه ممکن است در ارتباط با تنظیمات ImportCredential=، LoadCredential= و SetCredential= در فایل‌های واحد (unit files) استفاده شود. برای جزئیات به systemd.exec(5) مراجعه کنید. اگر مشخص نشود، به طور پیش‌فرض "password". است. این گزینه در صورتی که هیچ دایرکتوری اعتباری به برنامه ارسال نشود (یعنی $CREDENTIALS_DIRECTORY تنظیم نشده باشد) یا در صورتی که هیچ اعتباری با نام مشخص‌شده وجود نداشته باشد، هیچ اثری ندارد.

در نسخه 249 اضافه شد.

--timeout=

مهلت زمانی پرس‌وجو را بر حسب ثانیه مشخص می‌کند. مقدار پیش‌فرض 90s است. مهلت زمانی 0 به طور نامحدود منتظر می‌ماند.

--echo=yes|no|masked

نمایش یا بازتاب (echo) ورودی کاربر را کنترل می‌کند. یک مقدار بولی یا رشته ویژه "masked" را می‌پذیرد که پیش‌فرض حالت دوم است. در صورت فعال بودن، نویسه‌های تایپ‌شده عینا بازتاب داده می‌شوند که برای درخواست نام‌های کاربری و سایر داده‌های محافظت‌نشده مفید است. در صورت غیرفعال بودن، نویسه‌های تایپ‌شده به هیچ شکلی بازتاب داده نمی‌شوند و کاربر بازخوردی از ورودی خود دریافت نخواهد کرد. در صورت تنظیم روی "masked"، یک ستاره ("*") به ازای هر نویسه تایپ‌شده نمایش داده می‌شود. در این حالت، اگر کاربر کلید تب ("↹") را فشار دهد، بازتاب خاموش می‌شود. (همچنین، اگر کاربر بدون اینکه هیچ داده‌ای وارد کرده باشد کلید پس‌بر یا backspace ("⌫") را فشار دهد نیز بازتاب خاموش می‌شود).

در نسخه 249 اضافه شد.

--echo, -e

معادل --echo=yes، توضیحات بالا را ببینید.

در نسخه 217 اضافه شد.

--emoji=yes|no|auto

کنترل می‌کند که آیا در صورت اجازه دادن تنظیمات TTY، اعلان پرسش با ایموجی قفل و کلید (🔐) پیشوند شود یا خیر. مقدار پیش‌فرض "auto" است که به "yes" منتهی می‌شود، مگر اینکه --echo=yes داده شده باشد.

در نسخه 249 اضافه شد.

--no-tty

هرگز روی TTY فعلی درخواست گذرواژه نمی‌کند حتی اگر در دسترس باشد. همیشه از سیستم عامل‌ها (agents) استفاده می‌کند.

--accept-cached

در صورت استفاده، گذرواژه‌های ذخیره‌شده در حافظه نهان، یعنی گذرواژه‌هایی که قبلاً وارد شده‌اند را می‌پذیرد.

--multiple

هنگامی که همراه با --accept-cached استفاده شود، چندین گذرواژه را می‌پذیرد. این کار یک گذرواژه در هر خط خروجی می‌دهد.

--no-output

گذرواژه‌ها را در خروجی استاندارد چاپ نمی‌کند. این ویژگی زمانی مفید است که بخواهید گذرواژه‌ای را با --keyname= در دسته‌کلید هسته ذخیره کنید اما نخواهید روی صفحه نمایش یا در لاگ‌ها نشان داده شود.

در نسخه 230 اضافه شد.

-n

به طور پیش‌فرض، هنگامی که گذرواژه دریافت شده در خروجی استاندارد نوشته می‌شود، یک نویسه خط جدید (newline) به انتهای آن اضافه می‌شود. این رفتار را می‌توان با سوییچ -n مشابه سوییچی با همین نام در دستور echo(1) غیرفعال کرد.

در نسخه 249 اضافه شد.

--user, --system

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

در نسخه 257 اضافه شد.

-h, --help

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

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

systemd(1), systemd-ask-password-console.service(8), systemd-tty-ask-password-agent(1), keyctl(1), plymouth(8), wall(1)

1.
مشخصات عامل گذرواژه systemd (systemd Password Agent Specification)
2.
مشخصات نام‌گذاری آیکون XDG (XDG Icon Naming Specification)
systemd 261.2