انجمنهای فارسی اوبونتو
کمک و پشتیبانی => نرمافزارهای اینترنتی => نویسنده: Sadegh Alirezaie در 18 تیر 1396، 05:14 قظ
-
سلام دوستان.
من داشتم سورس تراکتور رو میخوندم که در این کامیت (https://github.com/ubuntu-ir/traktor/commit/0de77f89a458e09ffafdb59060aefdbba868a5c1) دیدم که از این دستور استفاده شده:
$ sudo chattr +i /etc/resolv.conf
این یعنی که کاربر نه میتونه توی فایل بنویسه و نه هیچگونه تغییر دیگری.
از اونجایی که بیشتر کاربر های تازه وارد به جای نصب و کانفیگ تور به صورت دستی، از تراکتور استفاده میکنن و به احتمال خیلی زیاد ممکنه دچار مشکل بشن (هرچند کاربر های آرچ افراد نسبتاً تازه کار نیستن که بخوان از تراکتور استفاده کنن اما خب ممکنه کاربر مانجارو بوده باشه) کنجکاو شدم بدونم چه دلیلی برای استفاده از این دستور هست؟
کاربر تازه وارد تراکتور نصب میکنه، مشکلات احتمالی پیش میاد و از لینوکس زده میشه ( به جای اینکه کاربر تک تک مراحل نصب و کافیگ رو خودش انجام بده و یاد بگیره و مطلع باشه که چه اتفاقاتی داره میفته)
مورد دوم اینکه این خودش نقض حریم شخصی نیست؟ من به عنوان کاربری که نمیتونم سورس رو بخونم یا به هر دلیلی بلد نیستم نرم افزاری رو نصب میکنم و میبینم که نمیتونم توی فایلی که نیاز دارم چیزی بنویسم
من در صفحه گیتهاب این پروژه یک Issue (https://github.com/ubuntu-ir/traktor/issues/80) راجع به این موضوع باز کردم، اما متاسفانه پاسخی نگرفتم، دیدم اینجا این موضوع رو مطرح کنم بهتر هست.
-
برای واضح تر شدن مطلب:
Five ‘chattr’ Commands to Make Important Files IMMUTABLE (Unchangeable) in Linux (https://www.tecmint.com/chattr-command-examples/)
-
با درود،
امیدوارم خوب باشی صادق جان...
خیلی خوبه که حواست به این مسله بود و گزارشش دادی، والا تراکتور رو خودت همینطور که میدونی، کاربرهای هر توزیع برای خودشون گسترشش میدن.
یعنی که من فرضا کابر اوبونتو هستم، پس روی سورس traktor_debian.sh کار میکنم و کاری به بقیه توزیعها ندارم.
در این مورد هم امیررضا جان از بچههای خوبه اوبونتو ایران که آرچ داره مسئول گسترشش هست، شاید بهتر باشه خودش و آقای بهزادی که مسئول تایید کردن این کامیت بودن بیان و توضیحی ارائه بدن.
البته برای مورد دومی که گفتی، نقض حریمشخصی واژهی درستی برای بیان این مشکل نبود. چون قطعا هدف ما آسیب رسوندن و یا اذیت کردن کاربر نیست.
نقض حریمشخصی موقعی درست بود بگی که ما مثلا یه کدی نوشته باشیم توی اسکریپت که دسترسی بر روی سیستم کاربر یا هر چیز دیگهای که باعث میشد اطلاعات کاربر برامون ارسال داشته باشیم و شما حالا اونو پیداش کردی و داری گزارشش میدی. خب قطعا ما این کار رو نکردیم و این که بصورت بولد شده واژهی نقض حریمشخصی رو نوشتی برای من زیاد جالب نبود. حقیقتش حس خوبی بهم دست نداد از بکار بردن این واژه.
بقول خودت کار این دستور اینه که "کاربر نه میتونه توی فایل بنویسه و نه هیچگونه تغییر دیگری"، پس بیشتر بجای این که نقض حریمشخصی باشه از نظر من یک اشتباه و باگ در نوشتن کد هست. این کد باعث نمیشه اطلاعاتی از کاربر یا هر چیز دیگهای فرضا برای ما ارسال شه!
پس متهم کردن ما به نقض حریمشخصی بسیار زیادی و نامنصفانه هستش.
موفق باشی... :)
-
درود. در مورد نخست حق با شماست و من هم مخالف استفاده از این روش هستم، ولی چون چند ساله که کاربر آرچ نیستم، نمیتونم با حدس و گمان در کدی که داره کار میکنه دست ببرم. اگه لطف کنید و یه درخواست ادغام براش بدید، این کار رو خواهم کرد.
در مورد دوم هم فکر نمیکنم مشمول نقض حریم شخصی بشه. چرا که از پیش مشخّصه این اسکریپت داره چه کار میکنه. همونطور که سوشا گفت، میشه بهش گفت نقص برنامهنویسی.
-
صحبت علیرضاجان کاملاً درسته و این یک اشتباه برنامه نویسی محسوب می شه
در مورد نحوه ی رفع این مشکل باید بگم راه های زیادی براش وجود داره ولی بهترین کار به نظر من استفاده از دستورات پایینه (این دستور تو اوبونتو کار می کنه ولی در مورد آرچ اطلاعی ندارم)
echo "nameserver 127.0.0.1" | sudo tee -a /etc/resolvconf/resolv.conf.d/head >/dev/null
sudo resolvconf -u
دلیل استفاده از این دستورات هم اینه که محتوی فایل head بعد ری استارت overwrite نمی شه و در عوض محتوی اون روی فایل resolv.conf نوشته می شه در ضمن به جای tee خالی از tee -a استفاده کردم تا محتوی دلخواه ما روی قبلی اضافه بشه
دوستانی که آرچ دارن این دستورات رو تست کنن و نتیجه رو اعلام کنن
-
ما هم نگفتیم اشتباه میگن که، میگیم کجاش نقض حریمشخصیه؟
-
ما هم نگفتیم اشتباه میگن که، میگیم کجاش نقض حریمشخصیه؟
سوشا جان چرا عصبانی می شین منم گفتم که یه اشتباه برنامه نویسی هستش (من اشاره ای به نقض حریم شخصی نکردم) ;)
صحبت علیرضاجان کاملاً درسته و این یک اشتباه برنامه نویسی محسوب می شه
در واقع تاییدم روی بخش فنی قضیه بود نه بخش تحلیلی وگرنه نقض حریم شخصی نیست و فقط یه مشکل برنامه نویسی محسوب می شه
-
همونطور که بقیه گفتند داره یک کاری رو به یک روش اشتباه انجام میده، درواقع داره یک باگ مینویسه که مشکل رو فعلا برطرف کنه. حالا مشکل چیه؟ اینکه بیاد برسی کنه رو هر سیستم چی داره فایل رو به روز میکنه مطابق با اون تنظیمات لازم رو انجام بده، این درواقع فعلا فکیس کنم بعد دقیق درستش میکنم هست.
نقض حریم خصوصی هم که گفتن بقیه، نیست ...
هرچند تا جایی که من میدونم اصلا این دستور نباید کار کنه چون resolv.conf یک لینک هست به run/ و نوع run/ هم tmpfs هست در نتیجه نمیشه چیزی رو روش immutable کرد (خود symlink رو هم نمیشه).
-
والا نمیدونم چی بگم. فقط دوستان بار بعدی خواستن به یه چیزی اشاره کنن یهو و بیمدرک ربطش ندن به نقض حریمشخصی. مخصوصا فردی مثل صادق جان که بسیار سطح بالایی در برنامه نویسی دارن، زیاد جالب نیست اینطور موضوع نوشتن و طرح سوال کردن.
وگرنه که من اتفاقا خیلی خوشحال شدم که باگی توی اسکریپت پیدا کردن. این نشون میده که اسکریپت داره مسیر خوبی رو میره جلو.
ما هدفمون کمک به جامعه آزاد هست نه این که بخوایم خودمون بشیم نفر اولی که آزادی رو از کاربر میگیره و نقض میکنه حریمخصوصیشو، دقیقا کل ناراحتی و عصبانیت من از اینه که توی این سطح اینطوری یه موضوع باز کنی و ربطش بدی به یه چیزی که درست نیست :)
اینطور نوشتهها و طرح سوال کردنا از فردی که سطحش بالاست باعث آسیب به اعتبار همهی کسایی میشه که تو اون موضوع اسکریپت فعال بودن...
امیدوارم متوجه حرفم بشید :)
-
دقیقا کل ناراحتی و عصبانیت من از اینه که توی این سطح اینطوری یه موضوع باز کنی و ربطش بدی به یه چیزی که درست نیست :)
سوشا جان خودتو ناراحت نکن حالا مطلبی بود که مطرح شد و به اندازه ی کافی توسط خودت , دانیال , من و میلاد گفته شد که نقض حریم شخصی نیست ...
فقط اگه آرچ داری اون دستوری که من دادم رو یه تست بکن
-
دقیقا کل ناراحتی و عصبانیت من از اینه که توی این سطح اینطوری یه موضوع باز کنی و ربطش بدی به یه چیزی که درست نیست :)
سوشا جان خودتو ناراحت نکن حالا مطلبی بود که مطرح شد و به اندازه ی کافی توسط خودت , دانیال , من و میلاد گفته شد که نقض حریم شخصی نیست ...
فقط اگه آرچ داری اون دستوری که من دادم رو یه تست بکن
نه من آرچ ندارم، اما نظر خودم جای head این پروندست: /etc/resolvconf/resolv.conf.d/tail
که این اگر نبود، ایجاد شه و چیز مورد نظر توش نوشته شه...
-
روش بهتر برای اینکه Networkmanager نیاد فایل resolv.conf رو ویرایش نکنه اینه که به خود Networkmanager بگیم این کار رو نکنه!
- توی
/etc/networkmanager/networkmanger.conf
قسمت [main] با اضافه کردن این قسمت دیگه فایل resolv.conf توسط networkmanager دستکاری نمیشه.
dns=none
موفق باشید
-
روش بهتر برای اینکه Networkmanager نیاد فایل resolv.conf رو ویرایش نکنه اینه که به خود Networkmanager بگیم این کار رو نکنه!
- توی
/etc/networkmanager/networkmanger.conf
قسمت [main] با اضافه کردن این قسمت دیگه فایل resolv.conf توسط networkmanager دستکاری نمیشه.
dns=none
موفق باشید
+1
-
روش بهتر برای اینکه Networkmanager نیاد فایل resolv.conf رو ویرایش نکنه اینه که به خود Networkmanager بگیم این کار رو نکنه!
- توی
/etc/networkmanager/networkmanger.conf
قسمت [main] با اضافه کردن این قسمت دیگه فایل resolv.conf توسط networkmanager دستکاری نمیشه.
dns=none
موفق باشید
آیا واسه توزیعهای دیگه هم این کار نیازه؟
و اصلا چرا نباید بذاریم نتورکمنیجر پرونده resolv.conf رو دستکاری کنه؟
-
پس متهم کردن ما به نقض حریمشخصی بسیار زیادی و نامنصفانه هستش.
نه سوشا جان،شما رو متهم به این کار نکردم و سوال کردم.
به هر حال اینجا جایی هست که افراد تلاششون بر این هست که روز به روز حریم شخصی افراد بیشتر بشه
-
نقض حریمشخصی موقعی درست بود بگی که ما مثلا یه کدی نوشته باشیم توی اسکریپت که دسترسی بر روی سیستم کاربر یا هر چیز دیگهای که باعث میشد اطلاعات کاربر برامون ارسال داشته باشیم
بله درست میگی.
من عذر خواهی میکنم و موضوع تاپیک رو عوض میکنم
-
در ضمن دوستان منظور من از مشکلات احتمالی مشکل با تراکتور نبود منظورم این بود که اگر هر مشکلی پیش بیاد و نیاز به تغییر اون فایل باشه کاربر نمیتونه و دلیلش رو هم نمیدونه
این میتونه کار رو برای دوستان توی انجمن سخت تر کنه چون عموماً کاربر های تازه وارد که سورس رو نمیخونن.
به نظرم بهتره تراکتور هر مرحله که انجام میده به کاربر اعلام کنه
اینجوری هم کاربر یاد میگیره چطور این کار داره انجام میشه هم اینکه بعداً اگه سوالی پیش بیاد راحت تر حل میشه
در ارتباط با دستور chattr اول باید مطمئن بشم که کار اضافه ای هست بعد کامیت بدم
-
روش بهتر برای اینکه Networkmanager نیاد فایل resolv.conf رو ویرایش نکنه اینه که به خود Networkmanager بگیم این کار رو نکنه!
- توی
/etc/networkmanager/networkmanger.conf
قسمت [main] با اضافه کردن این قسمت دیگه فایل resolv.conf توسط networkmanager دستکاری نمیشه.
dns=none
موفق باشید
آیا واسه توزیعهای دیگه هم این کار نیازه؟
و اصلا چرا نباید بذاریم نتورکمنیجر پرونده resolv.conf رو دستکاری کنه؟
جواب سوال اول: بله
جواب سوال دوم: چون در هر بار اجرای Networkmanager این نرم افزار میاد فایل resolv.conf رو باز نویسی میکنه. ظاهرا تراکتور نیاز داره که تنظیمات DNS رو ثابت نگه داره. به همین دلیل هستش که توسعه دهنده ی تراکتور اون خط chattr رو نوشته که این فایل دست نخوره
-
آها. خیلی ممنون
-
روش بهتر برای اینکه Networkmanager نیاد فایل resolv.conf رو ویرایش نکنه اینه که به خود Networkmanager بگیم این کار رو نکنه!
- توی
/etc/networkmanager/networkmanger.conf
قسمت [main] با اضافه کردن این قسمت دیگه فایل resolv.conf توسط networkmanager دستکاری نمیشه.
dns=none
موفق باشید
من یک ls از مسیر /etc/networkmanager گرفتم و دیدم در پوشه networkmanager پرونده networkmanager.conf ندیدم. شاید /etc/network/interfaces چیزی باشه که باید این توش نوشته شه؟!
از اون سوتیا بود که دادم. پیداش کردم :))
-
روش بهتر برای اینکه Networkmanager نیاد فایل resolv.conf رو ویرایش نکنه اینه که به خود Networkmanager بگیم این کار رو نکنه!
- توی
/etc/networkmanager/networkmanger.conf
قسمت [main] با اضافه کردن این قسمت دیگه فایل resolv.conf توسط networkmanager دستکاری نمیشه.
dns=none
موفق باشید
این تغییرات برای نسخه ۱.۹ تراکتور بر روی پرونده traktor_debian.sh اعمال شد.
تشکر بخاطر کمک و گزارش باگ :)