سؤال كيف يمكنني إعطاء حق الوصول للكتابة إلى جميع المستخدمين في لينكس؟


لقد قمت بتثبيت apache2 على Ubuntu الآن فقط ، ولاحظت أن المجلد var / www محمي. استطيع فقط sudo كل شيء ولكن أود أن أعطيها فقط الوصول إلى الكتابة.

كيف يمكنني أن أفعل هذا؟

حاولت sudo chmod 7777 /var/www لكنها لم تنجح.


168
2017-08-06 23:30


الأصل


هل هذا الخادم متاح للجمهور ، أم أنه ليس لديه اتصال مباشر بالإنترنت؟ إذا كان من الأهمية بمكان أن تفكر في اتخاذ قرارات أمنية - فالخوادم الموجودة على الإنترنت تتعرض للهجوم باستمرار (إلقاء نظرة على / var / log / messages أو ما يعادلها). - kwutchak
هذا هو جهاز الكمبيوتر المحمول الخاص بي فقط ، لا يمكن الوصول إليه من الإنترنت. - Carson Myers


الأجوبة:


للمشاركة بشكل أفضل مع العديد من المستخدمين الذين يجب أن يكونوا قادرين على الكتابة /var/www، يجب أن يتم تعيين مجموعة مشتركة. على سبيل المثال ، المجموعة الافتراضية لمحتوى الويب على Ubuntu و Debian هي www-data. تأكد من جميع المستخدمين الذين يحتاجون إلى الوصول للكتابة /var/www في هذه المجموعة.

sudo usermod -a -G www-data <some_user>

ثم قم بتعيين الأذونات الصحيحة على / var / www.

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

بالإضافة إلى ذلك ، يجب عليك جعل الدليل وجميع الأدلة أدناه "تعيين GID" ، بحيث كل شيء الجديد الملفات والدلائل التي تم إنشاؤها تحت /var/www مملوكة من قبل www-data مجموعة.

sudo find /var/www -type d -exec chmod 2775 {} \;    

البحث عن جميع الملفات في /var/www وإضافة إذن القراءة والكتابة للمالك والمجموعة:

sudo find /var/www -type f -exec chmod ug+rw {} \;

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


295
2017-08-07 00:15



هذا ممل جدا ... لا أستطيع فقط منح المستخدمين إمكانية الوصول إليه ، كما لو كان أي مجلد آخر؟ - Carson Myers
أن هو كيف تعطي الوصول إليها. من الأسرع نسخ الأوامر ولصقها بدلاً من محاولة التنقل خلال مربعات حوار مدير الملفات في GUI للقيام بنفس الأمر. على المدى الطويل يساعدك إذا كنت تقرأ صفحات دليل ل chmod و chgrp ، على الأقل ("الرجل chmod"). - jtimberman
ربما لم أتفهم الأوامر في المرة الأولى التي أقرأها فيها ، والتعديل يجعلها أكثر وضوحًا. - Carson Myers
+1 لـ guid لفرض أذونات apache. يعمل بشكل جيد مع umask من 027. إذا كان هناك شيء يحتاج إلى كتابة الوصول ، فإنه من السهل كما chmod g + w dir / - LiraNuna
لماذا إذن فريقك إذن sudo chmod -R g+w و لا g+rw أو g+rwX؟ - detly


هناك طريقة أبسط للقيام بذلك ، حاول القيام بهذا الأمر.

sudo chmod -R 757 /var/www

أساسا ، و chmod الأمر يغير أذونات و -R التبديل يؤثر على جميع المستخدمين. ثم هو ببساطة إعطاء الأذونات الصحيحة للاستخدام.


25
2017-09-22 10:31



هل يمكن أن تعطي بعض الأفكار حول ما يفعله الأمر لـ OP؟ - n0pe
-1 لعدم وجود تفسير. الى جانب ذلك، chmod $permissions -R $file غير صالح ... - Blacklight Shining
هي خيارات ثم أذونات ليس العكس - Moataz Elmasry
sudo chmod -R 757 /var/www - Bwyss
يرجى من شخص ما من ذوي الخبرة اقتراح تعديل مع شرح موجز عن هذا. - Adi Prasetyo


