سؤال منح أذونات الكتابة لعدة مستخدمين في مجلد في أوبونتو


هناك مجلد يملكه المستخدم tomcat6:

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

أريد السماح لأصوات مستخدم آخر (ruser) بكتابة مجلد المستندات. لا ينتمي المستخدمان (tomcat6 و ruser) إلى نفس المجموعة. لقد حاولت استخدام setfacl:

sudo setfacl -m  u:ruser:rwx document

لكن هذا يعطيني setfacl: document: Operation not supported خطأ. يرجى مساعدتي.


70
2018-05-09 08:44


الأصل




الأجوبة:


هناك طريقتان للقيام بذلك: تعيين الدليل إلى "العالم" للكتابة أو إنشاء مجموعة جديدة للمستخدمين اثنين وجعل الدليل يمكن الكتابة إلى هذه المجموعة.

من الواضح أن جعله كتابيا عالميا أمر سيء ، لذلك الخيار الثاني هو الأفضل.

يمكن أن ينتمي المستخدمون في Linux إلى أكثر من مجموعة واحدة. في هذه الحالة ، تريد إنشاء مجموعة جديدة تمامًا ، دعنا نسميها tomandruser:

sudo groupadd tomandruser

الآن بعد أن كانت المجموعة موجودة ، قم بإضافة المستخدمين إليها:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

الآن كل ما تبقى هو تعيين الأذونات على الدليل:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

الآن يمكن فقط لأعضاء مجموعة tomandruser قراءة أو كتابة أو تنفيذ أي شيء داخل الدليل. لاحظ الوسيطة -R لأوامر chmod و chgrp: هذا يخبرهم بالتكرار في كل دليل فرعي للدليل الهدف وتعديل كل ملف وكل دليل يجده.

قد ترغب أيضًا في تغيير 770 إلى شيء مثل 774 إذا كنت تريد أن يتمكن الآخرون من قراءة الملفات ، 775 إذا كنت تريد من الآخرين قراءة الملفات وتنفيذها ، وما إلى ذلك لن تسري تغييرات تعيين المجموعة حتى يسجل المستخدمون خروجهم ويعودوا إليها.

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


133
2018-05-09 10:06



ربما تريد أيضًا تعيين علامة معرف مجموعة المجموعات للدلائل ، لإنشاء ملفات وأدلة فرعية جديدة مملوكة تلقائيًا للمجموعة الصحيحة: sudo find /path/to/the/directory -type d -exec chmod 2770 '{}' \; - Marcello Nuccio
كنت تجنب استخدام chmod 770 ، 775 أو أيا كان. هذا الفوضى مع أذونات الكل الملفات. بدلا من ذلك استخدام شيء من هذا القبيل chmod -R g+w لإضافة أذونات الكتابة دون التلويث عن أي شيء آخر. - Christian Varga
إذا قام مستخدم بإنشاء ملف جديد هناك (قل ، mysql بواسطة SELECT INTO OUTFILE) ، يحدد أذونات لمجموعته الأساسية (mysql في هذه الحالة) ، ولا يمكن الوصول إلى الملف على أي مستخدم آخر على أي حال. كيفية حل هذا؟ - Olexa
ماذا لو كنت تريد منح المستخدمين حق الوصول للكتابة إلى مجلد دون تغيير ملكية المجلد ، على سبيل المثال. أنت لا تريد الفوضى مع أذونات أباتشي على مجلد public_html؟ - codecowboy
ملحوظة: "لن تسري تغييرات تعيين المجموعة حتى يسجل المستخدمون خروجهم ويعودون مرة أخرى." لقد فاتني ذلك :) - Vladimir Vukanac


المثال النصي يظهر مثالا لتقديمه w (write)/ r (read) / x (execute) إذن لمسار المجلد المحدد /path/to/the/directory إلى عن على USER1 و USER2. إذا كنت تريد إعطاء حق الوصول للكتابة فقط يرجى استبدال rwx مع w.


#!/bin/bash

# Block others and people in the same group to do read/write/execute on give folder:    
sudo chmod 700 /path/to/the/directory 

#Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

#Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory 

0
2017-07-23 14:26