sudo

از ویکی‌پدیا، دانشنامهٔ آزاد
sudo
دستور sudo در ترمینال
دستور sudo در ترمینال
نویسنده(های)
اصلی
رابرت کوجشال، کلیف اسپنسر
توسعه‌دهنده(ها)تاد سی. میلر
انتشار ابتداییتقریباً 1980[۱]
انتشار پایدار
1.9.11p3
۲۱ ژوئن ۲۰۲۲؛ ۲۲ ماه پیش (۲۰۲۲-21}})[۲]
مخزن
نوشته‌شده باC
سیستم‌عاملشبه‌یونیکس
گونهPrivilege authorization
پروانهISC-style[۳]
وبگاه

sudo نرم‌افزاری در خط فرمان سیستم‌عامل‌های یونیکس و شبه‌یونیکس است که به کاربرها امکان می‌دهد تا برنامه‌ها را با دسترسی کاربری دیگر —بدون خروج کاربر کنونی از سیستم— اجرا کنند. کاربر هدف معمولاً کاربر اصلی سیستم‌عامل یا کاربر ریشه (به انگلیسی: root user) است که البته می‌تواند هر کاربر دیگری نیز باشد. کاربرد معمول این دستور در اجرای برنامه‌ها و فرمان‌هایی است که نیاز به سطح دسترسی کاربر ریشه دارند؛ مانند نصب نرم‌افزار، تغییر در پرونده‌های سیستمی و بیشتر پرونده‌هایی که در زیرشاخه‌های مهم سیستم‌عامل قرار دارند. اجازهٔ دسترسی به فرمان سودو فقط به کاربرانی داده می‌شود که قبلاً برای سیستم تعریف شده باشند. این گروه از کاربران «سودوگران» (به انگلیسی: sudoers) نام دارند و با ویرایش پروندهٔ sudoers در مسیر /etc می‌توان تنظیمات مربوط را ویرایش کرد؛ که البته ویرایش این پرونده خود منوط به داشتن دسترسی کاربر ریشه است. در بیشتر توزیع‌ها اجازهٔ اجرای فرمان سودو به همهٔ کاربران به‌طور پیش‌فرض داده شده‌است. sudo معمولاً به صورت پیشفرض در توزیع‌های شبه‌یونیکس وجود دارد اما در توزیع‌های ساده‌گرا مثل آرچ لینوکس ممکن است به صورت پیشفرض وجود نداشته باشد.

پس از اجرای دستور sudo از کاربر رمز عبور خواسته می‌شود که در حالت پیش‌فرض و در هنگام گریز به فضای کاربر ریشه، رمز عبور خود اوست. گرچه می‌توان با ویرایش پروندهٔ sudoers که در مسیر /etc قرار دارد، و با افزودن %sudo ALL=NOPASSWD: ALL از درخواست رمز عبور جلوگیری کرد. با استفاده از پارامتر -i و درج رمز عبور، سیستم به‌طور مجازی وارد حساب کاربر ریشه می‌شود؛ و همچنین با پارامتر -u user می‌توان وارد حساب یک کاربر دیگر شد (user نام کاربر هدف است) و دستورهایی را که فقط کاربر هدف مجاز به اجرای آن است اجرا کرد یا به زیرپوشه‌های شخصی آن کاربر دست پیدا کرد.

ترکیب کلی[ویرایش]

sudo [-n] -h | -K | -k | -L | -V | -v

توضیح اختیارات:

  • -n (از non-interactive): با این گزینه، از کاربر رمز عبور درخواست نمی‌شود. اگر برای اجرای دستورهای بعدی نیاز به وارد کردن رمز عبور باشد، پیغام خطایی از طرف سودو نمایش یافته و از برنامه خارج می‌شود.
  • -h (از help): پیغام طرز استفاده از فرمان sudo نمایش یافته و از برنامه خارج می‌شود.
  • -K و -k (از kill): هر دو گزینه اجازهٔ جانشینی امتیازات کاربر را با تغییر زمان ذخیره شده به زمان یونیکس ملغی می‌کنند و برای اجرای دستورهای بعدی، هر عملی که برای کسب امتیاز کاربر نیاز بود باید انجام شود. فرق K- در این است که زمان ذخیره را تماماً حذف می‌کند. هر دوی این گزینه‌ها بدون درخواست رمز عبور از کاربر اجرا می‌شوند.
  • -L (از list): اختیارات خط Defaults که در پروندهٔ /etc/sudoers موجود است فهرست می‌شوند.
  • -V (از version): شمارهٔ نسخهٔ کنونی فرمان سودو را نوشته و از سودو خارج می‌شود. این گزینه اگر بعد از اجرای دستور sudo -i و از طرف کاربر ریشه اجرا شود، پس از نمایش نسخهٔ کنونیِ سودو، موارد پیش‌فرض فرمان و آدرس‌های شبکه محلی سیستم را نمایش می‌دهد.
  • -v (از validate): زمان ذخیره شده برای عدم درخواست رمز عبور به‌روز می‌شود و نیز زمان ابطال رمز عبور ۱۵ دقیقهٔ دیگر تمدید می‌شود که زمان ارتباط فرمان سودو در حالت پیش‌فرض ۵ دقیقه است.

نیز:

sudo -l[l] [-AnS] [-g groupname|gid] [-U username] [-u username|uid] [command]

توضیح:

  • -l (از list): در حالت معمول، اگر به تنهایی و به صورت sudo -l اجرا شود فهرست تمام فرمان‌هایی را که کاربر می‌تواند (یا نمی‌تواند) اجرا کند نمایش می‌دهد. اگر بعد از l-، دستوری که اجرای آن توسط سودوگران مجاز باشد (مثلاً sudo -l apt-get) نوشته شود، مسیر آن دستور و آرگومان‌های خط فرمان نمایش می‌یابد و در صورت مجاز نبودن اجرای دستور، از خط فرمان سودو خارج می‌شود.

مثال‌ها[ویرایش]

برای فهرست کردن پوشه‌هایی که دسترسی کاربر معمولی به آن‌ها غیرمجاز است؛ مثلاً:

user@localhost:/$ sudo ls /root

برخی دستورها در محیط اولیه سودو اجرا نمی‌شوند. این دستورها را باید در زیربدنه اجرا کرد:

user@localhost:/$ sudo sh -c "cd /root"

دستور زیر، درخواست کاربر user مبنی بر نصب نرم‌افزار fontforge است:

user@localhost:/$ sudo apt-get install fontforge

دستورهای مشابه[ویرایش]

دستور visudo ابزاری برای ویرایش پروندهٔ /etc/sudoers توسط نرم‌افزار vi (یا هر ویرایشگر دیگری که توسط متغیر محیطی EDITOR مشخص شده باشد) است. اجرای visudo باید از طرف کاربر ریشه باشد:

user@localhost:/$ sudo visudo

همچنین دستورهای kdesudo و gksudo نیز برای استفاده در واسط گرافیکی کاربر به کار می‌روند.

در مایکروسافت ویندوز نیز دستور Run as (administrator/user) اجازهٔ اجرای ابزارهای خاص و برنامه‌ها را با مجوز کاربری دیگر فراهم می‌کند.

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. Miller, Todd C. "A Brief History of Sudo". Retrieved 15 November 2018.
  2. "Sudo News". Retrieved 30 June 2022.
  3. خطای یادکرد: خطای یادکرد:برچسب <ref>‎ غیرمجاز؛ متنی برای یادکردهای با نام todmil7 وارد نشده است. (صفحهٔ راهنما را مطالعه کنید.).

پیوند به بیرون[ویرایش]