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

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

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


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

نویسنده موضوع: چرا maintainer و developer نباید یکی باشند؟  (دفعات بازدید: 736 بار)

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

آفلاین Sosha

  • High Sr. Member
  • *
  • ارسال: 689
  • جنسیت : پسر
  • Only Ubuntu <3
    • نوشته های یک دوستدار گنو
چرا maintainer و developer نباید یکی باشند؟
« : 07 آبان 1396، 10:59 ق‌ظ »
نقل‌قول
maintainer معمولا کسی هست که بسته‌های deb رو آماده می‌کنه تا توی مخزن دبیان قرار بگیره. کم پیش میاد که maintainer و developer یکی باشن و به دلیل مسایل امنیتی توصیه هم نمیشه که یکی باشن.

جناب سلمان خان، در یک ارسالی، نوشته بالا رو گفته بودن، می‌خوام بدونم دلیلش چیه و چرا از نظر امنیتی هم توصیه نمیشه؟
« آخرین ویرایش: 08 آبان 1396، 05:50 ق‌ظ توسط Sosha »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش برو خدا رو شکر کن که با دمپایی نیومدم سراغت!

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #1 : 07 آبان 1396، 03:42 ب‌ظ »
اول از همه باید بدونیم که این دو شخص چه کسانی هستن

۱. developer (توسعه‌دهنده): توسعه دهنده اصلی نرم‌افزار
۲. maintainer (نگهدارنده): کسی که packaging (بسته‌بندی) رو برای یه توزیع خاص (این‌جا مثلا دبیان) انجام می‌ده و دسترسی مستقیم به مخزن دبیان برای آپلود کردن داره.

اگه این دو مورد بالا یکی باشن، یعنی توسعه دهنده‌ی یه نرم‌افزار مستقیم به مخزن‌های دبیان دسترسی داشته باشه، این مورد از لحاظ امنیتی توصیه نمی‌شه، ولی اگه دو نفر متفاوت باشن، اگر کسی بخواد توی مخزن‌های دبیان خراب‌کاری کنه، یک پله کارش سخت‌تر میشه (البته غیرممکن نیست ولی سخت‌تر میشه). یعنی نیاز به دو نفر هست، نفر اول که سورس کد نرم‌افزار رو تغییر بده و نفر دوم که کار بسته بندی رو انجام میده. این در صورتی هست که بخواد توی سورس کد دستکاری انجام بده و بفرسته روی مخزن دبیان.

یک مورد دیگه هم هست، به طور مثال، فرض کن که من هم developer و هم maintainer یک بسته خاص هستم، میام نسخه‌ی اول و دوم و سوم نرم‌افزار رو بدون هیچ مشکلی آپلود می‌کنم توی مخزن‌های دبیان ولی سپس از نسخه چهارم تصمیم می‌گیرم که نرم‌افزارم رو با یه کامپایلر که که در هنگام کامپایل کردن، یک سری کدهای اضافه قاطیش می‌کنه، کامپایل کنم و سپس نرم‌افزار رو آپلود کنم توی مخزن‌های دبیان، اینجوری یک نفر می‌تونه راحت‌تر این کار رو انجام بده تا این که دو نفر نیاز باشه.

