سؤال

كيف تخزن أذونات الملفات في مخزن ؟ بعض الملفات تحتاج إلى أن تكون للقراءة فقط لوقف برنامج طرف ثالث من التحطيم ولكن بعد التحقق من المخزون يتم تعيين القراءة-الكتابة.

بحثت في جوجل و وجدت بلوق وظيفة من 2005 أن الدول التي التخريب لا تخزن ملف الأذونات.هناك بقع وربط النصوص المدرجة (فقط عنوان url واحد لا يزال موجودا).وبعد ثلاث سنوات لا التخريب لا تزال غير متجر أذونات الملف و السنانير السبيل الوحيد للذهاب حول هذا الموضوع ؟ (أنا لم أفعل السنانير بدلا من استخدام ما هو الأصلي إلى التخريب.)

هل كانت مفيدة؟

المحلول

حل واحد ممكن أن تكون كتابة السيناريو الذي تحقق في مع بقية الخاص بك التعليمات البرمجية التي يتم تشغيلها كخطوة أولى من عملية الإنشاء.

هذا البرنامج النصي يعمل من خلال نسختك من برنامج و مجموعات قراءة الأذونات على بعض الملفات.

من الناحية المثالية النص قراءة قائمة من الملفات من ملف الإدخال.هذا من شأنه أن يجعل من السهل للحفاظ على السهل للمطورين الآخرين لفهم الملفات التي تحصل على وضع علامة للقراءة فقط.

نصائح أخرى

إس لديها القدرة على تخزين البيانات الوصفية (خصائص) جنبا إلى جنب مع الملف.خصائص هي في الأساس مجرد مفتاح/قيمة أزواج ، ومع ذلك هناك بعض المفاتيح الخاصة مثل 'إس:قابل للتنفيذ' ، إذا كانت هذه الخاصية موجودة على ملف التخريب سوف تحدد نظام الملفات القابلة للتنفيذ بت هذا الملف عند التحقق من الملف.في حين أعرف أن هذا ليس بالضبط ما كنت تبحث عنه قد يكون كافي (بالنسبة لي).

وهناك خصائص أخرى عن خط النهاية (svn:eol الطراز) و نوع mime(svn:mime-type).

لا يوجد الأصلي طريقة لتخزين أذونات الملف في إس.

سواء asvn و التصحيح من هذا بلوق وظيفة يبدو أن حتى (واستضافت الرسمية إس مستودع), و هذا شيء جيد, لكن لا أعتقد أنها سوف يكون مثل هذا التعريف المناولة في النسخة الأساسية في أي وقت قريب.

إس لديه القدرة على التعامل مع وصلات رمزية و الملفات التنفيذية خصيصا لفترة طويلة, ولكن لا تعمل بشكل صحيح على Win32.لن أحبس أنفاسي لمدة غير المحمولة ميزة (على الرغم من أنه لن يكون من الصعب جدا أن تنفذ على رأس القائمة بالفعل نظام البيانات الوصفية.)

أنا أعتبر الكتابة قذيفة النصي يدويا ضبط أذونات الملف ثم وضعه في المستودع.

لأن هذا لم يكن كاملا في الردود السابقة حتى الآن.أكره أن إحياء zombied المواضيع على الرغم من.

منذ مضيفا إذن دعم إس في أن تستوعب نظام التشغيل متعددة و إذن أنواع, NFS, POSIX, ARWED ، RACF

وهذا من شأنه أن يجعل إس المتضخمة ، وربما الصدام مع متضاربة إذن أنواع مثل NFS و POSIX ، أو فتح ممكن يستغل/الثغرات الأمنية.

هناك اثنين من الحلول.قبل يرتكبون ما يرتكبون بدء ارتكاب هي أكثر شيوعا ، وهي جزء من التخريب النظام.ولكن سوف يسمح لك للسيطرة على أذونات مع أي لغة برمجة تريد.

النظام الذي ينفذ هو ما أسميه الرابط, بالتحقق من صحة ارتكبت الملفات من نسخة العمل ، ثم يوزع على ملف التعريف الذي قوائم الأذونات الافتراضية المطلوب عن الملفات/المجلدات ، وأية تغييرات تطرأ عليها أنت أيضا الرغبة.