قراءة + كتابة:

sudo chmod -R a+rw /var/www

قراءة + كتابة + تنفيذ:

sudo chmod -R a+rwx /var/www

23
2017-08-09 19:22





يمكنك أيضًا تكرار ما اقترحه jtimberman باستخدام قوائم التحكم في الوصول. ال setfacl يقبل الأمر -s ليحل محل ACL قائم أو -m لتعديله ؛ -R لجعل دليل قوائم ACL متكررة ؛ و -d لجعل الإعدادات المحددة الافتراضية ، وهو أمر مفيد إذا كنت تتوقع حسابات المستخدمين القادمة.

هذه فقط تعيين الأذونات كما تفعل للمستخدم والمجموعة وغيرها ، وقناع باستخدام chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

ويمكن أن يكون هذا هو كيفية القيام بذلك لمستخدم معين أو مجموعته / مجموعتها:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

وبالطبع ، القوة هي أنه يمكنك تعيين أي مستخدم محدد ، مستخدمين متعددين ، إلخ ، كل ذلك دون الحاجة إلى تعديل إعدادات مجموعتك. وعلى عكس chmod ، إذا كنت تريد أن تحصل بعض المجموعات على دليل واحد ومجموعات أخرى لتتمكن من الوصول إلى آخر فقط ، فمن الممكن بالفعل باستخدام setfacl. أخيرًا ، لعرض قائمة ACL الخاصة بالدليل ، شغّل getfacl:

getfacl DIRECTORY

ويمكنك تحديد -R لرؤية ACLs للدلائل الفرعية أو -د لرؤية الإعدادات الافتراضية.


7
2017-08-08 12:29



هذا هو أفضل إجابة! أتمنى أن أتمكن من التصويت أكثر من مرة. - Tim Duncklee


الجواب السريع والسهل -

ا. إضافة () مستخدمك (اسم المستخدم) إلى المجموعة (-G) شبكة الاتصالات العالمية بيانات.

sudo usermod -a -G www-data user_name

ب. اعط المجموعة (ز) نفس الشيء (=) أذونات كمستخدم المالك (ش) من / فار / على شبكة الاتصالات العالمية بشكل متكرر (-R).

sudo chmod -R g=u /var/www

Explanation: Apache 2 على Debian / Ubuntu يحدد المستخدم والمجموعة شبكة الاتصالات العالمية بيانات كمالك / فار / على شبكة الاتصالات العالمية. الأذونات الافتراضية للمستخدم هي "عرض المحتوى وتعديله" ، ومع ذلك يمكن للمجموعة فقط "عرض المحتوى". لذا فإن إضافة نفسك إلى مجموعة www-data وإعطائها نفس الأذونات مثل مستخدم wwww-data ، هي طريقة سريعة وسهلة التطوير. أفعل هذا لجميع البيئات المحلية (PC / Laptop) الخاصة بتطوير الويب.


2
2018-02-20 02:20





أنا استخدام typicall

chmod g+w /folder/ -R

إنها تفسر نفسها تقريبًا.

يضيف الجميع في gروبة من /folder/ امتلاك wالوصول الطقوس (+w) ، -R هو للتكرار للمجلدات الفرعية.


1
2018-03-19 21:13





يمكنك أن تجرب فقط chmod 0777 /var/www ؟

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


-3
2017-08-07 02:01



فلماذا نقدم هذا كحل ، ومن ثم نضع المصداقية على الفور؟ -1 صوت - Tisch


أولاً أدخل مسار المجلد المحدد ، ثم استخدم هذا الأمر ...

chmod -R 777 foldername
chown username:username foldername 

-4
2017-09-30 09:58



واو ، هذا سيئ! أنت لا تعطي 777 مع -R - خاصة إذا كان الشخص الذي يطرح السؤال هو مبتدئ ولا يفهم المخاطر. - recluze
صحيح بما فيه الكفايةrecluze. - vgoff