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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: از فرمان mount استفاده نکنید!  (دفعات بازدید: 2042 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Farhaad 1992

  • Hero Member
  • *
  • ارسال: 943
  • جنسیت : پسر
  • گنو با گنوم
از فرمان mount استفاده نکنید!
« : 22 مهر 1396، 09:23 ق‌ظ »
من این تاپیکو از چند ماه قبل درنظر داشتم که بزنم ولی متاسفانه تنبلی کردم تا اینکه امروز یک تاپیک در رابطه با مشکل مانت با دستور mount دیدم که دیگه دیدم وقتشه تاپیکو بزنم، اصلا کلام اینکه فرمان mount متعلق به دوران قدیم هستش و استفاده از اون در این زمان مخصوصن توسط تازه کارها خیلی خوشایند و ضروری نیست، وقتی شما از یک مدیر پرونده گرافیکی استفاده میکنید و یا حتی GNOME Disks و با استفاده از اون میخواید یک پارتیشن را مانت کنید به نظرتون داره از فرمان mount استفاده میکنه؟ نخیر! از udisks استفاده میکنند، udisks دارای یک دیمون و یک ابزار خط فرمان به نام udisksctl است، اپلیکیشن ها از دیمون یا کتابخانش استفاده میکنند، ولی در محیط خط فرمان مانند ترمینال میتوان از ابزار خط فرمانش به نام udisksctl استفاده کرد، حالا مزایای استفاده از اون نسبت به فرمان mount چیه؟

پاسخ:
1. نیازی به وارد کردن مسیر مقصد نیست، همانند مدیر پرونده گرافیکی پارتیشن را در مسیر تنظیم شده سسیستم مانت میکند:

/media/username/label
یا
/run/media/username/label

چون از مسیر و شیوه استاندارد استفاده میکند پارتیشن مانت شده توسط برنامه های گرافیکی شناسایی میشود.

2. عدم نیاز به تعیین نوع فایل سیستم، آیا وقتی با مدیر پرونده گرافیکی اقدام به مانت یک پارتیشن میکنید نوع فایل سیستمشو تعیین میکنید؟! نخیر، چرا؟ چون خودش هوشمنده و شناسایی میکنه، خوب ابزار خط فرمان اون برنامه هم همین توانایی رو داره!

3. BASH COMPLETION
       udisksctl ships with a bash completion script to complete commands,
       objects, block devices and some options.

چیزی که فرمان mount نداره!

4. عدم نیاز به دسترسی ریشه برای هر کاری، اگر بخواید با فرمان mount یک فایل ایزو را مانت و آنمانت کنید حتمن به دسترسی ریشه نیاز دارید ولی با udisksctl خیلی راحت:

1. udisksctl loop-setup /path/to/file
2. udisksctl ....
مرحله دوم فرمانش یادم نیست! بعدن یک چک میکنم و مینویسم

5. نیازی به su یا sudo نداره، وقتی بخواد چیزی رو مانت کنه همانند مدیر پرونده گرافیکی گذرواژه را از شما میگیره.

6. تعیین نوع پارتیشن/فایل سیستم با فرمان mount پتانسیل خطا کردن داره:

https://earlruby.org/2015/02/stop-mounting-iso-files-in-linux-with-t-iso9660/

7. استفاده از اون خیلی راحت تر از فرمان mount هستش، به دلیل داشتن BASH COMPLETION و راهنمای ساده تر


آیا این دلایل کافی نیست که استفاده از فرمان mount را کنار بگذاریم؟
* نام کاربری حساب من Fedora-Red Hat است ولی نام نمایهٔ (پروفایل) من، نام حقیقی + سال تولد من است
* از دی ۱۳۹۸ دیگر فعالیت پیوسته و دائم ندارم
* نظرات و ارسال‌های من فقط در زمان ارسال خود معتبر بودند و نشان‌دهنده طرز فکر و سطح دانش فعلی من نیستند

آفلاین ubulink

  • Full Member
  • *
  • ارسال: 132
  • متن شخصی
    • عنوان وب سایت
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #1 : 22 مهر 1396، 11:24 ق‌ظ »
جالبه مطلب بسیار مفیدی بود
پس لینوکس در کدهای خط فرمان هم پیشرفت داشته ما نمی‌دونستیم! ما فکر میکردیم کدهای خط فرمان وحی منزل هستند و تغییر ناپذیر!
اگر کدهای جدید و مفید دیگری هم می‌شناسید معرفی کنید تا استفاده کنیم
« آخرین ویرایش: 22 مهر 1396، 01:20 ب‌ظ توسط ubulink »
اگر مشکل شما حل شد پست اول را ویراش کنید و به موضوع تایپیک عبارت    (حل شد)    را اضافه کنید تا کسی بیهوده برای پاسخ به یک موضوع حل شده زمان صرف نکند و اگر  علت و نحوهء حل شدن مشکل رابیان کنید به بسیاری از افرادی که بعدا به مشکل شما برخواهند خورد کمک خواهید کرد

آفلاین Mmjafari

  • High Sr. Member
  • *
  • ارسال: 556
  • جنسیت : پسر
  • لیلی نام دیگر آزادی ست
    • صفحه من تو گیت
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #2 : 22 مهر 1396، 11:35 ق‌ظ »
جالبه مطلب بسیار مفیدی بود
پس لینوکس در کدهای خط فرمان هم پیشرفت داشته ما نمی‌دونستیم! ما فکر میکردیم کدهای خط فرمان وحی منزل هستند و تغییر ناپذیر!
اگر کدهای جدید و مفید دگری هم می‌شناسید معرفی کنید تا استفاده کنیم
syntax errorهر برنامه ای بدون gui میره خط فرمان و این حتی به لینوکس هم ربطی نداره. حتی شل
کد های مشهور خط فرمان صرفا نرم افزار های کاربردی ای هستن که در نوع خودشون بهترین بودن و به این دلیل مشهور شدن.
غیر از این، شما خودتم میتونی دستور خط فرمان بسازی. برا هر برنامه ای که خودت نوشته باشی یا از قبل وجود داشته باشه

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #3 : 23 مهر 1396، 05:36 ق‌ظ »
سلام
نمی خوام بگم اشتباه می کنی ولی همه دلایل ات درست نیست.
بزرگترین مشکل udiskctl این هست که به طور پیش فرض همه جا نصب نیست ولی mount همیشه همه جا نصب هست.

نقل‌قول
پاسخ:
1. نیازی به وارد کردن مسیر مقصد نیست، همانند مدیر پرونده گرافیکی پارتیشن را در مسیر تنظیم شده سسیستم مانت میکند:

کد: [انتخاب]

/media/username/label
یا
/run/media/username/label


چون از مسیر و شیوه استاندارد استفاده میکند پارتیشن مانت شده توسط برنامه های گرافیکی شناسایی میشود.

اگر پارتیشن توی fstab باشه  اونوقت با دستور مونت هم مقصد نمی خواد
نقل‌قول
2. عدم نیاز به تعیین نوع فایل سیستم، آیا وقتی با مدیر پرونده گرافیکی اقدام به مانت یک پارتیشن میکنید نوع فایل سیستمشو تعیین میکنید؟! نخیر، چرا؟ چون خودش هوشمنده و شناسایی میکنه، خوب ابزار خط فرمان اون برنامه هم همین توانایی رو داره!

به طور معمول هم ما نیازی برای مشخص کردن فایل سیستم نداریم. خود مونت متوجه می شه.
نقل‌قول
3.
کد: [انتخاب]

BASH COMPLETION
       udisksctl ships with a bash completion script to complete commands,
       objects, block devices and some options.


چیزی که فرمان mount نداره!

به طور معمول اگر پارتیشن توی fstab باشه کامل کردن خودکار مونت کار می کنه. هرچند معمولا نیازی نیست چون فقط کافیه /dev/ و بعد تب رو برنی. و اینکه bash_completeion رو می شه خودت هم بنویسی
https://mknowles.com.au/wordpress/2012/09/22/how-to-stop-bash-from-completing-mount-dev-commands/
نقل‌قول
4. عدم نیاز به دسترسی ریشه برای هر کاری، اگر بخواید با فرمان mount یک فایل ایزو را مانت و آنمانت کنید حتمن به دسترسی ریشه نیاز دارید ولی با udisksctl خیلی راحت:

کد: [انتخاب]

1. udisksctl loop-setup /path/to/file
2. udisksctl ....
مرحله دوم فرمانش یادم نیست! بعدن یک چک میکنم و مینویسم


5. نیازی به su یا sudo نداره، وقتی بخواد چیزی رو مانت کنه همانند مدیر پرونده گرافیکی گذرواژه را از شما میگیره.

 محیط گرافیکی درواقع دسترسی ریشه داره (برای همین هم می تونه کامپیوتر رو خاموش کنه). به هر حال وقتی قراره پسورد رو وارد کنیم چه فرقی می کنه با sudo باشه یا با گرافیکی.
نقل‌قول
6. تعیین نوع پارتیشن/فایل سیستم با فرمان mount پتانسیل خطا کردن داره:

https://earlruby.org/2015/02/stop-mounting-iso-files-in-linux-with-t-iso9660/

خب برای مونت ایزو می نویسیم -o loop همونطوری که دستور udiskctl آپشن نیاز داره.


نمی خوام بگم که udisk بی استفاده است ولی قدرت و سادگی mount رو نباید انکار کرد.
udisk به ۱۰۰ بسته پیشنیاز دارد. ولی util-linux فقط به ۴۲ بسته نیاز دارد.



« آخرین ویرایش: 23 مهر 1396، 05:40 ق‌ظ توسط سید وحید رضا برهانی »
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #4 : 23 مهر 1396، 07:35 ق‌ظ »
محیط گرافیکی درواقع دسترسی ریشه داره (برای همین هم می تونه کامپیوتر رو خاموش کنه). به هر حال وقتی قراره پسورد رو وارد کنیم چه فرقی می کنه با sudo باشه یا با گرافیکی.
سلام
نه این حرف درست نیست ؛ محیط گرافیکی دسترسی به روت نداره مگه اینکه کاربرتون روت باشه یا نرم افزاری رو با دسترسی روت اجرا کنین

در مورد shutdown هم باید بگم گنو/لینوکس (و البته اکثر سیستم عامل های شبه یونیکس) اجازه ی خاموش کردن سیستم رو به کاربری که log in هستش بدون دسترسی روت می دن.

مثلاً شما تو خط فرمان می تونین خیلی راحت بنویسین :
systemctl poweroffو سیستم رو بدون دسترسی روت خاموش کنین
ولی اگه شما همین دستور رو از طریق یه یه کاربر log in نشده و یا remote shell مثل ssh (البته اینو مطمئن نیستم) بزنین بهتون اجازه ی خاموش کردن سیستم رو بدون دسترسی روت نخواهد داد

در ضمن دستوری رو که خود رابط گرافیکی اوبونتو برای خاموش کردن سیستم استفاده می کنه این هستش :
برای نسخه های قدیمی:
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdownبری نسخه های جدید:
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:trueکه هیش کدوم برای کاربر وارد شده دسترسی روت نمی خوان ...

پ.ن: اگه محیط گرافیکی دسترسی روت داشت برای نصب نرم افزار از طریق software center ازتون پسورد روت درخواست نمی شد.

آفلاین Mmjafari

  • High Sr. Member
  • *
  • ارسال: 556
  • جنسیت : پسر
  • لیلی نام دیگر آزادی ست
    • صفحه من تو گیت
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #5 : 23 مهر 1396، 07:46 ق‌ظ »
مثلاً شما تو خط فرمان می تونین خیلی راحت بنویسین :
systemctl poweroff
poweroff خالی کار میکنه، نیاز به سیستم سی تی ال نیست، همینطور روت
نقل‌قول
محیط گرافیکی درواقع دسترسی ریشه داره (برای همین هم می تونه کامپیوتر رو خاموش کنه). به هر حال وقتی قراره پسورد رو وارد کنیم چه فرقی می کنه با sudo باشه یا با گرافیکی.
ما هیچ ما نگاه
https://forum.ubuntu-ir.org/index.php/topic,146797.0.html
این تاپیک هم از بیخ چرته لابد؟

آفلاین Farhaad 1992

  • Hero Member
  • *
  • ارسال: 943
  • جنسیت : پسر
  • گنو با گنوم
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #6 : 23 مهر 1396، 09:13 ق‌ظ »
نقل‌قول
بزرگترین مشکل udiskctl این هست که به طور پیش فرض همه جا نصب نیست ولی mount همیشه همه جا نصب هست.
هر توزیع لینوکس که systemd داشته باشه این ابزار رو هم داره، احتمالن BSD ها ندارند، من هم هیچ کاری به BSD ندارم.

نقل‌قول
اگر پارتیشن توی fstab باشه اونوقت با دستور مونت هم مقصد نمی خواد
به صورت پیش فرض همه پارتیشن ها توی fstab هستند؟ من اطلاعای ندارم ولی اگر نباشند یک امتیاز مثبت برای udisksctl

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

نقل‌قول
به طور معمول اگر پارتیشن توی fstab باشه کامل کردن خودکار مونت کار می کنه. هرچند معمولا نیازی نیست چون فقط کافیه /dev/ و بعد تب رو برنی. و اینکه bash_completeion رو می شه خودت هم بنویسی
فرمان udisksctl برای همه چیز BASH COMPLETION داره، با واژه های ساده و قابل فهم
* نام کاربری حساب من Fedora-Red Hat است ولی نام نمایهٔ (پروفایل) من، نام حقیقی + سال تولد من است
* از دی ۱۳۹۸ دیگر فعالیت پیوسته و دائم ندارم
* نظرات و ارسال‌های من فقط در زمان ارسال خود معتبر بودند و نشان‌دهنده طرز فکر و سطح دانش فعلی من نیستند

آفلاین Sosha

  • High Sr. Member
  • *
  • ارسال: 689
  • جنسیت : پسر
  • Only Ubuntu <3
    • نوشته های یک دوستدار گنو
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #7 : 23 مهر 1396، 09:16 ق‌ظ »
بحث جالبی شده...

در تایید صحبت کاربر "ali76" جان، باید بگم که جز خاموش کردن هم برای Reboot هم همین داستانه...
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش برو خدا رو شکر کن که با دمپایی نیومدم سراغت!

آفلاین Sosha

  • High Sr. Member
  • *
  • ارسال: 689
  • جنسیت : پسر
  • Only Ubuntu <3
    • نوشته های یک دوستدار گنو
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #8 : 23 مهر 1396، 09:20 ق‌ظ »
من الان بسته‌های نصبیم رو بررسیی کردم متوجه شدم udisks2 روی سیستمم بطور پیشفرض نصب هست...

udisks2/artful,now 2.6.5-2ubuntu1 amd64 [installed]
  D-Bus service to access and manipulate storage devices

اوبونتو ۱۷.۱۰
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش برو خدا رو شکر کن که با دمپایی نیومدم سراغت!

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #9 : 23 مهر 1396، 09:55 ق‌ظ »
poweroff خالی کار میکنه، نیاز به سیستم سی تی ال نیست، همینطور روت
بله خالی هم کار می کنه ولی چه شما با systemctl بزنین چه بدون اون ، اصولا با sytemctl اجراش می کنه برای اثبات حرفم کافیه به خروجی های زیر نیگاه کنین:
type poweroff
poweroff is /sbin/poweroff
حالا به خروجی زیر نیگاه کنین:
file /sbin/poweroff
/sbin/poweroff: symbolic link to /bin/systemctl
همون طور که می بینین دستور poweroff به دستور systemctl لینک شده و با زدن اون دستور هم ، همون دستوری رو که من دادم اجرا می شه.

بحث جالبی شده...

در تایید صحبت کاربر "ali76" جان، باید بگم که جز خاموش کردن هم برای Reboot هم همین داستانه...
بله سوشا جان کاملاً درسته ...
میشه با خط فرمان برای ریبوت کردن از دستور زیر استفاده کرد:
systemctl rebootیا به قول دوستمون از دستور زیر (اینجا هم لینک شده) :
rebootو خود اوبونتو هم از دستور زیر استفاده می کنه :
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Reboot" boolean:true
که هیچ کدوم از اینا هم دسترسی روت نمی خواد.

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #10 : 23 مهر 1396، 01:10 ب‌ظ »
ممنون علی جان اگه اینطوری که پس اشتباه می کردم. نمی دونم شاید systemd اینکار رو می کنه. چون به قول خودت محل /sbin/poweroff توی پوشه sbin هست که اگه دوباره اشتباه نکنم :) باید با روت اجرا بشه. من فایل sudoer ام مال خیلی وقت پیش هست (قبل از systemd توی آرچ ) و توی این فایل تنظیم کردم که poweroff بدون پسورد اجرا بشه. یادم نمی یاد ولی حتما یک دلیلی داشته که اینکار رو کردم.