Owner, Group, Folders, Files
default: <user> www-user 750 640
/path/to/file: <user> non-www 770 770
/path/to/file2: <user> <user> 700 700

يمكنك أيضا توسيع بناء على هذا و تسمح أشياء مثل الآلي تتحرك ، إعادة تسمية لهم, علامات المراجعة من قبل أنواع مثل ألفا, بيتا, الإصدار المرشح, إطلاق

بقدر ما دعم العملاء إلى الخروج المستودع الخاص بك الملفات مع الأذونات التي تعلق عليها.من الأفضل لك أن تبحث في خلق installer الحزمة الخاصة بك وتقديم أن كمورد.

تخيل الناس وضع مستودعات تنفيذي في مجموعة مع أذونات الجذر:www المستخدم 4777

هذا هو تحديث رابط إس التصحيح الذي يتعامل مع unix نمط أذونات الملف بشكل صحيح.لقد اختبرت على fedora12 ويبدو أن يعمل كما هو متوقع:

لقد حفظته /usr/bin/asvn واستخدام asvn بدلا من svn الأمر لو يحتاج إلى أذونات التعامل معها بشكل صحيح.

العديد من الإجابات وقد ذكر أن svn لا تخزن أذونات الملف.قد يكون هذا صحيحا ، ولكن كنت قادرة على حل ملف dll دون تنفيذ الأذونات المشكلة ببساطة عن طريق هذه الخطوات:

  1. شمود 755 badpermission.dll
  2. mv badpermission.dll ../
  3. إس في تحديث
  4. إس rm badpermission.dll
  5. إس في ارتكاب badpermission.dll م "إزالة dll إلى إصلاح أذونات"
  6. mv ../badpermission.dll .
  7. svn إضافة badpermission.dll
  8. إس في ارتكاب badpermission.dll م "إضافة dll إلى إصلاح أذونات"
  9. rm badpermission.dll
  10. إس في تحديث
  11. badpermission.dll يعود مع أذونات التنفيذ

@morechilli:

على asvn المجمع من المدونة السابقة و blog في العملية بعد يبدو أن تفعل ما تقترحه.على الرغم من أنه المخازن أذونات في المقابلة الملفات مستودع خصائص بدلا من واحد ملف خارجي.

أنصح لتوليد أذونات الخريطة باستخدام mtree فائدة (فري فقد افتراضيا), تخزين الخريطة في مستودع ، وكما ذكر أعلاه, تشغيل برنامج نصي من شأنها أن تعيد السليم أذونات الملف من الخريطة كخطوة أولى من عملية الإنشاء.

قفل لن يحل هذه المشكلة.قفل يمنع الآخرين من تحرير الملف.هذا هو تطبيق طرف ثالث الذي يحصل تشغيل كجزء من عملية الإنشاء التي يحاول الكتابة إلى ملف تغيير ذلك - الذي يكسر عملية الإنشاء.ولذلك نحن بحاجة إلى وقف البرنامج من تغيير الملف الذي هو ببساطة وضع علامة على الملف للقراءة فقط.نود أن المعلومات التي ستعقد في مستودع وحملت عبر checkins, فروع, الخ.

غراهام ، svn لا تخزين الأذونات.الخيار الوحيد هو التفاف مكالمتك svn في البرنامج النصي.السيناريو يجب استدعاء svn مع حججها ، ثم تعيين أذونات بعد ذلك.اعتمادا على البيئة الخاصة بك قد تحتاج إلى استدعاء البرنامج النصي الخاص بك svn وقرص الخاص بك PATH للتأكد من أنه يحصل على ما يسمى.

أنا تماما مثل morechilli فكرة قائمة الملفات وأذونات دققت في مستودع نفسها.

ونحن إنشاء ملف دفعي أن تفعل ذلك بالنسبة لنا.تفضل الدعم الفعلي في التخريب على الرغم من...

النظر في استخدام svn lock لمنع الآخرين من الكتابة إلى الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top