لنسخ الملفات كل دقيقة في / var / www دون sudo
سؤال
كيف يمكنك نسخ مجلد إلى / var / www دون sudo؟
ملفي codes
لديه الأذونات التالية في / var / www
4 drwxr-xr-x 8 root root 4096 2009-08-09 03:01 codes
لا أستطيع فقط sudo cp -r ~/Dropbox/codes/ /var/www
لنسخ الملفات. لا أستطيع نسخها دون سودو.
المحلول
امتلاك /var/www
قد تتعارض نفسك مع خيارات أخرى على نظامك. على نظام دبيان الخاص بي أود القيام بذلك
sudo addgroup www
sudo adduser nr www # add myself to the www group
sudo chgrp -R www /var/www # make files in the group
find /var/www -type f -exec chmod g+w '{}' ';' # make each file group writable
find /var/www -type d -exec chmod g+ws '{}' ';' # make each directory group writable and sticky
إذا كان الدليل هو المجموعة القابلة للكتابة واللزجة، وجميع الملفات التي تم إنشاؤها في /var/www
سوف تكون قابلة للكتابة من قبل أي شخص في www
المجموعة، بغض النظر عن من أو ما يخلقها هناك. (تحذير: يجب أن يتم إنشاؤها عن طريق وسائل "طبيعية"؛ cp -a
يمكن التحايل على مجموعة لزجة المجموعة.)
نظرا لأن UNIX غبي بجنون عن عضوية المجموعة، لأن تكريم عضويتك، سيتعين عليك تسجيل الدخول مرة أخرى، على سبيل المثال، ssh localhost
أو تسجيل الخروج وتسجيل الدخول مرة أخرى. إزعاج.
نصائح أخرى
ماذا عن إضافة وظيفة cron إلى مستخدم الجذر. إنها ليست فكرة رائعة، لكنها ستحول حول المشكلة؟
أجد أيضا أنه من المثير للاهتمام أن دليل WWW الخاص بك سيكون له أذونات الجذر فقط وتكون مملوكة من قبل الجذر. عادة ما تكون مملوكة من قبل مستخدم Apache أو لديك أذونات أخرى مثل أن Apache يمكن الوصول إليها.
يحرر ربما لا ترغب في تحرير ملف ملف Crontab Directy. ولكن شيء مشابه للأمر التالي يجب أن يعمل:
sudo crontab -e -u root
قد لا تحتاج إلى -u root
لكن الأمر جيد حتى سودو لا تخلط بين Crontab.
تحرير 2. يمكنك تغيير الأذونات مع chmod
و chown
الأوامر:
sudo chmod 755 /path
sudo chown user:user /path
كن حذرا جدا عند استخدام هذا. يمكنك إبرام نظام التشغيل بالكامل عن طريق تغيير الأذونات على الملفات أو المجلدات الخاطئة. ربما ترغب في إضافة خيار -r والتي ستطبق الأذونات أو المالك بشكل متكرر، ولكن مرة أخرى، كن حذرا للغاية.
sudo chown yourusername /var/www
وستصبح المالك الجديد لل /var/www
.