سؤال

لقد قمت بإعداد مستودع SVN من البداية، ونجحت في وضع علامة على بعض إصداراتي باستخدام أمر نسخ SVN.

لقد استخدمت المكوّن الإضافي لمصادقة SSPI لـ Apache، لذا قام المطورون لدينا بضرب الخادم ببيانات اعتماد الشبكة الخاصة بهم، وكل شيء يعمل بشكل جيد.

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

قمت بعد ذلك بإغلاق الدليل /svn/ باستخدام:تتطلب المجموعة "CORP\CKAN0BlahBlah"

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

والآن لدي سؤالان:

  1. ما هي الطريقة الصحيحة (بخلاف نظام الشرف) لمنع المستخدمين من الارتباط بالتغييرات في أي من أدلة "العلامات"؟

  2. هل من الممكن استخدام SSPI لتمرير أعضاء المجموعات إلى Authz ، بدلاً من إدراج الأعضاء بشكل فردي في ملف التكوين؟

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

المحلول 2

ل السؤال رقم 1, لقد طورت لهذا:

@echo off
SET SVNLOOK=C:\Program Files\CollabNet Subversion Server\svnlook.exe
SET GREP=D:\SVN\Repo\hooks\grep.exe
SET LOG=D:\SVN\Repo Logs.txt

>>"%LOG%" echo ==== commit %1 %2 ====
>>"%LOG%" "%svnlook%" changed -t %2 %1

("%svnlook%" changed -t %2 %1 | "%grep%" "^U.*/tags/") && (echo Cannot commit to tags.>&2 && exit 1)
("%svnlook%" log -t %2 %1 | "%grep%" "[a-zA-Z0-9]") || (echo You must specify a comment.>&2 && exit 1)

exit 0

أمسك أداة grep من http://sourceforge.net/projects/unxutils


ل السؤال 2, ، الإجابة هي لا، لا يمكنك التحقق من مجموعات أمان AD في ملف تكوين AuthZ.

شكرا لمساعدتك الجميع.

نصائح أخرى

1 - يمكنك استخدام خطاف الالتزام المسبق لمنع الالتزامات، انظر ربط SVN المسبق لتجنب التغييرات في الدلائل الفرعية للعلامات.

يحرر: للقيام بذلك على نظام التشغيل Windows، حاول القيام بما يلي:

احفظ هذا كملف باسم pre-commit.bat في مجلد الخطافات في الريبو الخاص بك:

@echo off
set REPOSITORY=%1
echo %REPOSITORY% | find /I "tags"
if errorlevel 1 goto done
echo You tried to commit to %REPOSITORY% >&2
echo Committing to tags is not allowed >&2
exit 1
:done

لاحظ أن هذا سيمنع الالتزام بأي مسار مستودع يحتوي على السلسلة الفرعية العلامات.تعديل وفقا لاحتياجاتك.

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

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

ماذا عن استخدام ملف svn-auth لتحديد ذلك؟هذا سيبدو هكذا:

[groups]
ADMINS=<your ID>
<rest of groups>=<all other IDs>

[/]
* = r
<rest of groups> = rw
@ADMINS = rw

[/tags]
<rest of groups> = r

سيسمح هذا للمسؤولين بالوصول للقراءة والكتابة إلى دليل العلامات، ولكن ليس لأي شخص آخر.لا أعرف المكوّن الإضافي لمصادقة SSPI، لذا ربما لا يعمل المثال الذي قدمته في السياق الخاص بك.

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