انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: MR-Mostafa در 12 مهر 1396، 07:31 بظ
-
سلام
یکسری بحثهایی توی این انجمن شده که نرمافزارهای گرافیکی رو تحت هیچ شرایطی نباید با دسترسی روت اجرا کرد. (مثل این تاپیک (http://forum.ubuntu.ir/index.php/topic,146755.15/topicseen.html))
چون نمیخواستم اون تاپیگ بیشتر از این منحرف بشه و به علت اینکه بعدا اگر برای شخص دیگهای سوالی در این زمینه پیش اومد، راحتتر به نتیجه برسه تاپیک رو جداگانه ایجاد کردم.
بخشی از نظرات دوستان عزیز در مورد اجرا نکردن نرمافزارهای گرافیکی با دسترسی روت :
برنامه گرافیکی تحت هیچ شرایطی نباید با دسترسی روت اجرا بشه و اصلاً هم نیازی به اینکار نیست.
برنامهها و کتابخونههای گرافیکی با این تفکر ایجاد نشدند که در محیط root اجرا بشن، در نتیجه اجرای اونها میتونه مشکلات زیادی از جمله بهم ریختن مجوزها، امکان سواستفاده امنیتی و امکان ناپایدار کردن سیستم رو ایجاد میکنه. استثنا نرمافزارهایی هستند که برای اجرا با root نوشته شدند و حتی اونها رو نیازی نیست با کاربر root اجرا کنید، خودشون بعد از اجرا رمز کاربر root رو میپرسند و کاربرشون رو عوض میکنند.
اجرای [برنامههای گرافیکی در نشست روت] میتونه همراه با مشکلات امنیتی باشه (در حد اینکه دیدن یک پوشه باعث آلوده شدن سیستم بشه)، همچنین مشکلات پایداری بوجود بیاره (بدلیل مجوزها و فایلهای تنظیماتی که ایجاد میکنه) و همچنین چون برای اینکار نوشته نشده، باعث خرابیهایی بشه که برای کاربر عادی مهم نیست، ولی میتونه در فایلهای سیستمی باعث مشکلاتی بشه که گاهی پیدا کردنشون خیلی سخت خواهد بود.
خوب حالا سوالی که برام پیش اومده:
اینکه دوستان فرمودن که نباید نرمافزارهای گرافیکی رو (مطلقا) در محیط روت اجرا بکنیم، درست. اما توی خیلی از آموزشها میبینیم که برای تغییر یک تنظیماتی یا یک فایل کانفیگی اکثرا آموزش دادن که ویرایشگر gedit در محیط روت اجرا بشه. (با فرض اینکه انجام این کار اشتباه هست، سوال زیر رو مطرح میکنم)
سوال اول: اگر برای مشاهده یا تغییرات یا انجام تنظیمات خاصی نیاز باشه که اون فایل با محیط روت اجرا بشه، باید چیکار کرد؟ (چون در حال عادی یوزر دسترسی مشاهده و یا ویرایش اون فایل رو نداره.)
سوال دوم و سوم: این سوال مرتبط به فرمایش دوست عزیز nixoeen هست (بخش سبز رنگ)، آیا منظور از استثناء همون مورد سوال بالا هست؟ و اگر به فرض خوده نرمافزار پیغام دسترسی روت رو بده و ما هم رمز رو وارد کنیم، چه فرقی وجود داره با اینکه ما از ابتدا نرمافزاری رو با دسترسی روت اجرا کنیم و یا خوده نرمافزار اعلام کنه که نیاز به این دسترسی داره؟ (در فرضی که یقین داریم تغییر در فایل مدنظرمون نیاز به دسترسی روت داره.)
-
سلام
بعضی نرم افزار ها نیاز به دسترسی روت دارن، مثل جیپارتد.
اما اجرای اینها با sudo, باعث اجرای تمام کتابخونه هاشون با دسترسی روت میشه که تا بعد از بستن نرمافزار هم ادامه خواهد داشت.
وقتی چنین دسترسی ای به مثلا چن تا کتابخونه داده بشه، یسری کار با دسترسی روت رو میشه بدون نیاز به پسورد انجام داد، که در حالت عادی نمیشه.
بهترین راه اجرا با دسترسی روت برای برنامه های گرافیکی، gksu هستش که اکثر برنامه های گرافیکی با دسترسی روت ازش استفاده میکنن.
پ.ن: البته تو یک سیستم یونیکس لایک، بهتره برا اینطور کارا از ترمینال خالص استفاده کنید.
-
سوال اول: اگر برای مشاهده یا تغییرات یا انجام تنظیمات خاصی نیاز باشه که اون فایل با محیط روت اجرا بشه، باید چیکار کرد؟ (چون در حال عادی یوزر دسترسی مشاهده و یا ویرایش اون فایل رو نداره.)
استفاده از نرمافزارهایی مثل nano.
سوال دوم و سوم: این سوال مرتبط به فرمایش دوست عزیز nixoeen هست (بخش سبز رنگ)، آیا منظور از استثناء همون مورد سوال بالا هست؟ و اگر به فرض خوده نرمافزار پیغام دسترسی روت رو بده و ما هم رمز رو وارد کنیم، چه فرقی وجود داره با اینکه ما از ابتدا نرمافزاری رو با دسترسی روت اجرا کنیم و یا خوده نرمافزار اعلام کنه که نیاز به این دسترسی داره؟ (در فرضی که یقین داریم تغییر در فایل مدنظرمون نیاز به دسترسی روت داره.)
خیر، gedit هم موارد لازم رو رعایت نمیکنه (توی یکی از پستها یک سری از اونها رو لیست کرده بودم).منظور نرمافزارهایی مثل gparted هستش.
وقتی که خود نرمافزار اعلام کنه، میدونید که نویسندهٔ اون نرمافزار اقدامات لازم رو تا حد ممکن انجام داده و با این فرض این برنامه رو نوشته که قراره با کاربر root اجراش کنید.
-
سوال اول: اگر برای مشاهده یا تغییرات یا انجام تنظیمات خاصی نیاز باشه که اون فایل با محیط روت اجرا بشه، باید چیکار کرد؟ (چون در حال عادی یوزر دسترسی مشاهده و یا ویرایش اون فایل رو نداره.)
درود
استفاده از vim, vi, nano, و ایمکس(که داخل ترمینال اجرا بشه.)
سوال دوم و سوم: این سوال مرتبط به فرمایش دوست عزیز nixoeen هست (بخش سبز رنگ)، آیا منظور از استثناء همون مورد سوال بالا هست؟ و اگر به فرض خوده نرمافزار پیغام دسترسی روت رو بده و ما هم رمز رو وارد کنیم، چه فرقی وجود داره با اینکه ما از ابتدا نرمافزاری رو با دسترسی روت اجرا کنیم و یا خوده نرمافزار اعلام کنه که نیاز به این دسترسی داره؟ (در فرضی که یقین داریم تغییر در فایل مدنظرمون نیاز به دسترسی روت داره.)
همونطور که nixoeen گفت:
خیر، gedit هم موارد لازم رو رعایت نمیکنه (توی یکی از پستها یک سری از اونها رو لیست کرده بودم).منظور نرمافزارهایی مثل gparted هستش.
وقتی که خود نرمافزار اعلام کنه، میدونید که نویسندهٔ اون نرمافزار اقدامات لازم رو تا حد ممکن انجام داده و با این فرض این برنامه رو نوشته که قراره با کاربر root اجراش کنید.
مورد دیگه هم در gparted (برای مثال) فقط برای قسمتی که لازمه دسترسی روت گرفته میشه نه کل برنامه
-
سلام
بعضی نرم افزار ها نیاز به دسترسی روت دارن، مثل جیپارتد.
اما اجرای اینها با sudo, باعث اجرای تمام کتابخونه هاشون با دسترسی روت میشه که تا بعد از بستن نرمافزار هم ادامه خواهد داشت.
وقتی چنین دسترسی ای به مثلا چن تا کتابخونه داده بشه، یسری کار با دسترسی روت رو میشه بدون نیاز به پسورد انجام داد، که در حالت عادی نمیشه.
بهترین راه اجرا با دسترسی روت برای برنامه های گرافیکی، gksu هستش که اکثر برنامه های گرافیکی با دسترسی روت ازش استفاده میکنن.
پ.ن: البته تو یک سیستم یونیکس لایک، بهتره برا اینطور کارا از ترمینال خالص استفاده کنید.
دستور gksu منقضی شده...
-
یک سوال برام پیش اومده، چرا برنامه هایی که برای اجرا با روت طراحی نشده اند در ترمینال با نشست روت اجرا بشند پیغام هشدار نمیدند؟ البته من چندین ساله که هیچ نرم افزاری را اینطوری اجرا نکردم، چون نیاز تداشتم، ولی اون اوایل اینکار رو انجام میدادم.
-
یک سوال برام پیش اومده، چرا برنامه هایی که برای اجرا با روت طراحی نشده اند در ترمینال با نشست روت اجرا بشند پیغام هشدار نمیدند؟ البته من چندین ساله که هیچ نرم افزاری را اینطوری اجرا نکردم، چون نیاز تداشتم، ولی اون اوایل اینکار رو انجام میدادم.
لابد برنامه نویسشون، توی برنامه اون کر رو اضافه نکرده که اگه شما با روت باز کردید پیغام بده...
شاید!
-
یک سوال برام پیش اومده، چرا برنامه هایی که برای اجرا با روت طراحی نشده اند در ترمینال با نشست روت اجرا بشند پیغام هشدار نمیدند؟ البته من چندین ساله که هیچ نرم افزاری را اینطوری اجرا نکردم، چون نیاز تداشتم، ولی اون اوایل اینکار رو انجام میدادم.
چون برای برنامهنویس این موضوع اولویت نیست، در نتیجه اول کار نمیاد چک کنه که آیا با root هست یا کاربر دیگهای. من خودمم هم توی برنامههام این تست رو نمیکنم.
البته بد نیست که اینکار انجام بشه و بعضی از برنامهها اینکار رو انجام میدن.
-
یک سوال برام پیش اومده، چرا برنامه هایی که برای اجرا با روت طراحی نشده اند در ترمینال با نشست روت اجرا بشند پیغام هشدار نمیدند؟ البته من چندین ساله که هیچ نرم افزاری را اینطوری اجرا نکردم، چون نیاز تداشتم، ولی اون اوایل اینکار رو انجام میدادم.
البته به نظر من بیشتر به این خاطر هست که اگر کاربر کلا روت بود بتونه با نرم افزار کار کنه. مثلا پاپی لینوکس (puppy linux ) در حالت پیش فرض فقط با روت بالا می یاد.
و خب این احتمال وجود داره که برنامه نویس فرض می کنه که اگر کسی دسترسی روت به سیستم داره پس حتما می دونه که داره چیکار می کنه. ( می گن یکی از فلسفه های یونیکس همینه که فرض بر اینکه کاربر می دونه داره چیکار می کنه)