انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: محمدامین در 26 شهریور 1392، 09:14 ب‌ظ

عنوان: خاموش کردن بدون sudo(حل شد)
ارسال شده توسط: محمدامین در 26 شهریور 1392، 09:14 ب‌ظ
فرمان زیر باید دسترسیش روت باشه:shutdown -h nowراهی برای خاموش کردن بدون sudo وجود داره؟
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ح.م در 26 شهریور 1392، 09:53 ب‌ظ
توی لینوکس واسه تنفس هم باید root باشی ! مگه اینکه بری و sudo رو دستگاری کنی تا برای یه دستور خاص نیاز به پسورد نداشته باشه ! فکر کنم راهش هم وجود داشته باشه بگردی پیدا می شه ، فکر کنم دوستان قبلا دوستان توی همین انجمن گفته بودن.
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: Masoud92m در 26 شهریور 1392، 11:43 ب‌ظ
نمیدونم از نظر امنیت مشکل داره یا نه، اما :

sudo chmod +s /sbin/shutdown
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: دانیال بهزادی در 27 شهریور 1392، 12:32 ق‌ظ
اگه خودت نمی‌تونی روشش رو حدس بزنی یعنی این‌کار برات خطر داره، پس یا بیخیالش شو و یا اون‌قدر یادبگیر که خودت بتونی روشش رو ایجاد کنی
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: محمدامین در 27 شهریور 1392، 12:53 ق‌ظ
خب پس چطوریه که از منوی خود سیستم راحت حتی کاربر معمولی هم میتونه این جار رو انجام بده؟
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: nixoeen در 27 شهریور 1392، 03:02 ق‌ظ
نمیدونم از نظر امنیت مشکل داره یا نه، اما :

sudo chmod +s /sbin/shutdown
معلومه که مشکل داره! SUID تنها باید در شرایط خیلی خاص استفاده بشه و به راحتی می‌تونه مورد سواستفاده قرار بگیره.

برای خاموش کردن، می‌تونید بنویسید:
dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ساسان در 27 شهریور 1392، 07:30 ق‌ظ
نقل‌قول
راهی برای خاموش کردن بدون sudo وجود داره؟
دستور shutdown رو نمی‌دونم ولی روی توزیع مدرنی که از systemd (http://www.freedesktop.org/wiki/Software/systemd/) استفاده می‌کنه (فدورا، آرچ و ...) خیلی ساده‌است:
systemctl poweroff
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ali.abry در 27 شهریور 1392، 11:03 ق‌ظ
فکر کنم اگر به دستور shutdown دست رسی suid بدی درست بشه مثل دستور passwd که بهش دست رسی suid دادن . البته فایل اجرایی دستورش باید صاحبش root باشه تا کار کنه .
http://30li.ir/bash/commands/chmod
اخرش suid رو گفته
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: Masoud92m در 27 شهریور 1392، 12:43 ب‌ظ
نمیدونم از نظر امنیت مشکل داره یا نه، اما :

sudo chmod +s /sbin/shutdown
معلومه که مشکل داره! SUID تنها باید در شرایط خیلی خاص استفاده بشه و به راحتی می‌تونه مورد سواستفاده قرار بگیره.

برای خاموش کردن، می‌تونید بنویسید:
dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown

یعنی برای خاموش کردن سو استفاده بشه یا چیزا های دیگه هم میشه ؟ (برای اطلاعات خودم میپرسم)
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: nixoeen در 27 شهریور 1392، 05:28 ب‌ظ
یعنی برای خاموش کردن سو استفاده بشه یا چیزا های دیگه هم میشه ؟ (برای اطلاعات خودم میپرسم)
برای چیزهای دیگه. برنامه‌ای که با ایده SUID بودن نوشته نشده رو نباید SUID کرد، چون ممکنه ملاحظات امنیتی‌ای که برای SUID بودن لازمه رو در نظر نگرفته باشند.
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: بابک طور در 07 بهمن 1392، 12:23 ق‌ظ
سلام.
من از لویونتو استفاده می‌کنم. البته با سشن (session) اُوپن‌باکس (openbox).

داستان اینه که کلاً دکمه یا منویی برای این کار نیست. یا باید از طریق ترمینال این کار رو انجام بدم و یا باید اول از اُوپن‌باکس خارج بشم، بعد توی صفحه‌ی لوگین لوبونتو از دکمه‌ای برای خواموش یا ریست هست استفاده کنم.

یه جستجویی کردم به به این رسیدم:
http://www.debianuserforums.org/viewtopic.php?f=9&t=216 (http://www.debianuserforums.org/viewtopic.php?f=9&t=216)

ولی کار نمی‌کنه...

از فرمان
systemctl poweroffهم استفاده کردم که خوب ظاهراً چنین چیزی در اُپن‌باکس نداریم.

این فرمان رو ولی امتحان نکردم.
dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown
راستش خیلی طولانی بود و من ازش سر در نیاوردم. و همچنین توش خیلی «گنوم» داشت. گفتم اول بپرسم برای اُپن‌باکس هم کار میکنه یا نه؟

--------
خوب این هم کار نمی‌کنه.
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ح.م در 08 بهمن 1392، 09:27 ق‌ظ
گام اول یورش به sudo
sudo visudoگام دوم دستکاری sudo برای اینکه برای دستور shutdown نیازی به پسورد نباشد (مشکلات امنیتی به عهده خودتان می باشد)
برای این کار به انتهای متن
‫‪username ALL=(ALL) NOPASSWD: ‫‪/sbin/shutdown‬‬
‬‬
را اضافه نموده و آن را ذخیره می کنیم.
مصدوم آماده است حال برای خاموش کردن کافی است دستور
sudo ‫‪/sbin/shutdown‬‬ -h nowرا بزنید
البته دوستان توجه کنند اگر به کل بی خیال امنیت کامپیوتر شده اید می توانید به جای آن خط این خط را اضافه کنید
‫‪username ALL=(ALL) NOPASSWD: ALL‬‬
توجه کنید به جای username نام کاربری خود را وارد کنید.
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: بابک طور در 08 بهمن 1392، 12:10 ب‌ظ
نقل‌قول
برای این کار به انتهای متن
‫‪username ALL=(ALL) NOPASSWD: ‫‪/sbin/shutdown‬‬
‬‬
را اضافه نموده و آن را ذخیره می کنیم.
به آخر فایل یا زیر بخش User privilege specification ؟

به جای ALL چی بنویسم که فقط خودم بدون پسورد این کار رو انجام بدم؟

یه نکته‌ی دیگه اینکه من از دستور زیر توی ترمینال جواب می‌گیرم:
babak@babak-Studio-1558:~$ echo "mypasswd"|sudo -S shutdown -k now
[sudo] password for babak:
Broadcast message from root@babak-Studio-1558
(unknown) at 12:08 ...

The system is going down for maintenance NOW!
ولی وقتی اون رو در فایل menu.xml قرار می‌دم کار نمی‌کنه:
<item label="Shutdown"><action name="Execute"><execute>echo "mypasswd"|sudo -S /sbin/shutdown -h now</execute></action></item>
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ح.م در 08 بهمن 1392، 04:21 ب‌ظ
به آخر همون متن که می یاد بعد هم ذخیره اش کن اگر دیدی موقع خروج خطا می ده گزینه خروج بدون تغییر رو بزن
به جای ALL نمی خواد هیچی بزاری به نظرم همون دستور خودت از لحاظ امنیت خیلی بهتره پس بهتره sudo رو دستکاری نکنی پسر خوب  ;)
من اومدم یه کاری کردم gedit یا pluma رو باز کردم توش اینو ریختم
echo "password"|sudo -S /sbin/shutdown -h nowبه جای password هم که معلومه چی باید بگذاریم بعد ذخیره اش کردم به اسم shutdown بعد هم با راست کلیک و رفتن به properties قابلیت اجرا بهش دادم بعد هم رو کلیک کردم و run رو زدم و کامپیوتر خاموش شد.
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: بابک طور در 08 بهمن 1392، 11:37 ب‌ظ
من این رو نوشتم توی یک فایل به اسم restart.sh و بهش امکان اجرا هم دادم:
#!/bin/bash
echo "mypasswd"|sudo -S /sbin/shutdown -r now
برای شاتدان هم همین کار رو کردم و آدرس رو توی menu.xml وارد کردم و حل شد.

فقط یک سوال اینکه من پسورد رو توی این فایل‌ها نوشتم. همینکه فقط به صاحب فایل اجازه‌ی دسترسی دادم کافیه؟ امنیت ایجاد می‌کنه؟
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: xubuntu4iran در 09 بهمن 1392، 01:51 ق‌ظ

خاموش کردن از طریق dbus
 (http://andrusiv.com/blog/2011/12/12/shutdown-dbus.html)
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ح.م در 09 بهمن 1392، 07:22 ق‌ظ
ببین همین کاری که الان کردی خودش از لحاظ امنیت زیاد جالب نیست اگر یه نفر بتونه فقط به سطح دسترسی یه کاربر معمولی برسه دیگه کار تمومه و با خوندن اون فایل رمز شما دو دستی در اختیارش قرار می گیره اما گاهی راحتی کار به کاهش سطح امنیت می چربه مثلا شما می دونستی همین رابط گرافیکی امنیت رو می یاره پایین ! واسه همین هم تو سرور ها استفاده نمی شه.(حالا نگید به خاطر سنگین نشدن هم هست که خودم می دونم)
بی زحمت یه حل شد اضافه کنید.
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: بابک طور در 09 بهمن 1392، 09:54 ق‌ظ
خوب صاحب فایل منم. غیر از من کس دیگه‌هم می‌تونه باز کنه؟ همه‌ی دسترسی‌ها رو روی صاحب فایل گذاشتم.

نقل‌قول
بی زحمت یه حل شد اضافه کنید.
راستش من موضوع رو ایجاد نکردم.


خاموش کردن از طریق dbus
 (http://andrusiv.com/blog/2011/12/12/shutdown-dbus.html)
این هم چیز خیلی خوبیه. فقط یه سوال: همه‌ی کاربرا می‌تونن این رو اجرا کنن؟
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ح.م در 09 بهمن 1392، 10:29 ب‌ظ
خوب صاحب فایل منم. غیر از من کس دیگه‌هم می‌تونه باز کنه؟ همه‌ی دسترسی‌ها رو روی صاحب فایل گذاشتم.
تمام برنامه هایی که شما باز می کنی سطح دسترسی به این فایل رو دارن ! کافیه یکی بتونه این برنامه ها رو هک کنه یا یه باگ کوچولو داشته باشه ! اصلا معقول نیست که پسوردت رو بریزی توی یه فایل که همه برنامه های که سطح دسترسی ریشه ندارن به اون فایل دسترسی داشته باشن این خیلی غیر امنه !
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: محمدامین در 18 بهمن 1392، 02:14 ب‌ظ
برای این همچین چیزی پرسیدم که بدونم آخه یه کاربر معمولی (و نه ادمین) چطور میتونه سیستم رو با چند تا کلیک ساده خاموش کنه؟ یعنی در واقع اون فرمانی که بدون پسورد کامپیوتر رو خاموش می‌کنه چیه؟
عنوان: پاسخ : خاموش کردن بدون sudo
ارسال شده توسط: ح.م در 18 بهمن 1392، 05:02 ب‌ظ
به طور واضح می گم کاربر معمولی حق خاموش کردن یا ری ست رو نداره مگر با اجازه کاربر ریشه ! پس باید تنظیمات امنیتی رو عوض کنیم که این کار ممکن بشه که توی صفحه قبل توضیح داده شد.
رابط های کاربری این قابلیت رو ایجاد می کنن با یک سری اجازه های قبلی از سطح کاربری ریشه برای کارهای خاص مثل restart و خاموش کردن .