سؤال ما هي الأذونات التي يجب أن تحتويها ملفات / ملفات موقع الويب الخاصة بي على خادم ويب Linux؟


هذا ال السؤال الكنسي حول أذونات الملفات على خادم ويب Linux.

لدي خادم ويب يعمل بنظام Linux يعمل Apache2 ويستضيف العديد من مواقع الويب. يحتوي كل موقع على مجلد خاص به في / var / www /.

/var/www/contoso.com/
/var/www/contoso.net/
/var/www/fabrikam.com/

يمتلك الدليل الأساسي / var / www / الجذر root: root. يعمل Apache كشبكة www-data: www-data. تتم صيانة موقع ويب Fabrikam بواسطة اثنين من المطورين ، أليس وبوب. يتم الحفاظ على مواقع Contoso على الويب بواسطة مطور واحد ، Eve. جميع المواقع تسمح للمستخدمين بتحميل الصور. إذا تم اختراق موقع الويب ، يجب أن يكون التأثير محدودًا قدر الإمكان.

أريد أن أعرف أفضل طريقة لإعداد الأذونات بحيث يمكن لـ Apache أن يقدم المحتوى ، ويكون موقع الويب آمنًا من الهجمات ، ولا يزال بإمكان المطورين إجراء تغييرات. تم تصميم أحد مواقع الويب على النحو التالي:

/var/www/fabrikam.com
    /cache
    /modules
    /styles
    /uploads
    /index.php

كيف يجب تعيين الأذونات على هذه الدلائل والملفات؟ قرأت في مكان ما أنك يجب ألا تستخدم أبداً 777 أذونات على موقع ويب ، لكنني لا أفهم المشاكل التي يمكن أن تسببها. أثناء الفترات المشغولة ، يقوم موقع الويب تلقائيًا بتخزين بعض الصفحات وتخزينها مؤقتًا في مجلد ذاكرة التخزين المؤقت. يتم حفظ جميع المحتويات المقدمة من قبل زوار الموقع في مجلد التحميلات.


284
2018-02-06 01:50


الأصل


هذا هو أن يكون العنوان الأساسي الإجابة عن جميع الأسئلة التي نحصل عليها حول أذونات الموقع. - Nic
"قرأت في مكان ما أنك يجب ألا تستخدم أبداً 777 أذونات على موقع ويب ، لكنني لا أفهم ..." - عندها سيكون القارئ قادراً على فهم أو على الأقل القدرة على مقارنة مزايا الإجابات هنا؟ يجب أن يستند أي حل على متطلبات محددة - المتطلبات هنا ليست محددة بما يكفي (ما هو نموذج التهديد) - symcbean
أحب أن تسأل عن Apache ، ولكنك تستخدم المجالات التي تستخدمها Microsoft عادةً كأمثلة. - gWaldo
انظر أيضا ما هي أفضل طريقة للتعامل مع أذونات مستخدم الويب apache2 www-data in / var / www؟ - Gareth
يمكنك الرجوع هنا للحصول على تفاصيل كاملة حول الإذن المطلوب وضعه على ملفات ومجلدات موقع الويب في لينكس serverfault.com/questions/124800/...


الأجوبة:


عند تحديد الأذونات التي يمكنك استخدامها ، يلزمك معرفة من هم المستخدمون لديك وما يحتاجون إليه بالضبط. يتفاعل خادم الويب مع نوعين من المستخدمين.

موثق المستخدمين لديهم حساب مستخدم على الخادم ويمكن تقديم امتيازات محددة. يتضمن هذا عادةً مسؤولي النظام والمطورين وحسابات الخدمات. عادة ما يقومون بإجراء تغييرات على النظام باستخدام SSH أو SFTP.

مجهول المستخدمين هم زوار موقعك. على الرغم من عدم امتلاكهم أذونات الوصول إلى الملفات مباشرة ، إلا أنه يمكنهم طلب صفحة ويب ويتصرف خادم الويب نيابة عنهم. يمكنك تقييد وصول المستخدمين المجهولين من خلال توخي الحذر بشأن الأذونات التي توفرها عملية خادم الويب. في العديد من توزيعات لينكس ، يعمل Apache كـ www-data المستخدم ولكن يمكن أن يكون مختلفا. استعمال ps aux | grep httpd أو ps aux | grep apache لمعرفة ما الذي يستخدمه Apache على النظام الخاص بك.


