.\" Automatically generated from an mdoc input file. Do not edit. .\" Automatically generated from the sudoreplay.mdoc.in file. Do not edit. .\" .\" SPDX-License-Identifier: ISC .\" .\" Copyright (c) 2009-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .TH "SUDOREPLAY" "8" "January 16, 2023" "Sudo 1.9.17p2" "راهنمای مدیر سیستم (System Manager's Manual)" .nh .if n .ad l .SH "نام (NAME)" sudoreplay \- بازپخش گزارشهای ثبت نشست در sudo .SH "خلاصه دستور (SYNOPSIS)" .HP 11n \fBsudoreplay\fR [\fB\-FhnRS\fR] [\fB\-d\fR\ \fIdir\fR] [\fB\-f\fR\ \fIfilter\fR] [\fB\-m\fR\ \fInum\fR] [\fB\-s\fR\ \fInum\fR] ID[\fI@offset\fR] .HP 11n \fBsudoreplay\fR [\fB\-h\fR] [\fB\-d\fR\ \fIdir\fR] \fB\-l\fR [search\ expression] .SH "توضیحات (DESCRIPTION)" ابزار \fBsudoreplay\fR گزارش‌های خروجی ایجاد شده توسط \fBsudo\fR را بازپخش کرده یا فهرست می‌کند. هنگام بازپخش، \fBsudoreplay\fR می‌تواند نشست را به صورت بی‌درنگ (real-time) پخش کند، یا سرعت بازپخش بر اساس گزینه‌های خط فرمان تنظیم شود (سریع‌تر یا کندتر). .PP شناسه \fIID\fR باید یک دنباله شش‌نویسه‌ای از ارقام و حروف بزرگ انگلیسی باشد (مانند \(lq0100A5\(rq) یا یک نام مسیر (path name). همچنین \fIID\fR می‌تواند شامل پسوند اختیاری \fI@offset\fR باشد که برای شروع بازپخش از یک آفست زمانی مشخص به کار می‌رود. مقدار \fI@offset\fR به صورت عددی بر حسب ثانیه از ابتدای نشست همراه با کسر اعشاری اختیاری مشخص می‌شود. .PP نام‌های مسیر می‌توانند نسبت به دایرکتوری گزارش‌های ورودی/خروجی \fI/var/log/sudo-io\fR باشند (مگر اینکه توسط گزینه \fB\-d\fR بازنویسی شود) یا یک مسیر کامل باشند که با نویسه \(oq/\(cq آغاز می‌شود. هنگامی که دستوری از طریق \fBsudo\fR با فعال بودن \fIlog_output\fR در فایل \fIsudoers\fR اجرا می‌شود، یک رشته \(lqTSID=ID\(rq از طریق syslog(3) یا در فایل گزارش \fBsudo\fR ثبت می‌شود. همچنین می‌توان \fIID\fR را با استفاده از حالت فهرست‌گیری (list mode) در \fBsudoreplay\fR تعیین کرد. .PP در حالت فهرست‌گیری، \fBsudoreplay\fR می‌تواند برای یافتن شناسه یک نشست بر اساس معیارهای متعددی از جمله کاربر، tty، یا دستور اجرا شده استفاده شود. .PP در حالت بازپخش، اگر ورودی و خروجی استاندارد به یک ترمینال متصل باشند و گزینه \fB\-n\fR مشخص نشده باشد، \fBsudoreplay\fR به صورت تعاملی کار خواهد کرد. در حالت تعاملی، \fBsudoreplay\fR تلاش می‌کند اندازه ترمینال را با اندازه نشست مطابقت دهد و مستقیماً روی ترمینال بنویسد (همه ترمینال‌ها از این قابلیت پشتیبانی نمی‌کنند). علاوه بر این، صفحه کلید را بررسی کرده و بر اساس کلیدهای زیر عمل می‌کند: .TP 14n \(oq\fR\en\fR\(cq یا \(oq\fR\er\fR\(cq پرش به رویداد بازپخش بعدی؛ برای مکث‌های طولانی مفید است. .TP 14n \(oq\fR\ \fR\(cq (فاصله / space) توقف موقت خروجی؛ فشردن هر کلیدی بازپخش را ادامه می‌دهد. .TP 14n \(oq<\(cq کاهش سرعت بازپخش به نصف. .TP 14n \(oq>\(cq دو برابر کردن سرعت بازپخش. .PP نشست را می‌توان از طریق control-C متوقف کرد. پس از پایان نشست، اگر اندازه ترمینال در طول بازپخش تغییر کرده باشد، به اندازه اولیه خود بازگردانده می‌شود. .PP گزینه‌ها به شرح زیر هستند: .SH "گزینهها (OPTIONS)" .TP 8n \fB\-d\fR \fIdir\fR, \fB\--directory\fR=\fIdir\fR ذخیره گزارش‌های نشست در دایرکتوری \fIdir\fR به جای دایرکتوری پیش‌فرض، \fI/var/log/sudo-io\fR. .TP 8n \fB\-f\fR \fIfilter\fR, \fB\--filter\fR=\fIfilter\fR انتخاب اینکه کدام نوع(های) ورودی/خروجی نمایش داده شوند. به طور پیش‌فرض، \fBsudoreplay\fR خروجی استاندارد دستور، خطای استاندارد و خروجی tty را نمایش می‌دهد. آرگومان \fIfilter\fR یک فهرست جداشده با کاما است که شامل یک یا چند مورد از موارد زیر است: \fIstdin\fR, \fIstdout\fR, \fIstderr\fR, \fIttyin\fR, و \fIttyout\fR. .TP 8n \fB\-F\fR, \fB\--follow\fR فعال‌سازی \(lqحالت پیگیری\(rq (\(lqfollow mode\(rq). هنگام بازپخش یک نشست، \fBsudoreplay\fR پایان فایل (EOF) را نادیده گرفته و تا زمان تکمیل گزارش به بازپخش ادامه می‌دهد. این ویژگی می‌تواند برای بازپخش نشستی که هنوز در حال اجراست استفاده شود، مشابه دستور \(lqtail -f\(rq. یک فایل گزارش ورودی/خروجی زمانی کامل در نظر گرفته می‌شود که بیت‌های نوشتن (write bits) در فایل زمان‌بندی (timing) نشست پاک شده باشند. نسخه‌های \fBsudo\fR پیش از 1.9.1 بیت‌های نوشتن را پس از اتمام پاک نمی‌کنند. .TP 8n \fB\-h\fR, \fB\--help\fR نمایش یک پیام راهنمای کوتاه در خروجی استاندارد و خروج. .TP 8n \fB\-l\fR, \fB\--list\fR [\fIsearch expression\fR] فعال‌سازی \(lqحالت فهرست‌گیری\(rq (\(lqlist mode\(rq). در این حالت، \fBsudoreplay\fR نشست‌های موجود را در قالبی شبیه به قالب فایل گزارش \fBsudo\fR و مرتب‌شده بر اساس نام فایل (یا شماره دنباله) فهرست می‌کند. هرگونه نویسه کنترلی موجود در داده‌های گزارش به صورت هشت‌هشتی (octal) با یک نویسه پیشین \(oq#\(cq قالب‌بندی می‌شوند. به عنوان مثال، نویسه تب افقی به صورت \(oq#011\(cq و یک بازگشت به ابتدای سطر (carriage return) تعبیه‌شده به صورت \(oq#015\(cq نمایش داده می‌شود. نویسه‌های فاصله در نام دستور و آرگومان‌ها نیز به صورت هشت‌هشتی قالب‌بندی می‌شوند. .sp اگر یک \fIsearch expression\fR (عبارت جستجو) مشخص شده باشد، برای محدود کردن شناسه‌های نمایش داده شده استفاده خواهد شد. یک عبارت از گزاره‌های (predicates) زیر تشکیل می‌شود: .PP .RS 8n .PD 0 .TP 8n command \fIpattern\fR در صورتی که دستور اجرا شده با عبارت منظم گسترده پازیکس (POSIX extended regular expression) \fIpattern\fR تطبیق داشته باشد، درست (true) ارزیابی می‌شود. .PD .TP 8n cwd \fIdirectory\fR در صورتی که دستور با دایرکتوری کاری فعلی مشخص‌شده اجرا شده باشد، درست ارزیابی می‌شود. .TP 8n fromdate \fIdate\fR در صورتی که دستور در تاریخ \fIdate\fR یا پس از آن اجرا شده باشد، درست ارزیابی می‌شود. برای شرح قالب‌های تاریخ و زمان پشتیبانی‌شده، بخش \fIقالب تاریخ و زمان (Date and time format)\fR را ببینید. .TP 8n group \fIrunas_group\fR در صورتی که دستور با \fIrunas_group\fR مشخص‌شده اجرا شده باشد، درست ارزیابی می‌شود. مگر اینکه یک \fIrunas_group\fR به طور صریح هنگام اجرای \fBsudo\fR مشخص شده باشد، این فیلد در گزارش خالی خواهد بود. .TP 8n host \fIhostname\fR در صورتی که دستور روی \fIhostname\fR مشخص‌شده اجرا شده باشد، درست ارزیابی می‌شود. .TP 8n runas \fIrunas_user\fR در صورتی که دستور با عنوان \fIrunas_user\fR مشخص‌شده اجرا شده باشد، درست ارزیابی می‌شود. به طور پیش‌فرض، \fBsudo\fR دستورات را با عنوان کاربر \fBroot\fR اجرا می‌کند. .TP 8n todate \fIdate\fR در صورتی که دستور در تاریخ \fIdate\fR یا پیش از آن اجرا شده باشد، درست ارزیابی می‌شود. برای شرح قالب‌های تاریخ و زمان پشتیبانی‌شده، بخش \fIقالب تاریخ و زمان (Date and time format)\fR را ببینید. .TP 8n tty \fItty name\fR در صورتی که دستور روی دستگاه ترمینال مشخص‌شده اجرا شده باشد، درست ارزیابی می‌شود. مقدار \fItty name\fR باید بدون پیشوند \fI/dev/\fR مشخص شود؛ به عنوان مثال، \fItty01\fR به جای \fI/dev/tty01\fR. .TP 8n user \fIuser name\fR در صورتی که شناسه با دستوری مطابقت داشته باشد که توسط \fIuser name\fR اجرا شده است، درست ارزیابی می‌شود. .PP گزاره‌ها را می‌توان به کوتاه‌ترین رشته یکتا خلاصه کرد. .sp گزاره‌ها را می‌توان با استفاده از عملگرهای \fIand\fR, \fIor\fR, و \fI\&!\fR و همچنین گروه‌بندی با \(oq\&(\(cq و \(oq\&)\(cq ترکیب کرد (پرانتزها معمولاً در شل باید اسکیپ شوند). عملگر \fIand\fR اختیاری است؛ گزاره‌های مجاور دارای یک \fIand\fR ضمنی هستند مگر اینکه توسط یک \fIor\fR از یکدیگر جدا شده باشند. .RE .TP 8n \fB\-m\fR, \fB\--max-wait\fR \fImax_wait\fR تعیین یک کران بالا برای حداکثر زمان انتظار میان فشردن کلیدها یا داده‌های خروجی. به طور پیش‌فرض، \fBsudoreplay\fR تاخیرهای بین فشردن کلیدها یا خروجی برنامه را با دقت بازتولید می‌کند. با این حال، زمانی که نشست شامل مکث‌های طولانی باشد، این موضوع می‌تواند خسته‌کننده باشد. هنگامی که گزینه \fB\-m\fR مشخص شود، \fBsudoreplay\fR این مکث‌ها را به حداکثر \fImax_wait\fR ثانیه محدود می‌کند. این مقدار می‌تواند به عنوان یک عدد ممیز شناور (مانند \fI2.5\fR) مشخص شود. مقدار \fImax_wait\fR صفر یا کمتر، مکث‌ها را به طور کامل حذف می‌کند. .TP 8n \fB\-n\fR, \fB\--non-interactive\fR عدم درخواست ورودی از کاربر یا عدم تلاش برای تغییر اندازه ترمینال. نشست در خروجی استاندارد نوشته می‌شود و نه مستقیماً در ترمینال کاربر. .TP 8n \fB\-R\fR, \fB\--no-resize\fR عدم تلاش برای تغییر اندازه ترمینال جهت مطابقت با اندازه ترمینال نشست. .TP 8n \fB\-S\fR, \fB\--suspend-wait\fR انتظار در مدت زمانی که دستور تعلیق (suspend) شده بود. به طور پیش‌فرض، \fBsudoreplay\fR بازه زمانی بین تعلیق دستور و از سرگیری مجدد آن را نادیده می‌گیرد. اگر گزینه \fB\-S\fR مشخص شود، \fBsudoreplay\fR به جای نادیده گرفتن، منتظر خواهد ماند. .TP 8n \fB\-s\fR, \fB\--speed\fR \fIspeed_factor\fR این گزینه باعث می‌شود که \fBsudoreplay\fR تعداد ثانیه‌هایی را که بین فشردن کلیدها یا خروجی برنامه منتظر می‌ماند، تنظیم کند. از این گزینه می‌توان برای کندتر یا سریع‌تر کردن نمایش استفاده کرد. به عنوان مثال، یک \fIspeed_factor\fR با مقدار \fI2\fR خروجی را دو برابر سریع‌تر می‌کند، در حالی که \fIspeed_factor\fR با مقدار \fI.5\fR خروجی را دو برابر کندتر می‌کند. .TP 8n \fB\-V\fR, \fB\--version\fR چاپ شماره نسخه \fBsudoreplay\fR و خروج. .SS "قالب تاریخ و زمان (Date and time format)" زمان و تاریخ را می‌توان به روش‌های مختلفی مشخص کرد، قالب‌های رایج عبارتند از: .TP 8n HH:MM:SS am MM/DD/CCYY timezone زمان ۲۴ ساعته را می‌توان به جای am/pm به کار برد. .TP 8n HH:MM:SS am Month, Day Year timezone زمان ۲۴ ساعته را می‌توان به جای am/pm استفاده کرد و نام ماه‌ها و روزها می‌تواند کوتاه شود. نام ماه و روز هفته باید به زبان انگلیسی مشخص شود. .TP 8n CCYY-MM-DD HH:MM:SS قالب زمان ISO. .TP 8n DD Month CCYY HH:MM:SS نام ماه می‌تواند به صورت مخفف مشخص شود. .PP می‌توان زمان یا تاریخ را حذف کرد؛ بخش‌های am/pm و منطقه زمانی (timezone) اختیاری هستند. اگر هیچ تاریخی مشخص نشود، روز جاری در نظر گرفته می‌شود؛ اگر هیچ زمانی مشخص نشود، اولین ثانیه از تاریخ تعیین‌شده استفاده می‌شود. بخش‌های با اهمیت کمتر هر دو مقدار زمان و تاریخ را نیز می‌توان حذف کرد، که در این صورت مقدار صفر در نظر گرفته می‌شود. .PP موارد زیر همگی مشخصات معتبر زمان و تاریخ هستند: .TP 8n now زمان و تاریخ جاری. .TP 8n tomorrow دقیقاً یک روز پس از زمان حال. .TP 8n yesterday ۲۴ ساعت قبل. .TP 8n 2 hours ago ۲ ساعت قبل. .TP 8n next Friday اولین ثانیه از روز جمعه در هفته آینده (پیش‌رو). نباید با \(lqthis Friday\(rq اشتباه گرفته شود که مطابق با جمعه هفته جاری است. .TP 8n last week زمان فعلی اما ۷ روز قبل. این معادل \(lqa week ago\(rq است. .TP 8n a fortnight ago زمان فعلی اما ۱۴ روز قبل (دو هفته پیش). .TP 8n 10:01 am 9/17/2009 ساعت ۱۰:۰۱ صبح، ۱۷ سپتامبر ۲۰۰۹. .TP 8n 10:01 am ساعت ۱۰:۰۱ صبح در روز جاری. .TP 8n 10 ساعت ۱۰:۰۰ صبح در روز جاری. .TP 8n 9/17/2009 ساعت ۰۰:۰۰ بامداد، ۱۷ سپتامبر ۲۰۰۹. .TP 8n 10:01 am Sep 17, 2009 ساعت ۱۰:۰۱ صبح، ۱۷ سپتامبر ۲۰۰۹. .PP مشخصات زمان نسبی همیشه طبق انتظار عمل نمی‌کنند. به عنوان مثال، توصیف‌کننده \(lqnext\(rq برای استفاده در کنار روزها مانند \(lqnext Monday\(rq طراحی شده است. هنگامی که این توصیف‌کننده با واحدهایی مانند هفته، ماه، سال و غیره استفاده شود، نتیجه یک واحد بیشتر از مقدار مورد انتظار خواهد بود. به عنوان مثال، \(lqnext week\(rq منجر به زمانی دقیقاً دو هفته از اکنون می‌شود که احتمالاً همان چیزی نیست که مد نظر بوده است. این مشکل در نسخه‌های آینده \fBsudoreplay\fR رفع خواهد شد. .SS "اشکال‌زدایی sudoreplay (Debugging sudoreplay)" ابزار \fBsudoreplay\fR در نسخه‌های 1.8.4 و بالاتر از یک چارچوب اشکال‌زدایی انعطاف‌پذیر پشتیبانی می‌کند که از طریق خطوط \fIDebug\fR در فایل sudo.conf(5) پیکربندی می‌شود. .PP برای اطلاعات بیشتر درباره پیکربندی sudo.conf(5)، به راهنمای آن مراجعه کنید. .SH "فایلها (FILES)" .TP 26n \fI/etc/sudo.conf\fR پیکربندی چارچوب اشکال‌زدایی .TP 26n \fI/var/log/sudo-io\fR دایرکتوری پیش‌فرض گزارش‌های ورودی/خروجی. .TP 26n \fI/var/log/sudo-io/00/00/01/log\fR نمونه اطلاعات گزارش نشست. .TP 26n \fI/var/log/sudo-io/00/00/01/log.json\fR نمونه اطلاعات گزارش نشست (قالب JSON). .TP 26n \fI/var/log/sudo-io/00/00/01/stdin\fR نمونه گزارش ورودی استاندارد نشست. .TP 26n \fI/var/log/sudo-io/00/00/01/stdout\fR نمونه گزارش خروجی استاندارد نشست. .TP 26n \fI/var/log/sudo-io/00/00/01/stderr\fR نمونه گزارش خطای استاندارد نشست. .TP 26n \fI/var/log/sudo-io/00/00/01/ttyin\fR نمونه فایل ورودی tty نشست. .TP 26n \fI/var/log/sudo-io/00/00/01/ttyout\fR نمونه فایل خروجی tty نشست. .TP 26n \fI/var/log/sudo-io/00/00/01/timing\fR نمونه فایل زمان‌بندی نشست. .PP فایل‌های \fIstdin\fR, \fIstdout\fR و \fIstderr\fR خالی خواهند بود مگر اینکه \fBsudo\fR به عنوان بخشی از یک خط لوله (pipeline) برای دستوری خاص استفاده شده باشد. .SH "مثال‌ها (EXAMPLES)" فهرست کردن نشست‌های اجرا شده توسط کاربر \fImillert\fR: .nf .sp .RS 4n # sudoreplay -l user millert .RE .fi .PP فهرست کردن نشست‌های اجرا شده توسط کاربر \fIbob\fR همراه با دستوری که شامل رشته vi باشد: .nf .sp .RS 4n # sudoreplay -l user bob command vi .RE .fi .PP فهرست کردن نشست‌های اجرا شده توسط کاربر \fIjeff\fR که با یک عبارت منظم مطابقت دارند: .nf .sp .RS 4n # sudoreplay \-l user jeff command '/bin/[a\-z]*sh' .RE .fi .PP فهرست کردن نشست‌های اجرا شده توسط jeff یا bob روی کنسول: .nf .sp .RS 4n # sudoreplay -l ( user jeff or user bob ) tty console .RE .fi .SH "همچنین ببینید (SEE ALSO)" script(1), sudo.conf(5), sudo(8) .SH "نویسندگان (AUTHORS)" افراد زیادی در طول سال‌ها روی \fBsudo\fR کار کرده‌اند؛ این نسخه عمدتاً شامل کدهایی است که توسط شخص زیر نوشته شده است: .sp .RS 6n Todd C. Miller .RE .PP برای مشاهده فهرست جامعی از افرادی که در توسعه \fBsudo\fR مشارکت داشته‌اند، فایل CONTRIBUTORS.md را در توزیع \fBsudo\fR (https://www.sudo.ws/about/contributors) ببینید. .SH "گزارش اشکالات (BUGS)" اگر فکر می‌کنید اشکالی در \fBsudoreplay\fR یافته‌اید، می‌توانید یک گزارش اشکال در پایگاه داده اشکالات sudo در https://bugzilla.sudo.ws ثبت کنید یا یک issue در https://github.com/sudo-project/sudo/issues باز کنید. اگر ترجیح می‌دهید از ایمیل استفاده کنید، پیام‌ها را می‌توانید به فهرست پستی sudo-workers ارسال کنید: https://www.sudo.ws/mailman/listinfo/sudo-workers (عمومی) یا به (خصوصی). .PP لطفاً آسیب‌پذیری‌های امنیتی را از طریق issueهای عمومی گیت‌هاب، باگزیلا یا فهرست‌های پستی گزارش نکنید. در عوض، آن‌ها را از طریق ایمیل به گزارش دهید. در صورت تمایل می‌توانید پیام خود را با استفاده از کلید موجود در https://www.sudo.ws/dist/PGPKEYS توسط PGP رمزنگاری کنید. .SH "پشتیبانی (SUPPORT)" پشتیبانی رایگان محدود از طریق فهرست پستی sudo-users در دسترس است؛ برای عضویت یا جستجو در بایگانی، https://www.sudo.ws/mailman/listinfo/sudo-users را مشاهده کنید. .SH "سلب مسئولیت (DISCLAIMER)" ابزار \fBsudoreplay\fR به صورت \(lqهمان‌گونه که هست\(rq (\(lqAS IS\(rq) ارائه می‌شود و هرگونه ضمانت صریح یا ضمنی، از جمله ضمانت‌های ضمنی خریدوفروش و تناسب برای یک هدف خاص، سلب می‌شود. برای جزئیات کامل، فایل LICENSE.md توزیع‌شده با \fBsudo\fR یا https://www.sudo.ws/about/license را ببینید.