Sudo: تفاوت بین نسخه‌ها

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
(ویکی سازی)
سطر ۱: سطر ۱:
نکته: برای تنظیمات دسترسی‌های sudo توسط فایل پیکره بندی صفحه [[sudoers|sudoers]] را بخوانید.
+
نکته: برای تنظیمات دسترسی‌های ''sudo'' توسط فایل پیکربندی، صفحه‌ی [[sudoers|sudoers]] را بخوانید.
  
==اطلاعات پیش‌زمینه==
+
=اطلاعات پیش‌زمینه=
در گنو/لینوکس (به طور کلی در یونیکس) یک کاربر مدیر به نام [[root|root]] وجود دارد، معادل این کاربر در ویندوز Administrator می‌باشد. کاربر مدیر میتواند هرکاری انجام دهد، از این رو استفاده روزانه از سیستم توسط این کاربر میتواند خطرناک باشد. ممکن است یک دستور را اشتباه تایپ کنید و همه چیز را از بین ببرید. در حالت عادی با کاربری کار می‌کنید که تنها دسترسی‌های لازم برای انجام کارهای مورد نظر را دارد، در بعضی مواقع این کاربر الزاما باید دسترسی root داشته باشد، اما در اکثر اوقات تنها یک کاربر عادی می‌باشد.
+
در [[GNU/Linux|گنو/لینوکس]] (به طور کلی در [[unix|یونیکس]]) یک کاربر مدیر به نام [[root|ریشه(root)]] وجود دارد، معادل این کاربر در ویندوز Administrator است. کاربر ریشه بالاترین سطح دسترسی را داشته و می‌تواند هرکاری انجام دهد، از این رو استفاده روزانه از رایانه توسّط این کاربر می‌تواند خطرناک باشد. ممکن است یک دستور را اشتباه تایپ کنید و همه چیز را از بین ببرید. در حالت عادی با کاربری کار می‌کنید که تنها دست‌رسی‌های لازم برای انجام کارهای مورد نظر را دارد، در بعضی مواقع این کاربر الزاماً باید دسترسی ریشه داشته باشد، اما در اکثر اوقات تنها یک کاربر عادی است.
  
'''در حالت عادی رمزعبور کاربر root در ubuntu قفل شده است'''، این به این معناست که نمی‌توانید از کاربر root برای لاگین کردن استفاده کنید یا از دستور su برای گرفتن دسترسی root بهره بگیرید. با این حال با توجه به اینکه اکانت root موجودیت دارد، می‌توان دستورات را با دسترسی ریشه (اکانت root) اجرا نمود. در اینجاست که دستور sudo‌ وارد می‌شود، sudo‌ این اجازه را به کاربران می‌دهد تا برخی دستورات و برنامه ها را بدون اینکه لازم باشد رمزعبور root را بدانند با دسترسی root اجرا نمایند.
+
''در حالت عادی کاربر ریشه در [[Ubuntu|اوبونتو]] قفل شده است''، این بدان معناست که نمی‌توانید از کاربر ریشه برای وارد شدن به حساب کاربری استفاده کنید. با این حال با توجه به اینکه حساب کاربر ریشه وجود دارد، می‌توان دستورات را با دسترسی این کاربر اجرا نمود. در این‌جاست که دستور [[sudo]]‌ وارد می‌شود، sudo‌ این اجازه را به کاربران می‌دهد تا دستورات و برنامه‌ها را بدون حضور کاربر ریشه، با دست‌رسی او اجرا نمایند.
  
