برای مثال

آیا انجام این کار امن تر است:

  1. $ sudo [cmd] [args] [enter user password]

یا

  1.  $ su - [enter root password]
    # [cmd] [args] 
    
    

من همیشه فرض می کردم که آنها دقیقاً همان چیزها هستند ، زیرا سودو از setuid-root استفاده می کند ، بنابراین فرایندی که به عنوان اولین بحث سودو انجام می شود با شناسه مؤثر سودو اجرا می شود ، که ریشه دارد.

سوال من: آیا سودو هرگز در نهایت شناسه مؤثر خود را به کاربر عادی منتقل می کند؟ سپس در این حالت ، شماره 1 شرط ایمن تر خواهد بود ، زیرا اگر برنامه / خدمتی که sudo با آن اجرا می شود توسط یک مهاجم به خطر بیفتد ، این احتمال وجود دارد که مهاجم به عنوان ریشه اجرا نشود ، زیرا امتیاز قبلاً کاهش یافته است (نوع مانند یک شرایط مسابقه)؟ اما با عدد 2 مقایسه کنید ، سپس هر برنامه ای که در هنگام اجرا به عنوان root به خطر بیفتد ضرر دارد.