به صورت کلی برای این که این مشکل رفع بشه، دبیان یک سیستمی رو در حال پیگیری هست به اسم reproducible builds (ساخت‌های قابل بازتولید) که این وب‌گاهش هست (https://reproducible-builds.org) که یک سری راهنمایی‌هایی داره، مثلا میگه که توی artifact تولید شده توسط build system نباید زمان build به عنوان یه variable (متغییر) وجود داشته باشه، تا تغییر در binary تولید شده فقط وابسته به دو تا چیز باشه ۱. تغییر در سورس کد ۲.تغییر در build environment (محیط توسعه، مثل نسخه کامپایلر استفاده شده)، این‌جوری میشه اطمینان بیشتری نسبت به نسخه‌های باینری تولید شده داشت.


آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4880
  • جنسیت : پسر
  • masoft قدیم
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #2 : 07 آبان 1396، 03:49 ب‌ظ »
خب Maintainer بستگی به توزیع داره. مثلا ممکنه یکی بخواد توی فدورا برنامه‌ای که من نوشتم رو داخل مخازن بکنه و من اصلا فدورا ندارم، در نتیجه Maintainer مناسبی برای فدورا نخواهم بود.

یک مورد دیگه هم هست، به طور مثال، فرض کن که من هم developer و هم maintainer یک بسته خاص هستم، میام نسخه‌ی اول و دوم و سوم نرم‌افزار رو بدون هیچ مشکلی آپلود می‌کنم توی مخزن‌های دبیان ولی سپس از نسخه چهارم تصمیم می‌گیرم که نرم‌افزارم رو با یه کامپایلر که که در هنگام کامپایل کردن، یک سری کدهای اضافه قاطیش می‌کنه، کامپایل کنم و سپس نرم‌افزار رو آپلود کنم توی مخزن‌های دبیان، اینجوری یک نفر می‌تونه راحت‌تر این کار رو انجام بده تا این که دو نفر نیاز باشه.
البته توی دبیان و اوبونتو، Maintainer فقط سورس‌کدها رو برای مخازن می‌فرسته و کامپایل شدن بسته‌ها توسط یک سیستم مکانیزه انجام میشه.

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #3 : 07 آبان 1396، 05:02 ب‌ظ »
گفته من بر اساس نوشته‌ی اینجا بود که نوشته آپلودهای جدید نمی‌تونن که source only باشن.

https://wiki.debian.org/SourceOnlyUpload

NEW uploads and uploads with NEW binaries currently cannot be source-only.

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4880
  • جنسیت : پسر
  • masoft قدیم
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #4 : 07 آبان 1396، 05:24 ب‌ظ »
البته اون NEW به معنای عمومی جدید نیست و به NEW Queue اشاره می‌کنه (برای همین هم تماما با حروف بزرگ نوشته میشه). بسته‌های NEW تنها برای این هستند که تصمیم گرفته بشه این بسته توی دبیان قرار بگیره یا نه، برای همین از Autobuilder network برای اون‌ها استفاده نمیشه.

نقل‌قول از: https://wiki.debian.org/NewQueue
The source and binary packages in the NEW queue are not made publicly available. This is because the purpose of the NEW queue is mainly to work out if the packages can be distributed by Debian.

آفلاین Sosha

  • High Sr. Member
  • *
  • ارسال: 689
  • جنسیت : پسر
  • Only Ubuntu <3
    • نوشته های یک دوستدار گنو
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #5 : 08 آبان 1396، 05:49 ق‌ظ »
جالب بود تشکر :)
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش برو خدا رو شکر کن که با دمپایی نیومدم سراغت!

آفلاین Farhaad 1992

  • Hero Member
  • *
  • ارسال: 943
  • جنسیت : پسر
  • گنو با گنوم
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #6 : 08 آبان 1396، 07:54 ق‌ظ »
این کامپایلرهای GCC و Clang توانایی شناسایی بدافزار توی کد منبع را ندارند؟ منظورم از بدافزار کدهای مخرب و اینجور چیزهاست،‌ کدهایی که خیلی واضح هدفشون مثلن جاسوسی باشه، جمع آوری اطلاعات و ارسال آنها به یک آدرس.
* نام کاربری حساب من Fedora-Red Hat است ولی نام نمایهٔ (پروفایل) من، نام حقیقی + سال تولد من است
* از دی ۱۳۹۸ دیگر فعالیت پیوسته و دائم ندارم
* نظرات و ارسال‌های من فقط در زمان ارسال خود معتبر بودند و نشان‌دهنده طرز فکر و سطح دانش فعلی من نیستند

آفلاین Mmjafari

  • High Sr. Member
  • *
  • ارسال: 556
  • جنسیت : پسر
  • لیلی نام دیگر آزادی ست
    • صفحه من تو گیت
پاسخ : چرا maintainer و developer نباید یکی باشند؟
« پاسخ #7 : 08 آبان 1396، 08:43 ق‌ظ »
این کامپایلرهای GCC و Clang توانایی شناسایی بدافزار توی کد منبع را ندارند؟ منظورم از بدافزار کدهای مخرب و اینجور چیزهاست،‌ کدهایی که خیلی واضح هدفشون مثلن جاسوسی باشه، جمع آوری اطلاعات و ارسال آنها به یک آدرس.
نه ؛ اما کدهای مخازن رسمی اول بازرسی میشن بعد وارد مخزن میشن