برای تفاوت sudo و su میتوان گفت که با یک بار اجرای su شما میتونید تا زمانی که دستور exit رو وارد نکردید مانند یوزر root هر کار سیستمی که دوست دارید انجام بدید و حتی os و فایل های سیستمی رو تغییر بدید و حتی پاک کنید و اگه مثلا گراب و لودر رو پاک کنید دیگه لینوکس بالا نمیاد.
اما با sudo فقط اجازه اجرای یک دستور خاص که نیاز به سطح دسترسی روت داره میتونید اجرا کنید.
دستور su قدیمی تره.و دستور sudo جدیدتره
اوبونتو برای راحتی کاربر هم بعد از اینکه یک بار رمز(همون رمز کاربر خودتون رو قبول میکنه و رمز جدایی برای روت نمیخواد وارد کنید)رو برای دستور sudo گرفت.root privileges و امتیازات کاربر روت رو به شما میده .و رمزی رو که دادید رو تا پانزده دقیقه به خاطر میسپاره تا کار کاربر راحت تر باشه و هر دفعه پسورد نده!
اما کار خوبی که اوبونتو میکنه اینه که اوبونتو به یوزر روت پسوردی رو اختصاص نمیده.و به همین دلیل تا زمانی که شما خودتون پسوردی به روت ندهید نمیتونید با روت به داخل اوبونتو Log in کنید.به خاطر همین برای اجرای دستورات ممتاز که با sudo شروع میشن نیاز به پسورد کاربر خودتون هست و همون رمز کاربر خودتون رو قبول میکنه و رمز جدایی برای روت نمیخواد وارد کنید.و مزیت اش اینه که شما کافیه فقط یک پسورد رو حفظ کنید.ولی توزیع های دیگه مثل فدورا هنگام نصب دوتا پسورد از شما میخوان.که یکیش پسورد یوزر root هستش و یکی هم پسورد یوزر کاربر.و مزیت دیگه اش اینه که کاربر دیگه رغبتی نسبت به وارد شدن به یوزر root نداره.و کمتر از دستور su استفاده میکنه.و نیز چون که هنوز روت پسوردی نداره نمیشه و نمیتونه به داخل اون login کنه.و همین هم امنیت رو بالا میبره و هم از اشتباهات ناخواسته و تصادفی که ممکن اوبونتو رو خراب کنه جلوگیری میکنه.
پس چون اوبونتو تا ۱۵ دقیقه رمز رو ذخیره میکنه و تا ۱۵ دقیقه میتونید امتیازات کاربر روت رو داشته باشید میتوینم نتیجه بگیریم از نظر امنیتی هم اونقدرها توفیری با su نداره! به نظر من به شرطی امن تره که رمز رو حتی تا ۱۵ دقیقه حفظ نکنه و برای هر دستور رمز بخواد بهتره.پس تا اینجا میشه گفت اگر su بعدش دستور exit نیاد تا زمانی که این دستور وارد نشه امنیت روت کمه و روت یوزر آسیب پذیره.اما دستور sudo هم بعد از اجرا میشه گفت تا ۱۵ دقیقه روت امنیت خوبی نداره چون اوبونتو تا ۱۵ دقیقه رمز شما رو حفظه و رمز نمیخواد!
اما از اون جایی که لینوکس انعطاف پذیره دستور خوب su -c command رو هم داره.که به نظر من امنیتش از اون دو تای دیگه(su , sudo) هم بیشتره.چون که دستور su با پارامتر c فقط یک دستور ممتاز رو اجرا میکنه.و برای هر دستور ممتاز(دستور سطح کاربر روت) نیاز به رمز روت داره.و این دستور دیگه نیاز به exit نداره چون که فقط یک command ممتاز رو اجرا میکنه
به فرض مثال دستور su -c apt-get install mendeley برای اجرا شدن نیاز به رمز root داره.ولی اوبونتو که رمزی رو به روت اختصاص نداده.به همین دلیل از این دستور در اوبونتو نمیشه استفاده کرد.این دستور نیاز به root account’s password داره.ولی شما در اوبونتو فقط user account’s password دارید.چون که در مراحل نصب اون یک رمز وارد کردید و اون هم رمز کاربری خودتونه
فعال کردن root user در اوبونتوبرای دادن پسورد به یوزر روت میتونید دستور زیر رو در ترمینال بنویسید :
sudo passwd root
بعدش اول باید رمز فعلی (رمز کاربری خودتون) رو وارد کنید.بعدش از شما میخواد که رمز یونیکس رو وارد کنید(Enter new Unix Password).بعد از این میتونید حتی کاملا به صورت گرافیکی وارد یوزر root بشوید.اما این کار شدیدا خطر داره حسن
برای اطلاعات بیشتر این لینک رو ببینید :
http://www.howtogeek.com/111479/htg-explains-whats-the-difference-between-sudo-su/