نقل‌قول
هر توزیع لینوکس که systemd داشته باشه این ابزار رو هم داره، احتمالن BSD ها ندارند، من هم هیچ کاری به BSD ندارم.
نه اینطوری نیست (می تونی خودت هم تست کنی) udisk2 پیشنیاز systemd نیست.

نقل‌قول
نه این حرف درست نیست ؛ محیط گرافیکی دسترسی به روت نداره مگه اینکه کاربرتون روت باشه یا نرم افزاری رو با دسترسی روت اجرا کنین
راستش اگه اشتباه نکنم :) هر چیزی که توی بوت اجرا بشه با دسترسی روت اجرا می شه. مثلا شما یک سرویس درست که خروجی whoami رو توی یک فایل ذخیره کنه بعد این رو فعال کن (enable) حالا کامپیوتر رو ری استارت کن و خروجی رو اگر ببینی نوشته root.
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #11 : 23 مهر 1396، 05:06 ب‌ظ »
راستش اگه اشتباه نکنم :) هر چیزی که توی بوت اجرا بشه با دسترسی روت اجرا می شه. مثلا شما یک سرویس درست که خروجی whoami رو توی یک فایل ذخیره کنه بعد این رو فعال کن (enable) حالا کامپیوتر رو ری استارت کن و خروجی رو اگر ببینی نوشته root.
نه وحید جان نیگاه کن ، الان ابزارهای خط فرمان هم با بوت بالا میان ولی دسترسی روت ندارن. در کل تو این مورد که در موردش صحبت می کنیم ، تفاوتی بین ابزارهای گرافیکی و غیرگرافیکی وجود نداره اگه ابزار گرافیکی برای یه کاری دسترسی روت نخواد پس میشه ابزارهای خط فرمانی رو پیدا و استفاده کرد که دسترسی روت نخوان ... (تخصیص منابع و مدیریتشون توی ابزارهای مختلف متفاوت هستش به خاطر همون هم هستش که یه کاری که تو ظاهراً یکسان انجام می شه ممکنه یه ابزار براش دسترسی روت لازم داشته باشه و یه ابزار دیگه ای نداشته باشه)
در مورد موضوع سرویسی هم که مطرح کردین بله به صورت پیش فرض ، systemd با کاربر روت کارا رو انجام می ده ، ولی فقط به صورت پیش فرض چون شما می تونین خیلی راحت تعریف کنین کاربری که می خواین کارا رو انجام بده کی باشه.
مثلا این فایل رو ایجاد کنین:
sudo nano /etc/systemd/system/whoami.serviceبعدش این محتوی رو توش قرار بدین (البته به جای asus چه تو آدرس و چه تو کاربر و گروه باید کاربر و گروه خودتون رو قرار بدین):
[Unit]
Description=whoami testing

