gksu nautilus
حالا ازتون می خواد تا پسورد روت رو وارد کنین بعد این کار شما یه فایل منیجر با دسترسی روت دارین (در واقع به سیستم فهموندین که شما سوپریوزر هستین و حالا می تونین تو فولدر روت و ... به گشت گذار بپردازین)
شما به عنوان یوزر عادی نمی تونین به پوشه روت دسترسی داشته باشین فقط یوزر روت (سوپر یوزر) می تونه این کارو بکنه
با توجه که شما خودتون می گید کاربر صفرم نمی تونم ازتون انتظار داشته باشم که بیاین یه شبه از فایل منیجر ها و یا دستورات ترمینالی برای دسترسی به این فولدر استفاده کنین ولی در دراز مدت بهتون توصیه می کنم که کار کردن با ترمینال رو خوب یاد بگیرین و دیگه هیچ نرم افزار گرافیکی رو به صورت روت باز نکنین (این کار باعث ناپایداری سیستم می شه)
ولی فعلا به صورت نقد این دستورو داشته باشین تا بعد ایشالا خودتون را بیوفتین (با وارد کردن این دستور تو خط فرمان ما فایل منیجر پیش فرض اوبونتو (nautilus) رو به صورت روت اجرا می کنیمکد: [انتخاب]gksu nautilus
حالا ازتون می خواد تا پسورد روت رو وارد کنین بعد این کار شما یه فایل منیجر با دسترسی روت دارین (در واقع به سیستم فهموندین که شما سوپریوزر هستین و حالا می تونین تو فولدر روت و ... به گشت گذار بپردازین)
من که خودم مفصل اینا رو گفتم ولی ایشون می گن من در حد صفرم خب نمی شه که روز اولی بگم همشو تو خط فرمان اجرا کنمثل اینه که به یکی که داره رانندگی یاد میگیره بگی نمیشه همون روز اول بهش گفت از چراغ قرمز رد نشو! بذار اول رد بشه، راهشم که مثلا پلیس نگیردش نشونش بدیم!
یعنی واقعا تا الان شما gedit رو به صورت روت اجرا نکردینخیر :)
من اون همه توضیحو اون بالا دادم که امثال شما نیان خورده بگیرن ;)برمیگردیم به مثال اول! مثل اینه که به پلیس بگی من پشت ماشینم نوشتم «تازهکار» که اگه پلیس دید خلافی کردم بهم گیر نده :) کار اشتباه، اشتباهه، چه با توضیح، چه بیتوضیح.
مثل اینه که به یکی که داره رانندگی یاد میگیره بگی نمیشه همون روز اول بهش گفت از چراغ قرمز رد نشو! بذار اول رد بشه، راهشم که مثلا پلیس نگیردش نشونش بدیم!با تمام احترامی که برای شماقائلم باید خدمتتون عرض کنم این مثال مع الفارغ محسوب می شه چون رد شدن از چراغ قرمز جرم محسوب می شه ولی دسترسی روت دادن جرم نیست اشتباهه !(جرم با اشتباه فرق داره) اگه بخوایم یه مثال از جنس مثال خودتون بگم باید بگم مثلا خاموش شدن ماشین (به دلیل عدم کنترل مناسب کلاج و گاز) برای یه تازه کاره اینکه ماشین خاموش بشه وسط خیابون یه اشتباهه ولی خلاف نیست (دستور روت اگر برای نرم افزارهای گرافیکی خلاف بود این امکان فراهم نمی شد مثلا می تونست برای نرم افزارهای گرافیکی ارور بده ولی اشتباهه خلاف نه !)
راه اشتباه یاد تازهکارها ندید!
خیر :)باز هم با تمام احترامی که براتون قائلم نمی تونم باور کنم آخه شما از روز اول از کجا می دونستین که اجرا نرم افزار گرافیکی به صورت روت اشتباهه بهتون وحی می شه ! یا اصلا می دونستین شما از روز اول چطوری صفر تا صد بش رو یاد گرفتین
https://help.gnome.org/users/gedit/stable/gedit-edit-as-root.html.en (https://help.gnome.org/users/gedit/stable/gedit-edit-as-root.html.en)To edit files as the root user, launch gedit from the terminal by entering:کد: [انتخاب]sudo gedit
باز هم با تمام احترامی که براتون قائلم نمی تونم باور کنم آخه شما از روز اول از کجا می دونستین که اجرا نرم افزار گرافیکی به صورت روت اشتباهه بهتون وحی می شه !کتاب کاربر عزیز :) من گنو-لینوکس رو به صورت تجربی یاد نگرفتم، با کتابهای آموزشی پیش رفتم. یک کاربر تازهکار هم دقیقا همینجا میتونه بفهمه که اینکار اشتباهه و نباید انجام بده! اینطوری بدون اجرای نرمافزار گرافیکی با root یاد میگیره که کار درستی نیست و احتمالا هم انجام نمیده :)
فروم اوبونتو به جای اینکه تبدیل بشه به یه محل مفید برای اینکه تازه کارا مشکلاتشون حل بشه و در عین حال پروژه ها و فعالیت های درست و حسابی توش شکل بگیرهقرار نیست مشکلات تازهکارها رو با نشون دادن راه اشتباه حل کنیم که! راه حل موقتی که میتونه در آینده مشکلات بیشتری پیش بیاره.
اگه اجرای gedit از root اشتباهه پس چرا وب سایت help رسمی خود gnome تو بخش Edit a file as the root user اینو نوشته؟:ممنون از اطلاعتون، تصحیحش میکنم :)
https://help.ubuntu.com/community/RootSudo
https://wiki.archlinux.org/index.php/Running_X_apps_as_root
- روش اجرای صحیح نرم افزارهای گرافیکی تحت کاربر ریشه، استفاده از gksu یا kdesu است.و البته این هم «بد» نسبت به «بدتر» هست. برای مثال اگر nautilus با root اجرا شده باشه (حتی با gksudo)، کافیه یک فایل که SUID داره یک جای دیگه کپی بشه، حالا یک فایل با SUID کاربر root داریم! و کلی مثالهای دیگه که از لحاظ امنیتی همچنین از لحاظ پایداری، سیستم رو به خطر میندازه.
من که خودم مفصل اینا رو گفتم ولی ایشون می گن من در حد صفرم خب نمی شه که روز اولی بگم همشو تو خط فرمان اجرا کنمن خودم به شخصه از روزی که فهمیدم نباید همچین کاری کنم سریعا همه کارامو متوفق کردم و رفتم کار با پایانه رو یاد گرفتم و همینطور کار با ویم رو. اونجا هاییم که نفهمیدم پرسیدم تا دستور درست بهم بدن که کارام موقت راه بیوفته ولی در کنارش اون کار بالا رو هم داشتم انجام میدادم :)
مثلا خود شما از همون روز اول با vim کار کردین ؟ (یعنی واقعا تا الان شما gedit رو به صورت روت اجرا نکردین)
من اون همه توضیحو اون بالا دادم که امثال شما نیان خورده بگیرن ;)
من خودم به شخصه از روزی که فهمیدم نباید همچین کاری کنم سریعا همه کارامو متوفق کردم و رفتم کار با پایانه رو یاد گرفتم و همینطور کار با ویم رو. اونجا هاییم که نفهمیدم پرسیدم تا دستور درست بهم بدن که کارام موقت راه بیوفته ولی در کنارش اون کار بالا رو هم داشتم انجام میدادم :)بله داداش درستش هم همینه حرف من اینه از روز اول و با یه کامنت نمی شه همه چی رو توضیح داد وگرنه منم گفتم که این کار غلطه
کافیه یک فایل که SUID داره یک جای دیگه کپی بشه، حالا یک فایل با SUID کاربر root داریم! و کلی مثالهای دیگه که از لحاظ امنیتی همچنین از لحاظ پایداری، سیستم رو به خطر میندازه.داداش این اتفاق محدود به nautilus و ... نمی شه همین کار رو هم می تونین با ترمینال با دستور cp هم انجام بدین و سیستم رو ناپایدار کنین حالا اون نرم افزار گرافیکی رو با gksu اجرا کردین و این اشتباه رو انجام دادین اینجا با sudo و تحت ترمینال همون اشتباه رو انجام دادین
- روش اجرای صحیح نرم افزارهای گرافیکی تحت کاربر ریشه، استفاده از gksu یا kdesu است.و البته این هم «بد» نسبت به «بدتر» هست. برای مثال اگر nautilus با root اجرا شده باشه (حتی با gksudo)، کافیه یک فایل که SUID داره یک جای دیگه کپی بشه، حالا یک فایل با SUID کاربر root داریم! و کلی مثالهای دیگه که از لحاظ امنیتی همچنین از لحاظ پایداری، سیستم رو به خطر میندازه
حرف من اینه از روز اول و با یه کامنت نمی شه همه چی رو توضیح داد وگرنه منم گفتم که این کار غلطهخب دیگه، میتونید مستقیم راه درست رو نشون بدید بجای راه اشتباه :)
همین کار رو هم می تونین با ترمینال با دستور cp هم انجام بدینیک فایل که SUID داره رو با cp کپی کنید و میبینید فایلی که کپی شده SUID نداره :) چون cp رو با این فرض ساختن که ممکنه توسط root هم اجرا بشه، ولی Nautilus رو با این فرض ساختن که با کاربر عادی اجرا بشه.
کافی هست بنده یک فایل را با sudo cp کپی کنم، فایل جدید تحت مالکیت کاربر ریشه ایجاد میشود.این هم دقیقا چیزی هست که بارها توی این انجمن تذکر دادم. به همین دلیل نباید هر دستوری رو با sudo اجرا کرد به این دلیل که شاید احتیاج به دسترسی ریشه داشته باشه! بلکه تنها باید دستوراتی رو با sudo اجرا کرد که اونجا حتما نیاز به دسترسی ریشه هست و میدونیم داریم چی رو اجرا میکنیم. و همینطوری که بالا گفتم، cp به صورت پیشفرض SUID رو انتقال نمیده :)
یک فایل که SUID داره رو با cp کپی کنید و میبینید فایلی که کپی شده SUID نداره :) چون cp رو با این فرض ساختن که ممکنه توسط root هم اجرا بشه، ولی Nautilus رو با این فرض ساختن که با کاربر عادی اجرا بشه.والا من این کارو کردم (sudo cp رو برای یه فایل SUID انجام دادم) ولی فایل کپی شده هم SUID داره شما یه دور تست کنین
cd Desktop
touch a.txt
chmod 0 a.txt
sudo cp a.txt b.txt
stat -c "%a %n" Desktop/b.txt
و اما جوابی که ترمینال برگردوند0 Desktop/b.txt
والا من این کارو کردم (sudo cp رو برای یه فایل SUID انجام دادم) ولی فایل کپی شده هم SUID داره شما یه دور تست کنینشاید بهتر باشه که اول مطالعه کنید SUID چی هست و چطور میشه اون رو به یک فایل اضافه کرد: لینک (http://www.linuxnix.com/suid-set-suid-linuxunix/)
لینک رو مطالعه کردم دستوری که نوشتم به نظرم درسته اگه اشتباهی هست شما اصلاح کنین
این دستور owner groups و other رو به وضعیت none می بره (که به اختصار کافیه فقط یه 0 بنویسین)
حالا اگه su - هم قبلش زده بودم user id مال روت می شد الان یوزر آی دی مال منه که البته اون شکلی هم تست کردم فرقی نداشت
راستی شما هم خروجی دستوراتتون رو بذارین ؟ که ببینیم چطور دستور cp برای شما یه فایل SUID دار رو بدون SUID می کنه
به صورت پیشفرض cp صفات رو در هنگام کپی، انتقال نمیده.درسته، چون میدونه که ممکنه با کاربر root اجرا بشه، برعکس Nautilus که فرضش اینه که با کاربر عادی اجرا میشه.
به هر حال، به عنوان نصیحت کلی به همه ی دوستان: فکر نکنم اصلا این موضوع SUID ارتباطی به مبحث تاپیک داشته باشه... فکر کنم بهتره به جای تکه پرانی و توجیه های بیربط برگردیم به مبحث اصلی تاپیک و به فکر پاسخ به سوال کاربر باشیم.پستها رو نخوندید؟ :)
ولی خب یه نفر میگفت حداقل که میخوای به روت دسترسی پیداکنی برای چی؟؟برای اینکه به فایلی که با کاربر عادی بهش دسترسی نداری دسترسی داشته باشی :)
من فقط دیدم فایل روت رو اجازه دسترسی بهش ندارم و فقط میخواستم بدونم چرا؟یعنی اون فایل مال تو نیست