حالا یک سوال: چطور بفهمیم کجا باید sudo استفاده بشه و کجا نه؟
مثلا میخوام لیست هارد دیسک ها رو نگاه کنم خب fdisk -l عادی که کار نمیکنه باید sudo هم بنویسم. الان برای سیستم بد نمیشه؟
برای این قضیه باید یک شناخت پایهای از سیستم داشته باشید و بدونید دقیقا دستوری که جلوی sudo هست، چرا نیاز به دسترسی ریشه داره. این شناخت پایهای واقعا چیز عجیب قریبی نیست و با کمی مطالعه به دست میاد. برای شروع میتونه کتاب LFS اطلاعات خوبی در مورد توزیعهای گنو-لینوکس بهتون بده.
برای مثال، fdisk مستقیما نیاز به دسترسی به فایلهای اصلی سیستمی مثل dev/sda/ داره. چرا خب کاربر عادی این دسترسی رو نداره؟ داشتن این دسترسی مثلا میتونه به کاربر عادی این امکان رو بده که فایلهای سیستمی مثلا چیزهایی که توی /root/ هستند رو بخونه. آیا اجرای این دستور مشکلی ایجاد میکنه؟ نرمافزاری مثل fdisk قابلیت از بین بردن تمامی اطلاعات شما رو داره، در نتیجه باید کاملا مراقب باشید و بدونید دستوری که میزنید چیکار میکنه. اگر مطمئن نیستید، حتما مستندات اون رو بخونید و مطمئن بشید دستور رو درست اجرا کردید.
حالا چرا مثلا configure رو با sudo اجرا نکنیم؟ اول باید بشناسیم که configure چیکار میکنه. configure فقط کتابخونهها رو چک میکنه و یک سری فایل ایجاد برای ساخت پروژه ایجاد میکنه که نیازی به دسترسی ریشه نداره، در نتیجه نباید هم با دسترسی ریشه انجام بشه. مشکلش چیه اگر با دسترسی ریشه انجام بشه؟ میتونه باعث بشه فایلهای ایجاد شده دسترسی ریشه داشته باشند و این نیاز رو ایجاد میکنه که برای هر تغییری اونجا دوباره دسترسی ریشه داشته باشیم. خب دوباره ممکنه بپرسید مشکلش چیه که همیشه دسترسی ریشه استفاده بشه؟ چند مشکل اصلی وجود داره. اشتباه همیشه ممکنه پیش بیاد و با استفادهٔ دائم از دسترسی ریشه، شانس اینکه شما سیستمتون رو به دلیل یک اشتباه خراب کنید، زیاد میشه. گنو-لینوکس بر اساس دسترسیها کار میکنه و اگر دائما از دسترسی ریشه استفاده کنید، فایلهایی ایجاد میکنید که کاربر عادیتون دسترسی تغییر اونها رو نخواهد داشت و این میتونه در موارد زیادی باعث ناپایداری سیستمتون بشه. یکی از دلایل امنیت گنو-لینوکس هم همین دسترسیها هستش و وقتی دائما از دسترسی ریشه استفاده کنیم، در حقیقت این موضوع رو دور میزنیم و امنیت سیستم رو پایین میاریم.
حالا ممکنه بگید که خب نمیشه که همیشه بدونیم اون دستور چیکار میکنه و این موضوع غیر عملی هستش. اینطور نیست. دستوراتی که نیاز به sudo دارند بسیار محدود هستند و یادگیری روند کار اونها اونقدرها زمان نمیگیره. واقعا پیشنهاد میکنم که کتاب LFS رو بخونید و سیستمتون رو بهتر بشناسید. مطمئن باشید وقتی که سرمایهگذاری میکنید، در درازمدت باعث بازدهی بیشترتون میشه.