[Service]
PermissionsStartOnly=true
User=asus
Group=asus
ExecStart=/bin/bash -c 'echo $(whoami) >> /home/asus/Desktop/whoami.txt'

[Install]
WantedBy=multi-user.target
حالا سرویس رو فعال کنین و اجرا کنین:
sudo systemctl enable whoami
sudo systemctl restart whoami
حالا چه الان و چه بعد ری استارت محتوی اون فایل ساخته شده به این صورت هستش:
cat ~/Desktop/whoami.txt
asus
پس ما می تونیم کنترل کنیم که یک پروسه که تحت بوت اجرا می شه هم با کاربری غیر روت اجرا بشه و یا دسترسی غیر روت داشته باشه.

من فایل sudoer ام مال خیلی وقت پیش هست (قبل از systemd توی آرچ ) و توی این فایل تنظیم کردم که poweroff بدون پسورد اجرا بشه. یادم نمی یاد ولی حتما یک دلیلی داشته که اینکار رو کردم.
بله زمان upstart مدیریت منابع با systemd متفاوت بود و برای چیزی که شما می خواین ، باید این خط (یا یه چیزی شبیه این) رو توی فایل /etc/sudoers قرار می دادیم:
asus ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/rebootولی systemd بدون نیاز به روت امکان استفاده از poweroff و reboot و ... فراهم کرده.
حالا ممکنه این سوال براتون پیش بیاد که مثلاً زمان ابونتو 14.04 که systemd نبود و Upstart استفاده می شد چرا رابط گرافیکی پسورد روت نمی خواست ولی مثلاً دستور poweroff دسترسی روت می خواست ؟
جواب این سوال رو من تو این قسمت داده بودمش:
در ضمن دستوری رو که خود رابط گرافیکی اوبونتو برای خاموش کردن سیستم استفاده می کنه این هستش :
برای نسخه های قدیمی:
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

