كيف يمكنني إعداد الأذونات في لينكس التي يمكن للمستخدمين تحديث نفس إس تعمل نسخة على الخادم ؟

StackOverflow https://stackoverflow.com/questions/164597

  •  03-07-2019
  •  | 
  •  

سؤال

الخادم لديه كل التخريب و Apache تثبيت Apache web directory هو أيضا التخريب نسخة العمل.والسبب في ذلك هو أن الأمر بسيط svn update /server/staging نشر أحدث المصدر إلى الخادم التدريج.

أباتشي العامة دليل المواقع: /server/staging — (هذا هو SVN نسخة العمل.)

لدي اثنين من المستخدمين على الخادم, 'ريتشارد' و 'اوستن'.وكلاهما من أعضاء 'المطورين المجموعة.أنا متكرر تعيين الأذونات على /server الدليل ريتشارد:المطورين ، باستخدام "سودو chown -R ريتشارد:المطورين /الخادم".

ثم تعيين أذونات قراءة وكتابة وتنفيذ لكلا 'ريتشارد' و 'المطورين المجموعة.

لذلك بالتأكيد, 'اوستن' يجب أن تكون الآن قادرا على استخدام svn update /server/staging الأمر ؟ ومع ذلك ، عندما يحاول يحصل على خطأ:

svn: Can't open file '/server/staging/.svn/lock': Permission denied

إذا لم يتغير بشكل متكرر مالك /الخادم إلى أوستن:المطورين ، وانه يمكن تشغيل الأمر على ما يرام, ولكن بعد ذلك 'ريتشارد' لا يمكن.

كيف يمكنني حل المشكلة ؟ أريد إنشاء بعد ارتكاب هوك مع أن نشر تلقائيا انطلاق الموقع عندما الملفات التي ارتكبت ، ولكن لا أستطيع أن أرى الطريق إلى العمل على حد سواء المستخدمين.هوك ليكون:

/usr/bin/svn update /server/staging

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

أي مساعدة هي موضع تقدير!

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

المحلول

والدليل تعيين معرف المجموعة

إذا تم تعيين بت setgid على إدخال دليل، الملفات في هذا الدليل سوف يكون ملكية مجموعة كدليل، بدلا من من مجموعة من المستخدم الذي أنشأ الملف.

وهذه السمة هي مفيدة عندما يحتاج العديد من المستخدمين الوصول إلى بعض الملفات. إذا عمل المستخدمين في دليل مع السمة setgid ثم تعيين أي الملفات التي تم إنشاؤها في الدليل من قبل أي من المستخدمين سوف يكون بإذن من المجموعة. على سبيل المثال، يمكن للمسؤول إنشاء مجموعة تسمى spcprj وإضافة المستخدمين كاثي ومارك لspcprj المجموعة. يمكن إنشاء spcprjdir الدليل مع مجموعة GID مجموعة بت وكاثي ومارك على الرغم من جماعات الأولية المختلفة يمكن أن تعمل في الدليل والوصول الكامل إلى جميع الملفات في هذا الدليل، ولكن لا يزال لا تكون قادرة على الوصول إلى الملفات في المجموعة الأساسية بعضها البعض .

والأمر التالي وتعيين بت دائرة المخابرات العامة على الدليل:

chmod g+s spcprjdir

وسرد دليل الدليل "spcprjdir":

drwxrwsr-x 2 kathy spcprj 1674 Sep 17 1999 spcprjdir

وو"ليالي 'بدلا من تنفيذ بعض الشيء في أذونات المجموعة يسبب كل الملفات المكتوبة إلى الدليل" spcprjdir "الانتماء إلى جماعة" spcprj ".

وتحرير: مصدر = لينكس الملفات وملف ضوابط

نصائح أخرى

وأنا ستقيم svnserve الذي هو خادم التخريب بسيط باستخدام بروتوكول svn://. يمكنك وضع هذا الأمر بحيث يتم تشغيله تحت حساب المستخدم الخاص به، ثم مستودع لن يؤدي إلا إلى الوصول إليها من قبل المستخدم واحدة. يمكن لهذا المستخدم ثم الامتيازات الصحيحة لتشغيل svn update /server/staging على هوك بعد ارتكاب.

في إس الريبو, يمكنك العثور 'conf' الدليل حيث يمكنك تعيين الأذونات.لديك 3 ملفات هناك:

  • authz
  • passwd
  • svnserve.conf

تعيين في authz ملف المستخدمين الذين لديهم أي نوع من الق, لكل مستخدم أو لكل مجموعة.يمكنك تعيين مجموعات هناك ، SVN الجماعات ليس لينكس مجموعات المستخدمين (تجزئته خطوط التعليقات):

[groups]
# harry_and_sally = harry,sally
projectgroup = richard,austin

# [/foo/bar]
# harry = rw  -- user harry has read/write access
# * =  -- everybody have no access

# [repository:/baz/fuz]
# @harry_and_sally = rw  -- harry_and_sally group members have read/write access
# * = r  -- everyone has read access

[/server/staging]
@projectgroup = rw
* = r

هذا المثال تعيين التكوين.في 'passwd' ملف إعداد المستخدمين وكلمات السر.تنفيذ

cat passwd

ستحصل علق الملف مع شرح كيفية إعداده.

وأنا استخدم WEBDAV - يتم التعامل مع كافة التحديثات SVN ويرتكب عبر اباتشي وأنا أبدا مثل هذه المشاكل

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