ملاحظات حول أذونات لينكس

تستخدم أنظمة Linux و POSIX الأخرى أذونات Unix التقليدية. هناك مقال ممتاز عن ويكيبيديا أذونات نظام الملفات لذلك لن أكرر كل شيء هنا. ولكن هناك بعض الأشياء التي يجب أن تكون على دراية بها.

بت تنفيذ
تعمل النصوص البرمجية المفسرة (مثل ، Ruby و PHP) بشكل جيد دون الحصول على إذن التنفيذ. تحتاج البرامج النصية ونصوص shell فقط إلى بتة التنفيذ. من أجل اجتياز (إدخال) الدليل ، يجب أن يكون لديك إذن تنفيذ على هذا الدليل. يحتاج خادم الويب إلى هذا الإذن لإدراج دليل أو عرض أي ملفات بداخله.

أذونات الملف الجديد الافتراضية
عندما يتم إنشاء ملف ، فإنه عادةً يرث هوية المجموعة الخاصة بمن قام بإنشائه. ولكن في بعض الأحيان ترغب في أن ترث الملفات الجديدة معرف المجموعة في المجلد الذي تم إنشاؤه فيه ، بحيث يمكنك تمكين بت SGID في المجلد الأصل.

تعتمد قيم الأذونات الافتراضية على umask الخاص بك. تقوم umask بطرح الأذونات من الملفات التي تم إنشاؤها حديثًا ، وبالتالي فإن القيمة المشتركة لـ 022 تؤدي إلى إنشاء ملفات باستخدام 755. عند التعاون مع مجموعة ، من المفيد تغيير umask الخاص بك إلى 002 بحيث يمكن تعديل الملفات التي تقوم بإنشائها بواسطة أعضاء المجموعة. وإذا كنت تريد تخصيص أذونات الملفات التي تم تحميلها ، فستحتاج إما إلى تغيير umask لـ apache أو تشغيل chmod بعد تحميل الملف.


المشكلة مع 777

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

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


تحديد المتطلبات

  • يحتاج المطورون إلى الوصول للقراءة / الكتابة إلى الملفات حتى يتمكنوا من تحديث موقع الويب
  • يحتاج المطورون إلى القراءة / الكتابة / التنفيذ على الأدلة حتى يتمكنوا من التصفح
  • يحتاج Apache إلى الوصول للقراءة إلى الملفات والبرامج النصية المفسرة
  • يحتاج Apache إلى قراءة / تنفيذ الوصول إلى أدلة serveable
  • يحتاج Apache إلى قراءة / كتابة / تنفيذ الوصول إلى الأدلة للمحتوى الذي تم تحميله

صيانة بواسطة مستخدم واحد

إذا كان هناك مستخدم واحد فقط مسؤول عن صيانة الموقع ، فعيّنه كمالك المستخدم على دليل موقع الويب وأعط المستخدم أذونات rwx كاملة. ما زال Apache بحاجة إلى إمكانية الوصول حتى يتمكن من خدمة الملفات ، لذا قم بتعيين www-data كمالك المجموعة وأعط أذونات المجموعة r-x.

في حالتك ، حواء ، قد يكون اسم المستخدم الخاص به eve، هو المستخدم الوحيد الذي يحافظ contoso.com :

chown -R eve contoso.com/
chgrp -R www-data contoso.com/
chmod -R 750 contoso.com/
chmod g+s contoso.com/
ls -l
drwxr-s--- 2 eve      www-data   4096 Feb  5 22:52 contoso.com

إذا كان لديك مجلدات تحتاج إلى أن تكون قابلة للكتابة بواسطة Apache ، فيمكنك فقط تعديل قيم الأذونات لمالك المجموعة بحيث يكون لـ www-data حق الوصول للكتابة.

chmod g+w uploads
ls -l
drwxrws--- 2 eve      www-data   4096 Feb  5 22:52 uploads

وتتمثل فائدة هذا التكوين في أنه يصبح من الصعب (ولكن ليس مستحيلاً *) بالنسبة للمستخدمين الآخرين على النظام التجسس ، حيث يمكن فقط لمالكي المستخدمين والمجموعات استعراض دليل موقع الويب الخاص بك. هذا مفيد إذا كان لديك بيانات سرية في ملفات التكوين الخاصة بك. كن حذرا حول umask الخاص بك! إذا قمت بإنشاء ملف جديد هنا ، فمن المحتمل أن تكون قيم الإذن الافتراضية هي 755. يمكنك تشغيل umask 027بحيث الملفات الافتراضية الافتراضية إلى 640 (rw- r-- ---).


تحتفظ بها مجموعة من المستخدمين

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

groupadd dev-fabrikam
usermod -a -G dev-fabrikam alice
usermod -a -G dev-fabrikam bob

في المثال السابق ، استخدمنا مالك المجموعة لمنح امتيازات إلى Apache ، لكن الآن يُستخدم لمجموعة المطورين. نظرًا لأن مالك المستخدم ليس مفيدًا لنا بعد الآن ، فإن تعيينه إلى الجذر هو طريقة بسيطة لضمان عدم تسرب أي امتيازات. لا يزال Apache بحاجة إلى إمكانية الوصول ، لذا نتيح الوصول للقراءة إلى بقية العالم.

chown -R root fabrikam.com
chgrp -R dev-fabrikam fabrikam.com
chmod -R 775 fabrikam.com
chmod g+s fabrikam.com
ls -l
drwxrwxr-x 2 root     dev-fabrikam   4096 Feb  5 22:52 fabrikam.com

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

chown -R www-data uploads
ls -l
drwxrwxr-x 2 www-data     dev-fabrikam   4096 Feb  5 22:52 uploads

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

يمكنك الحصول على كعكتك و أكلها أيضا

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

chown -R www-data fabrikam.com
chgrp -R dev-fabrikam fabrikam.com
chmod -R 570 fabrikam.com
chmod g+s fabrikam.com
ls -l
dr-xrwx--- 2 www-data  dev-fabrikam   4096 Feb  5 22:52 fabrikam.com

إذا كان لديك مجلدات تحتاج إلى أن تكون قابلة للكتابة بواسطة Apache ، فيمكنك فقط تعديل قيم الأذونات لمالك المستخدم بحيث يكون لـ www-data حق الوصول للكتابة.

chmod u+w uploads
ls -l
drwxrwx--- 2 www-data  dev-fabrikam   4096 Feb  5 22:52 fabrikam.com

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


* فصل امتياز اباتشي

لقد ذكرت سابقًا أنه من الممكن في الواقع للمستخدمين الآخرين التجسس حول موقع الويب الخاص بك بغض النظر عن نوع الامتيازات التي تستخدمها. بشكل افتراضي ، تعمل جميع عمليات Apache كمستخدم نفس www-data ، بحيث يمكن لأي عملية Apache قراءة الملفات من جميع المواقع الأخرى التي تم تكوينها على نفس الخادم ، وأحيانًا حتى إجراء تغييرات. يمكن لأي مستخدم يمكنه الحصول على Apache لتشغيل برنامج نصي أن يحصل على نفس الوصول الذي يمتلكه Apache نفسه.

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


اعتبارات إضافية

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

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

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

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


318
2018-02-06 01:50