رابط گرافیکی چه زمان Upstart و چه الان که systemd اومده از دستورات poweroff یا reboot استفاده نمی کرد.
رابط گرافیکی اون زمان از دستور بالا برای خاموش کردن سیستم استفاده می کرد که این دستور هیچ نیازی به دسترسی روت نداشت و می شد خیلی راحت با زدن دستور بالا بدون دسترسی روت سیستم رو خاموش کرد که البته الان شکل اون دستور به این صورت تغییر پیدا کرده:
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
ممنون علی جان اگه اینطوری که پس اشتباه می کردم. نمی دونم شاید systemd اینکار رو می کنه. چون به قول خودت محل /sbin/poweroff توی پوشه sbin هست که اگه دوباره اشتباه نکنم :) باید با روت اجرا بشه.
در مورد دایرکتوی sbin/poweroff هم درسته که مالک این فایل و گروهش روت هستش ولی به این معنی نیست که باید با روت اجرا بشه.
برای توضیح بهتر این خروجی رو نیگاه کنین:
stat -c '%a %n' /sbin/poweroff
777 /sbin/poweroff
همون طور که می بینین پرمیشن این فایل 777 هستش پس همه می تونن این فایل رو اجرا کنین.

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
پاسخ : از فرمان mount استفاده نکنید!
« پاسخ #12 : 28 مهر 1396، 06:42 ق‌ظ »
ممنون :)
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره