it-swarm.asia

كيف يمكنني منح حق الوصول للكتابة لجميع المجلدات في نظام التشغيل Linux؟

لقد قمت بتثبيت Apache2 على أوبونتو الآن ، ولاحظت أن المجلد/var/www محمي. يمكنني فقط Sudo كل شيء ولكني أفضل فقط منح حق الوصول للكتابة.

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

جربت Sudo chmod 7777 /var/www لكنها لم تنجح.

184
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 {} \;

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

313
jtimberman

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

Sudo chmod -R 757 /var/www

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

32
Krishna Modi

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

Sudo chmod -R a+rw /var/www

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

Sudo chmod -R a+rwx /var/www
27
paivaric

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

هذه مجرد تعيين الأذونات كما تفعل للمستخدم ، المجموعة ، وغيرها ، والقناع باستخدام 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 لرؤية قوائم ACL للدلائل الفرعية أو -d لرؤية الإعدادات الافتراضية.

7
Nikhil Chelliah

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

ا. أضف ( -a ) مستخدمك ( اسم المستخدم ) إلى المجموعة ( -G ) www-data .

Sudo usermod -a -G www-data user_name

ب. أعط المجموعة ( g ) نفس أذونات ( = ) مثل المستخدم المالك ( u ) من/var/www بشكل متكرر ( -R ).

Sudo chmod -R g=u /var/www

Explanation: يقوم Apache 2 على Debian/Ubuntu بتعيين User & Group www-data as the owner/var/www . الأذونات الافتراضية للمستخدم هي "عرض وتعديل المحتوى" ، ولكن لا يمكن للمجموعة سوى "عرض المحتوى". لذلك ، تعد إضافة نفسك إلى مجموعة www-data ومنحها نفس أذونات مستخدم wwww-data ، طريقة سريعة وسهلة للتطوير. أفعل ذلك مع كل بيئات تطوير ويب المضيف المحلي (الكمبيوتر/الكمبيوتر المحمول).

2
user1138

أنا استخدام typicall

chmod g+w /folder/ -R

انها شبه ذاتية.

يضيف كل شخص في group من /folder/ ليكون لديه write حق الوصول (+w) ، -R مخصص للتكرار في المجلدات الفرعية.

1
Arda