sudo
دستور sudo در ترمینال | |
| نویسنده(های) اصلی | رابرت کوجشال، کلیف اسپنسر |
|---|---|
| توسعهدهنده(ها) | تاد سی. میلر |
| انتشار اولیه | تقریباً 1980[۱] |
| انتشار پایدار | 1.9.11p3
/ ۲۱ ژوئن ۲۰۲۲[۲] |
| مخزن | |
| نوشتهشده با | 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) اجازهٔ اجرای ابزارهای خاص و برنامهها را با مجوز کاربری دیگر فراهم میکند.
جستارهای وابسته
[ویرایش | اشتراکگذاری]منابع
[ویرایش | اشتراکگذاری]- ↑ Miller, Todd C. "A Brief History of Sudo". Retrieved 15 November 2018.
- ↑ "Sudo News". Retrieved 30 June 2022.
- ↑ خطای یادکرد: خطای یادکرد:برچسب
<ref> غیرمجاز؛ متنی برای یادکردهای با نامtodmil7وارد نشده است. (صفحهٔ راهنما را مطالعه کنید.).
- "sudo" (HTML) (in انگلیسی). ss64. Retrieved 14 ژوئیه 2011.
{{cite web}}: پیوند خارجی دروجود دارد (کمک)نگهداری یادکرد:زبان ناشناخته (رده)|ناشر= - Todd C. Miller. "Sudo Manual" (in انگلیسی). gratisoft. Archived from the original (اچتیامال) on 22 ژوئیه 2011. Retrieved 14 ژوئیه 2011.
{{cite web}}: از پارامتر ناشناخته|نشانی نویسنده=صرفنظر شد (کمک); پیوند خارجی دروجود دارد (کمک)نگهداری یادکرد:زبان ناشناخته (رده) بایگانیشده در ۲۲ ژوئیه ۲۰۱۱ توسط Wayback Machine|ناشر= - "In Unix, what are the sudo and su commands?" (in انگلیسی). دانشگاه ایندیانا. Retrieved 13 ژوئیه 2011.
{{cite web}}: پیوند خارجی دروجود دارد (کمک)نگهداری یادکرد:زبان ناشناخته (رده)|ناشر=