این به این معناست که شما در [[terminal|ترمینال]] باید برای اجرای برنامه‌هایی که نیاز به دسترسی ریشه (root) دارند از sudo استفاده نمایید. در حالت مشابه وقتی یک برنامه گرافیکی (GUI) را اجرا می‌کنید که به دسترسی ریشه احتیاج دارد (برای مثال تنظیمات شبکه)، sudo گرافیکی رمزعبور را درخواست می‌نماید. به یاد داشته باشید وقتی sudo از شما درخواست وارد کردن رمزعبور می‌نماید، رمزعبور شما را میخواهد نه رمزعبور اکانت root.
+
این یعنی شما در [[terminal|پایانه]] باید برای اجرای برنامه‌هایی که نیاز به دسترسی ریشه دارند از sudo استفاده کنید. در حالت مشابه وقتی یک برنامه‌ی گرافیکی را اجرا می‌کنید که به دست‌رسی ریشه نیاز دارد (برای مثال تنظیمات شبکه)، sudo گرافیکی گذرواژه را درخواست می‌نماید. به یاد داشته باشید وقتی sudo از شما درخواست ورود گذرواژه می‌کند، گذرواژه‌ی ''شما'' را می‌خواهد، نه کاربر ریشه.
  
لطفا به خاطر داشته باشید تعداد زیادی از کاربران اوبونتو در مرحله آشنا شدن با گنو/لینوکس می‌باشند. در هر سیستم‌عامل یک منحنی یادگیری وجود دارد که برخی کاربران تلاش می‌کنند با عملکردهایی همچون فعال کردن اکانت root، لاگین به عنوان root، تغییر سطح دسترسی فایل‌ها یک میانبر ایجاد کنند.
+
لطفاً به خاطر داشته باشید تعداد زیادی از کاربران اوبونتو در مرحله آشنا شدن با گنو/لینوکس می‌باشند. در هر [[OS|سیستم‌عامل]] یک منحنی یادگیری وجود دارد که برخی کاربران تلاش می‌کنند با عمل‌کردهایی چون فعّال کردن حساب ریشه، ورود به عنوان کاربر ریشه، تغییر سطح دسترسی پرونده‌ها و… یک میانبر ایجاد کنند. به یاد داشته باشید یادگیری با خراب کردن سامانه، رایندی طاقت‌فرسا است و می‌تواند از دست‌دادن اطلاعات را به دنبال داشته باشد.
  
به یاد داشته باشید یادگیری با خراب کردن سیستم پروسه‌ای طاقت‌فرسا بوده و میتواند از دست‌دادن اطلاعات را به دنبال داشته باشد.
+
''مهم'': لطفاً زمانی که به دیگران مشورت می‌دهید، موارد پایه‌ای چون مالکیت پرونده‌ها، سطوح دسترسی، و نحوه‌ی به‌کارگیری sudo، gksu، kdesudo را به گونه‌ای که کاربران تازه‌کار به سامانه‌ی خود صدمه‌ای وارد نکنند شرح دهید.
  
لطفا زمانی که به دیگران مشورت می‌دهید، موارد پایه‌ای همچون مالکیت‌فایل، سطوح‌دسترسی، و نحوه به‌کارگیری sudo، gksu، kdesudo را به گونه‌ای که کاربران تازه وارد به سیستم خود صدمه‌ای وارد نکنند شرح دهید.
+
=مزایای استفاده و معایب=
 +
==مزایا==
 +
# نصب کننده سوالات کمتری خواهد پرسید.
 +
# کاربران نیازی برای به خاطر سپردن گذرواژه‌ی اضافی ندارند که که‌گاه آن را استفاده کنند.
 +
# جلوی من هرکاری می‌توانم انجام دهم را می‌گیرد. در هر عملیات مهم که تأثیر قابل توجّهی روی سامانه شما دارد، درخواست ورود گدرواژه می‌شود، این موضوع باعث می‌شود تا دوباره به دستوری که درحال اجرای آن هستید فکر کنید.
 +
# دستور sudo یک گزارش در نشانی var/log/auth.log اضافه می‌کند، اگر اشتباهی رخ داد، می‌توانید ببینید چه دستوراتی اجرا شده‌اند.
 +
# زمانی که یک نفوذگر قصد دارد از حملات brute-force استفاده نماید، می‌داند حسابی با نام root بر روی سیستم شما وجود دارد و چیزی که نمی داند نام بقیه‌ی حساب‌هاست. در نتیجه حملات خود را بر روی حساب ریشه اجرا می‌کند، اما اگر این حساب قفل شده باشد، این‌گونه حملات یا حدس زدن گذرواژه‌ی حساب ریشه، عملی بی معنی خواهد بود.
 +
# انتقال آسان دست رسی‌های مدیریت به وسیله‌ی افزودن و حذف کردن کاربران از گروه‌ها را ممکن می‌سازد. در حالتی که  اگر فقط از گذرواژه‌ی حساب ریشه استفاده شود، تنها راه گرفتن دسترسی‌ها، تغییر این رمز می‌باشد.
 +
# sudo میتواند با سیاست های امنیتی ویژه‌ای پیکربندی شود.
 +
# دیگر نیازی به به‌اشتراک گذاشتن گذرواژه‌ی حساب ریشه بین تمامی کاربرانی که نیاز به اجرای دستورات مدیریتی دارند نیست.
 +
# تصدیق هویت کاربران پس از زمان کمی منقضی می‌شود (می‌توان این مقدار را تعیین کرد). با این قابلیت، زمانی که از رایانه‌ی خود فاصله بگیرید، دیگران فرصت اجرای هر دستوری روی رایانه‌ی شما را از دست می‌دهند.
  
==مزایای استفاده و معایب==
+
==معایب==
 +
# انتقال خروجی دستورات توسّط sudo روش دیگری را دنبال می‌کند. برای مثال دستور زیر کار نمی‌کند:
 +
<pre>
 +
$ sudo ls > /root/test
 +
</pre>
 +
برای هدایت خروجی باید از دستور زیر استفاده شود که خروجی را به انتهای پرونده اضافه می‌کند:
 +
<pre>
 +
$ ls | sudo tee -a /root/test
 +
</pre>
 +
یا دستور زیر که پرونده را با خروجی جدید باز نویسی می‌کند:
 +
<pre>
 +
$ ls | sudo tee /root/test
 +
</pre>
 +
همین‌طور میتوانید کل دستور را به یک شل که با sudo اجرا شده ارسال کنید:
 +
<pre>
 +
$ sudo sh -c "ls > /root/test
 +
</pre>
 +
# در برخی محیط‌های اداری تنها حساب سامانه، حساب ریشه است و دیگر کاربران توسط روش‌های NSS از جمله nss-ldap وارد می‌شوند. برای راه‌اندازی ایستگاه کاری یا حل کردن مشکلات شبکه هنگامی که nss-ldap خراب شده به حساب ریشه احتیاج داریم.
  
'''مزایا'''
+
=استفاده=
 +
==sudo==
 +
برای استفاده از sudo در خط‌فرمان، در ابتدای دستور از sudo استفاده کنید.
  
۱. نصب کننده سوالات کمتری خواهد پرسید.
+
مثال ۱:
 +
<pre>
 +
$ sudo chown bob:bob /home/bob/*
 +
</pre>
  
۲. کاربران نیازی برای به خاطر سپردن پسورد اضافی ندارند که گاها آن را استفاده می‌کنند.
+
مثال ۲:
 
+
<pre>
۳. جلوی من هرکاری می‌توانم انجام دهم را می‌گیرد. در هر عملیات مهم که تاثیر قابل توجه‌ای بر روی سیستم شما دارد از شما درخواست وارد کردن رمزعبور می‌شود، این موضوع باعث می‌شود تا مجددا به دستوری که درحال اجرای آن هستید فکر کنید.
+
$ sudo /etc/init.d/networking restart
 
+
</pre>
۴. دستور sudo یک log‌ در آدرس /var/log/auth.log اضافه می‌کند، اگر اشتباهی رخ دهد، میتوانید ببینید چه دستوراتی اجرا شده اند.
 
 
 
۵. زمانی که یک Cracker قصد دارد از حملات brute-force استفاده نماید، می‌داند اکانتی با نام root بر روی سیستم شما وجود دارد و چیزی که نمی داند نام بقیه اکانت‌ها است. درنتیجه حملات خود را بر روی اکانت root اجرا می‌کند، اما اگر این اکانت قفل شده باشد اینگونه حملات یا حدس زدن رمزعبور اکانت عملی بی معنی خواهد بود.
 
 
 
۶. انتقال آسان دسترسی‌های مدیریت به وسیله افزودن و حذف کردن کاربران از گروه‌ها را ممکن می‌سازد. در حالتی که فقط از رمزعبور root استفاده شود تنها راه گرفتن دسترسی‌ها، تغییر این رمز می‌باشد.
 
 
 
۷. sudo میتواند با سیاست های امنیتی ویژه‌ای پیکربندی شود.
 
 
 
۸. دیگر نیازی به اشتراک گذاشتن رمزعبور root بین تمامی کاربران که نیاز به اجرای دستورات مدیریتی دارند نمی‌باشد.
 
 
 
۹. تصدیق هویت کاربران پس از زمان کمی منقضی می‌شود (میتوان این مقدار را تعیین کرد تا صفر). با این قابلیت زمانی که از سیستم خود فاصله بگیرید، دیگران فرصت اجرای هر دستوری روی سیستم شما را از دست می‌دهند.
 
 
 
 
 
""معایب""
 
 
 
۱. ریدایرکت کردن خروجی دستورات توسط sudo روش دیگری را دنبال می‌نماید. برای مثال دستور زیر کار نمیکند:
 
  
 +
برای اجرای آخرین دستوری که رد پایانه وارد شده با دسترسی ریشه می‌توان از دستور زیر استفاده کرد:
 
<pre>
 
<pre>
sudo ls > /root/test
+
$ sudo !!
 
</pre>
 
</pre>
برای هدایت خروجی باید از دستور زیر استفاده نمایید که خروجی را به انتهای فایل اضافه می‌نماید:
 
<pre>ls | sudo tee -a /root/test</pre>
 
یا دستور زیر که فایل را با خروجی جدید مجددا باز نویسی می‌نماید:
 
<pre>ls | sudo tee /root/test</pre>
 
همینطور میتوانید کل دستور را به یک شل که با sudo اجرا شده ارسال کنید:
 
<pre>sudo sh -c "ls > /root/test</pre>
 
 
  
۲. در تعداد زیادی از محیط‌های اداری تنها اکانت سیستم root می‌باشد. تمامی دیگر کاربران توسط تکنیک‌های NSS از جمله nss-ldap وارد می‌شوند. برای راه‌اندازی workstation یا فیکس کردن مشکلات در حالت وجود مشکلاتی در شبکه جایی که nss-ladp تخریب شده به root احتیاج داریم.
+
==Graphical sudo==
  
==استفاده==
+
هرگز نباید از sudo برای اجرای برنامه های گرافیکی با دسترسی ریشه استفاده کرد. برای این منظور باید از gksu یا gksudo (در kubuntu از kdesudo) استفاده کنید. gksu مقدار [[Enviromental Variable|متغیّر محیطی]] HOME را برابر ROOT~ قرار داده و پرونده‌ی Xauthority را در tmp قرار می‌دهد، این عمل از تغییر مالکیت پرونده‌های شاخه‌ی خانگی شما به root جلوگیری می‌کند.
 
 
'''sudo'''
 
برای استفاده از sudo در خط‌فرمان، در ابتدای دستور از sudo استفاده نمایید.
 
  
 
مثال ۱:
 
مثال ۱:
<pre>sudo chown bob:bob /home/bob/*</pre>
+
<pre>
مثال ۲:
+
$ gksudo gedit /etc/fstab
<pre>sudo /etc/init.d/networking restart</pre>
+
</pre>
  
برای اجرای آخرین دستور به همان شکل سابق تنها به وسیله sudo از دستور زیر استفاده نمایید:
+
مثال۲:
<pre>sudo !!</pre>
+
<pre>
 +
$ kdesudo kate /etc/X11/xorg.conf
 +
</pre>
  
'''Graphical sudo'''
+
gksudo و kdesudo تنها پیوندی به gksu و kdesu هستند.
  
شما هرگز نباید از sudo برای اجرای برنامه های گرافیکی با دسترسی root استفاده نمایید. برای این منظور باید از gksu یا gksudo (در kubuntu از kdesudo) استفاده کنید. gksu مقدار HOME را برابر ROOT~ قرار می‌دهد و .Xauthority را در tmp کپی میکند، این عمل از تغییر مالکیت فایلهای دایرکتوری خانه شما به root جلوگیری می‌نماید.
 
  
 +
==کشیدن و راه کردن==
 +
با دستور زیر یک اجراگر ایجاد کنید:
 +
<pre>
 +
$ gksudo "gnome-open %u"
 +
</pre>
 +
هنگامب که پرونده‌ای را به روی این اجراگر می‌کشید و رها می‌کنید، توسّط برنامه تعیین شده با دسترسی ریشه اجرا می‌شود. می‌توانید این اجراگر را روی میزکار یا… قرار داده و از آن برای ویرایش سریع پرونده‌های پیکربندی استفاده کنید.
  
مثال ها:
+
=کاربران=
  
<pre>gksudo gedit /etc/fstab</pre>
+
==اجازه دادن به کاربران برای اجرای sudo==
 +
برای افزودن یک کاربر جدید به گروه sudo:
 +
<pre>
 +
$ sudo usermod <username> --append --groups sudo
 +
</pre>
  
<pre>kdesudo kate /etc/X11/xorg.conf</pre>
+
==ورود به عنوان کاربری دیگر==
 +
از این راه برای ورود به عنوان کاربر ریشه استفاده نکنید.
 +
<pre>
 +
$ sudo -i -u username
 +
</pre>
  
gksudo و kdesudo تنها لینکی به gksu و kdesu می‌باشند.
+
==فعّال کردن حساب ریشه==
 +
این کار بسیار خطرناک است و ریسک آن به عهده خود شماست:
 +
<pre>
 +
sudo passwd root
 +
</pre>
 +
از شما درخواست می‌شود رمزعبوری برای حساب ریشه انتخاب نمایید.
  
 +
==غیر فعّال کردن حساب ریشه==
  
'''کشیدن و راه کردن'''
+
اگر بنا به دلایلی حساب ریشه را فعّال کرده و اکنون قصد دارید آن را دوباره غیرفعّال کنید، از دستور زیر استفاده کیند:
 
+
<pre>
یک لانچر با دستور زیر ایجاد نمایید:
+
$ sudo passwd -dl root
 
+
</pre>
<pre>gksudo "gnome-open %u"</pre>
 
 
 
زمانی که فایلی را به روی این لانچر می‌کشید و رها می‌کنید توسط برنامه تعیین شده با دسترسی root اجرا می‌شود. می‌توانید این لانچر را بر روی میزکار یا ... قرار دهید و از آن برای ویرایش سریع فایل‌هتی پیکربندی استفاده نمایید.
 
 
 
==کاربران==
 
 
 
"""اجازه دادن به کاربران برای اجرای SUDO""
 
 
 
برای افزودن یک کاربر جدید به sudo:
 
 
 
<pre>sudo adduser <username> sudo</pre>
 
 
 
در نسخه های قدیمی‌تر:
 
 
 
<pre>sudo adduser <username> admin</pre>
 
 
 
""لاگین به عنوان کاربری دیگر""
 
 
 
از این راه برای ورود به عنوان root استفاده نکنید.
 
 
 
<pre>sudo -i -u username</pre>
 
 
 
==اکانت root==
 
'''فعال کردن اکانت root'''
 
 
 
ریسک فعال کردن اکانت root به عهده خود شما است.
 
 
 
<pre>sudo passwd root</pre>
 
از شما درخواست می‌شود رمزعبوری برای اکانت root انتخاب نمایید.
 
 
 
""غیر فعال کردن مجدد اکانت root""
 
 
 
اگر بنا به دلایلی اکانت root را فعال کرده اید و اکنون قصد دارید مجددا آن را غیر فعال کنید از دستور زیر استفاده نمایید:
 
  
<pre>sudo passwd -dl root</pre>
+
[[رده:ریشه]]

نسخهٔ ‏۱۵ خرداد ۱۳۹۴، ساعت ۱۷:۰۳

نکته: برای تنظیمات دسترسی‌های sudo توسط فایل پیکربندی، صفحه‌ی sudoers را بخوانید.

اطلاعات پیش‌زمینه

در گنو/لینوکس (به طور کلی در یونیکس) یک کاربر مدیر به نام ریشه(root) وجود دارد، معادل این کاربر در ویندوز Administrator است. کاربر ریشه بالاترین سطح دسترسی را داشته و می‌تواند هرکاری انجام دهد، از این رو استفاده روزانه از رایانه توسّط این کاربر می‌تواند خطرناک باشد. ممکن است یک دستور را اشتباه تایپ کنید و همه چیز را از بین ببرید. در حالت عادی با کاربری کار می‌کنید که تنها دست‌رسی‌های لازم برای انجام کارهای مورد نظر را دارد، در بعضی مواقع این کاربر الزاماً باید دسترسی ریشه داشته باشد، اما در اکثر اوقات تنها یک کاربر عادی است.

در حالت عادی کاربر ریشه در اوبونتو قفل شده است، این بدان معناست که نمی‌توانید از کاربر ریشه برای وارد شدن به حساب کاربری استفاده کنید. با این حال با توجه به اینکه حساب کاربر ریشه وجود دارد، می‌توان دستورات را با دسترسی این کاربر اجرا نمود. در این‌جاست که دستور sudo‌ وارد می‌شود، sudo‌ این اجازه را به کاربران می‌دهد تا دستورات و برنامه‌ها را بدون حضور کاربر ریشه، با دست‌رسی او اجرا نمایند.

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

لطفاً به خاطر داشته باشید تعداد زیادی از کاربران اوبونتو در مرحله آشنا شدن با گنو/لینوکس می‌باشند. در هر سیستم‌عامل یک منحنی یادگیری وجود دارد که برخی کاربران تلاش می‌کنند با عمل‌کردهایی چون فعّال کردن حساب ریشه، ورود به عنوان کاربر ریشه، تغییر سطح دسترسی پرونده‌ها و… یک میانبر ایجاد کنند. به یاد داشته باشید یادگیری با خراب کردن سامانه، رایندی طاقت‌فرسا است و می‌تواند از دست‌دادن اطلاعات را به دنبال داشته باشد.

مهم: لطفاً زمانی که به دیگران مشورت می‌دهید، موارد پایه‌ای چون مالکیت پرونده‌ها، سطوح دسترسی، و نحوه‌ی به‌کارگیری sudo، gksu، kdesudo را به گونه‌ای که کاربران تازه‌کار به سامانه‌ی خود صدمه‌ای وارد نکنند شرح دهید.

مزایای استفاده و معایب

مزایا

  1. نصب کننده سوالات کمتری خواهد پرسید.
  2. کاربران نیازی برای به خاطر سپردن گذرواژه‌ی اضافی ندارند که که‌گاه آن را استفاده کنند.
  3. جلوی من هرکاری می‌توانم انجام دهم را می‌گیرد. در هر عملیات مهم که تأثیر قابل توجّهی روی سامانه شما دارد، درخواست ورود گدرواژه می‌شود، این موضوع باعث می‌شود تا دوباره به دستوری که درحال اجرای آن هستید فکر کنید.
  4. دستور sudo یک گزارش در نشانی var/log/auth.log اضافه می‌کند، اگر اشتباهی رخ داد، می‌توانید ببینید چه دستوراتی اجرا شده‌اند.
  5. زمانی که یک نفوذگر قصد دارد از حملات brute-force استفاده نماید، می‌داند حسابی با نام root بر روی سیستم شما وجود دارد و چیزی که نمی داند نام بقیه‌ی حساب‌هاست. در نتیجه حملات خود را بر روی حساب ریشه اجرا می‌کند، اما اگر این حساب قفل شده باشد، این‌گونه حملات یا حدس زدن گذرواژه‌ی حساب ریشه، عملی بی معنی خواهد بود.
  6. انتقال آسان دست رسی‌های مدیریت به وسیله‌ی افزودن و حذف کردن کاربران از گروه‌ها را ممکن می‌سازد. در حالتی که اگر فقط از گذرواژه‌ی حساب ریشه استفاده شود، تنها راه گرفتن دسترسی‌ها، تغییر این رمز می‌باشد.
  7. sudo میتواند با سیاست های امنیتی ویژه‌ای پیکربندی شود.
  8. دیگر نیازی به به‌اشتراک گذاشتن گذرواژه‌ی حساب ریشه بین تمامی کاربرانی که نیاز به اجرای دستورات مدیریتی دارند نیست.
  9. تصدیق هویت کاربران پس از زمان کمی منقضی می‌شود (می‌توان این مقدار را تعیین کرد). با این قابلیت، زمانی که از رایانه‌ی خود فاصله بگیرید، دیگران فرصت اجرای هر دستوری روی رایانه‌ی شما را از دست می‌دهند.

معایب

  1. انتقال خروجی دستورات توسّط sudo روش دیگری را دنبال می‌کند. برای مثال دستور زیر کار نمی‌کند:
$ sudo ls > /root/test

برای هدایت خروجی باید از دستور زیر استفاده شود که خروجی را به انتهای پرونده اضافه می‌کند:

$ ls | sudo tee -a /root/test

یا دستور زیر که پرونده را با خروجی جدید باز نویسی می‌کند:

$ ls | sudo tee /root/test

همین‌طور میتوانید کل دستور را به یک شل که با sudo اجرا شده ارسال کنید:

$ sudo sh -c "ls > /root/test
  1. در برخی محیط‌های اداری تنها حساب سامانه، حساب ریشه است و دیگر کاربران توسط روش‌های NSS از جمله nss-ldap وارد می‌شوند. برای راه‌اندازی ایستگاه کاری یا حل کردن مشکلات شبکه هنگامی که nss-ldap خراب شده به حساب ریشه احتیاج داریم.

استفاده

sudo

برای استفاده از sudo در خط‌فرمان، در ابتدای دستور از sudo استفاده کنید.

مثال ۱:

$ sudo chown bob:bob /home/bob/*

مثال ۲:

$ sudo /etc/init.d/networking restart

برای اجرای آخرین دستوری که رد پایانه وارد شده با دسترسی ریشه می‌توان از دستور زیر استفاده کرد:

$ sudo !!

Graphical sudo

هرگز نباید از sudo برای اجرای برنامه های گرافیکی با دسترسی ریشه استفاده کرد. برای این منظور باید از gksu یا gksudo (در kubuntu از kdesudo) استفاده کنید. gksu مقدار متغیّر محیطی HOME را برابر ROOT~ قرار داده و پرونده‌ی Xauthority را در tmp قرار می‌دهد، این عمل از تغییر مالکیت پرونده‌های شاخه‌ی خانگی شما به root جلوگیری می‌کند.

مثال ۱:

$ gksudo gedit /etc/fstab

مثال۲:

$ kdesudo kate /etc/X11/xorg.conf

gksudo و kdesudo تنها پیوندی به gksu و kdesu هستند.


کشیدن و راه کردن

با دستور زیر یک اجراگر ایجاد کنید:

$ gksudo "gnome-open %u"

هنگامب که پرونده‌ای را به روی این اجراگر می‌کشید و رها می‌کنید، توسّط برنامه تعیین شده با دسترسی ریشه اجرا می‌شود. می‌توانید این اجراگر را روی میزکار یا… قرار داده و از آن برای ویرایش سریع پرونده‌های پیکربندی استفاده کنید.

کاربران

اجازه دادن به کاربران برای اجرای sudo

برای افزودن یک کاربر جدید به گروه sudo:

$ sudo usermod <username> --append --groups sudo

ورود به عنوان کاربری دیگر

از این راه برای ورود به عنوان کاربر ریشه استفاده نکنید.

$ sudo -i -u username

فعّال کردن حساب ریشه

این کار بسیار خطرناک است و ریسک آن به عهده خود شماست:

sudo passwd root

از شما درخواست می‌شود رمزعبوری برای حساب ریشه انتخاب نمایید.

غیر فعّال کردن حساب ریشه

اگر بنا به دلایلی حساب ریشه را فعّال کرده و اکنون قصد دارید آن را دوباره غیرفعّال کنید، از دستور زیر استفاده کیند:

$ sudo passwd -dl root