"chmod -R 775 fabrikam.com". هناك عدد قليل جدًا من الملفات داخل معظم مواقع الويب يجب أن تكون قابلة للتنفيذ ؛ على سبيل المثال ، يمكن أن يكون برنامج نصي PHP 0640 طالما أن ملقم الويب يمكنه قراءتها. chmod -R a + X fabrikam.com سيعطي حقوق التنفيذ للجميع فقط على الأدلة.
وصف لطيف! - RNA
لاحظ جيدًا أن Apache يعمل كمستخدم apache على أنظمة ريد هات المشتقة. - Michael Hampton♦
هذا أمر ممتاز ، ولكن هناك شيء واحد لم أفهمه: لا أفهم الهدف أو ميزة استراتيجية جعل apache المستخدم / المالك لدليل الملف إذا كان لديه بالفعل ملكية المجموعة على الملف. - idiotprogrammer
هذا هو وظيفة ممتازة. هنا مساهمتي: الجانب السلبي لاستخدام www-data كمالك و dev-fabrikam كمجموعة (المذكورة في يمكنك الحصول على كعكتك و أكلها أيضا ينطبق أيضا (في الاتجاه المعاكس) على السيناريو المعروض في صيانة بواسطة مستخدم واحد. في هذا السيناريو ، عندما ينشئ Apache مجلدًا أو ملفًا ، لن يتمكن المستخدم من الوصول إليه ، لذلك يجب إعادة تحميل الملفات إلى المستخدم الأصلي. لم أقم بتحديث الإجابة لأنني لست متأكدًا بنسبة 100٪ بشأن بياني. أفضل أن أؤكد الآخرين قبل تصحيح الإجابة.


أتساءل لماذا يستخدم العديد من الأشخاص (أو يوصون) بـ "الآخر" (س) جزء من حقوق لينكس للتحكم في ما يمكن أن يقوم به Apache (و / أو PHP). من خلال تعيين هذا الجزء الأيمن على شيء آخر غير "0" ، فأنت تسمح فقط للعالم كله بفعل شيء ما على الملف / الدليل.

النهج الخاص بي هو التالي:

  • أقوم بإنشاء مستخدمين منفصلين. واحد للوصول SSH / SFTP (إذا لزم الأمر) ، والتي سوف تملك جميع الملفات ، وواحد لمستخدم FastCGI PHP (المستخدم الذي يعمل عليه موقع الويب). دعونا نسمي هؤلاء المستخدمين على التوالي تمايل و بوب-شبكة الاتصالات العالمية.
  • تمايل سيكون لديك حقوق كاملة (RWX على المجلدات ، rw- على الملفات) ، حتى يتمكن من قراءة وتحرير الموقع بأكمله.
  • تحتاج عملية PHP FastCGI ص-س حقوق على المجلدات و r-- حقوق على الملفات ، باستثناء مجلدات محددة للغاية مثل cache/ أو uploads/، حيث هناك حاجة أيضا إلى إذن "الكتابة". لإعطاء PHP FastCGI هذه القدرة ، فإنه سيتم تشغيل بوب-شبكة الاتصالات العالميةو بوب-شبكة الاتصالات العالمية ستتم إضافتها إلى الإنشاء الذي تم إنشاؤه تلقائيًا تمايل مجموعة.
  • نحن الآن نتأكد من أن المالك ومجموعة من جميع الدلائل والملفات هي بوب بوب.
  • هناك شيء مفقود: حتى أننا نستخدم FastCGI ، ولكن لا يزال Apache بحاجة إلى الوصول للقراءة أو للمحتوى الثابت أو ملفات .htaccess التي سيحاول قراءتها إذا AllowOverride تم تعيينه على شيء آخر غير None. لتجنب استخدام س جزء من الحقوق ، أقوم بإضافة شبكة الاتصالات العالمية بيانات المستخدم الى تمايل مجموعة.

الآن:

  • للتحكم في ما يمكن للمطور القيام به ، يمكننا اللعب مع ش جزء من الحقوق (ولكن هذه المذكرة أدناه).
  • للتحكم في ما يمكن أن يفعله Apache و PHP ، يمكننا اللعب مع ز جزء من الحقوق.
  • ال س يتم دائمًا تعيين الجزء إلى 0 ، لذلك لا يمكن لأي شخص آخر على الخادم قراءة موقع الويب أو تعديله.
  • لا توجد مشكلة عندما تمايل المستخدم بإنشاء ملفات جديدة ، نظرًا لأنها ستنتمي تلقائيًا إلى مجموعته الرئيسية (تمايل).

هذا ملخص ، لكن في هذه الحالة ، تمايل مسموح لـ SSH. إذا لم يكن هناك أي مستخدم مسموح له بتعديل موقع الويب (على سبيل المثال ، يقوم العميل بتعديل موقع الويب فقط من خلال لوحة إدارة CMS وليس لديه معرفة Linux) ، قم بإنشاء مستخدمين على أي حال ، /bin/falseكما قذيفة ل تمايل كذلك ، وتعطيل تسجيل الدخول.

    adduser --home /var/www/bobwebsite --shell /bin/bash bob
    adduser --no-create-home --shell /bin/false --disabled-login --ingroup bob bob-www
    adduser www-data bob
    cd /var/www/bobwebsite
    chown -R bob:bob .
    find -type d -exec chmod 750 {} \;
    find -type f -exec chmod 640 {} \;

ملحوظة : يميل الناس إلى نسيان أن الحد ش (مالك) حقوق معظم الوقت غير مجدية وغير آمنة ، لأن مالك ملف يمكن تشغيل chmod الأمر ، حتى الحقوق هي 000.

أخبرني إذا كان مقاربتي لديها بعض المشكلات الأمنية ، لأنني لست متأكدًا بنسبة 100٪ ، ولكن هذا ما أستخدمه.

أعتقد أن هذا التكوين لديه مشكلة: عندما يقوم PHP / Apache بإنشاء ملف جديد (على سبيل المثال ، تحميل) ، فإنه سوف ينتمي إلى بوب-شبكة الاتصالات العالمية: بوبو تمايل سوف تكون قادرة على قراءتها فقط. ربما setuid على الدليل يمكن أن تحل المشكلة.


13
2017-07-19 21:42



يتجاهل نظام التشغيل Linux setuid. يتم دائمًا امتلاك الملفات الجديدة بواسطة منشئ المحتوى. - Paul
لا افهم شيئا. يبدو أن هذا لا يدمج الحالة عندما يعمل المزيد من المطورين بشكل سلطوي على الموقع الإلكتروني ، نظرًا لأن المستخدم الوحيد هو bob. كيف تتعامل مع ذلك؟ على سبيل المثال. من خلال ssh ، يقوم كلا المستخدم بتسجيل الدخول كـ bob. يشعر bob (1) بأنه / هي لا يتذكر كلمة المرور ويغيرها إلى آخر ولكنه لا يزال آمنًا. يحاول bob (2) تسجيل الدخول في المرة القادمة ، ولا يمكنه ذلك. - n611x007
naxa يجب ألا يكون لأي نظام جيد بشكل هامشي أي من المطورين الذين يقومون بتعديل موقع الويب مباشرة. من الناحية المثالية ، فإن موقع الويب يخضع للتحكم في الإصدار بحيث يسحب حساب المستخدم "bob" كل إصدار (ثابت) وينشره تلقائيًا. لذلك ، يقوم المطورون بالتطوير خارج الموقع ، ويتم نشر التغييرات بمجرد دفعهم إلى خادم النشر. "bob" هو مستخدم النظام الذي يجب أن يكون لديه أذونات شبكة محدودة للغاية ، والتي لا تتضمن تسجيل الدخول عن بعد ؛ iptables في الواقع يسمح لك لتصفية بواسطة UID لأشياء من هذا القبيل. - Parthian Shot
"أتساءل لماذا يستخدم هذا العدد الكبير من الأشخاص (أو ينصح) به" الآخر "(س)" - ثم ربما كان عليك نشر هذا السؤال على أنه سؤال بدلاً من الإجابة. ليس من غير المألوف تشغيل خادم الويب بشكل متعمد (باعتباره الجزء الأكثر تعرضًا للنظام) بأدنى مستوى من الامتيازات ، بينما يحتاج الدعم والحسابات الإدارية أيضًا إلى وصول مختلف - symcbean


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

بالاستمرار في المثال ، إذا كنت تخطط لاستخدام www-data كمالك و dev-fabrikam كمجموعة مع 570 إذنًا على الدليل (أو الملف) ، فمن المهم ملاحظة أن يتجاهل نظام التشغيل Linux  setuid، لذلك سيتم امتلاك جميع الملفات الجديدة بواسطة المستخدم الذي أنشأها. هذا يعني أنه بعد إنشاء دلائل وملفات جديدة ، سيكون عليك استخدام شيء مشابه لـ:

chown -R www-data /newdirectory/
chmod -R 570 /newdirectory/

في Ubuntu 12.04 لـ Rackspace OpenStack ، كان لدي مشكلة غريبة حيث لم أتمكن من الحصول على أذونات 570 للعمل حتى أعيد تشغيل الخادم ، الذي قام بإصلاح المشكلة بشكل سحري. كان فقدان الشعر بمعدل متزايد على هذه القضية التي تبدو بسيطة ....


9
2018-01-13 22:03



واسمحوا لي أن يكون هذا googled: في Raspbian (ويعرف أيضا باسم pi التوت ، إذا كنت ترغب في تغيير ملكية / var / www تحت lighttpd (أو متصفح ويب آخر) ، يجب عليك إعادة تشغيل الكمبيوتر. - gbronner
gbronner إذا كانت هذه مشكلة صعبة للعثور على حل لها ، فقد تفكر في نشرها كسؤال وتقديم إجابة على السؤال. ومع ذلك ، ربما يكون أكثر ملاءمة في موقع SE & Q مختلف. تخميني هو يونيكس ولينكس قد يكون مكانًا جيدًا للقيام بذلك. - Paul
هناك أيضا raspberrypi.stackexchange.com ؛ يبدو أن مواقع SE تقوم بتجزئة المعرفة قليلاً. - gbronner
gbronner lol. لم أكن أعرف عن ذلك! العلامة Raspbian على U & L لديها ما يشبه 120 سؤال. - Paul


انا ذاهب مع هذا التكوين:

  1. جميع الأدلة ما عدا تحميل مجموعة واحدة على المالك root والمجموعة rootوالأذونات ل 0755.
  2. جميع الملفات مضبوطة على المالك root والمجموعة rootوالأذونات ل 0644.
  3. تم تعيين دليل التحميلات على المالك rootمجموعة www-dataوالأذونات ل 1770. لا تسمح البقعة اللزجة لمالك المجموعة بإزالة أو إعادة تسمية الدليل والملفات بداخله.
  4. داخل مجلد التحميلات دليل جديد مع www-data مستخدم المالك والمجموعة ، و 0700 أذونات لكل منهما www-data المستخدم الذي تحميل الملفات.
  5. تكوين Apache:

أنكر AllowOverride و Index في دليل التحميلات ، حتى لا يقرأ Apache .htaccess الملفات ، ولا يستطيع مستخدم Apache فهرسة محتوى مجلد التحميلات:

<Directory /siteDir>
   Options -Indexes
</Directory>

<Directory /siteDir/uploadDir>
   AllowOverride none
</Directory>

6. php.ini ترتيب:

open_basedir = /siteDir:/tmp:/usr/share/phpmyadmin
post_max_size = 5M
file_uploads = On
upload_max_filesize = 3M
max_file_uploads = 20

مع هذا التكوين ، و www-data لن يتمكن المستخدم من الوصول إلى أدلة أخرى بخلاف siteDir/  /tmp و /usr/share/phpmyadmin. كما يمكنك التحكم في الحد الأقصى لحجم الملف ، والحد الأقصى لحجم المشاركة والحد الأقصى من الملفات لتحميلها في نفس الطلب.


3
2017-10-23 09:54





عندما يكون لديك مستخدم FTP يسمى "leo" بحاجة إلى تحميل الملفات إلى دليل الويب example.com وتحتاج أيضًا إلى أن يكون مستخدم "apache" قادرًا على إنشاء ملفات الملفات / الجلسات / التخزين المؤقت في دليل ذاكرة التخزين المؤقت ثم قم بما يلي:

يعيّن هذا الأمر leo كمالك ومجموعة كمفتاح apache إلى example.com ، حيث يعد مستخدم apache جزءًا من apache المجموعة بحيث سيرث أذونات مجموعة apache

chown -R leo: apache example.com

أمر آخر يضمن الإذن الصحيح ويفي بواعث الأمان كذلك.

chmod -R 2774 example.com

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

ما يلي مفيدًا لفهم أرقام الأذونات

Number  Octal Permission Representation
0   No permission
1   Execute permission
2   Write permission
3   Execute and write permission: 1 (execute) + 2 (write) = 3
4   Read permission
5   Read and execute permission: 4 (read) + 1 (execute) = 5
6   Read and write permission: 4 (read) + 2 (write) = 6
7   All permissions: 4 (read) + 2 (write) + 1 (execute) = 7

3
2017-08-09 07:15