שאלה אילו הרשאות יש לקבצי האתר / תיקיות שלי בשרת אינטרנט לינוקס?


זה קנוניקל שאלה על הרשאות קבצים בשרת אינטרנט לינוקס.

יש לי שרת אינטרנט לינוקס פועל Apache2 המארח מספר אתרי אינטרנט. לכל אתר יש תיקיה משלו ב / var / www /.

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

ספריית הבסיס / var / www / היא בבעלות השורש: root. Apache פועל כ- www-data: www-data. האתר של Fabrikam מתוחזק על ידי שני מפתחים, אליס ובוב. שני אתרי Contoso נשמרים על ידי מפתח אחד, חוה. כל אתרי האינטרנט מאפשרים למשתמשים להעלות תמונות. אם אתר אינטרנט נמצא בסכנה, ההשפעה צריכה להיות מוגבלת ככל האפשר.

אני רוצה לדעת מהי הדרך הטובה ביותר להגדיר הרשאות כדי שאפאצ'י יוכל לשרת את התוכן, האתר מאובטח מפני התקפות, והמפתחים עדיין יכולים לבצע שינויים. אחד האתרים הוא מובנה כך:

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

כיצד יש להגדיר את ההרשאות בספריות ובקבצים אלה? קראתי באיזה מקום שאתה לא צריך להשתמש 777 הרשאות באתר אינטרנט, אבל אני לא מבין מה הבעיות שעלולות לגרום. במהלך תקופות עסוקות, האתר מאחסן באופן אוטומטי חלק מהדפים ומאחסן את התוצאות בתיקיית המטמון. כל התוכן שנשלח על ידי מבקרים באתר נשמר בתיקייה ההעלאות.


284
2018-02-06 01:50




זה נועד להיות קנוני לענות על כל השאלות שאנו מקבלים על הרשאות האתר. - Nic
"קראתי באיזה מקום שאתה לא צריך להשתמש 777 הרשאות באתר אינטרנט, אבל אני לא מבין ..." - אז הקורא יוכל להבין או לפחות להיות מסוגל להשוות את היתרונות של התשובות כאן? כל פתרון צריך להיות מבוסס על דרישות ספציפיות - הדרישות כאן אינן ספציפיות מספיק (מהו מודל האיום) - symcbean
אני אוהב שאתה שואל על אפאצ 'י, אבל הם משתמשים בדומיינים המשמשים בדרך כלל כדוגמאות. - gWaldo
ראה גם מהי הדרך הטובה ביותר לטפל בהרשאות עבור משתמש www של apache2 ב- / var / www? - Gareth
אתה יכול להתייחס כאן לקבלת פרטים מלאים על ההרשאה כי יש צורך לשים על קבצי אינטרנט ותיקיות ב לינוקס serverfault.com/questions/124800/...


תשובות:


כאשר אתה מחליט אילו הרשאות להשתמש, אתה צריך לדעת בדיוק מי הם המשתמשים שלך ואת מה שהם צריכים. שרת אינטרנט מקיים אינטראקציה עם שני סוגי משתמשים.

מאומת למשתמשים יש חשבון משתמש בשרת וניתן לספק לו הרשאות ספציפיות. בדרך כלל זה כולל מנהלי מערכת, מפתחים וחשבונות שירות. הם בדרך כלל לבצע שינויים במערכת באמצעות SSH או SFTP.

בעילום שם משתמשים הם המבקרים באתר שלך. למרות שאין להם הרשאות לגשת ישירות לקבצים, הם יכולים לבקש דף אינטרנט ושרת האינטרנט פועל בשמם. ניתן להגביל את הגישה של משתמשים אנונימיים על ידי זהירות לגבי ההרשאות שיש לתהליך שרת האינטרנט. על הפצות לינוקס רבות, Apache פועל כמו www-data אבל זה יכול להיות שונה. להשתמש ps aux | grep httpd או ps aux | grep apache כדי לראות מה המשתמש Apache משתמש במערכת שלך.


הערות על הרשאות לינוקס

Linux ומערכות POSIX תואמות אחרות משתמשות בהרשאות יוניקס מסורתיות. יש מאמר מצוין על ויקיפדיה הרשאות מערכת קבצים אז אני לא אחזור על הכל כאן. אבל יש כמה דברים שאתה צריך להיות מודע.

ביט לבצע
סקריפטים מתורגמים (למשל, רובי, PHP) עבודה בסדר גמור ללא אישור לביצוע. רק קבצים בינאריים ותסריטים של פגז זקוקים לביט לבצע. כדי לעבור (להיכנס) ספריה, אתה צריך לקבל אישור על ספריה זו. שרת האינטרנט צריך הרשאה זו כדי רשימה של ספרייה או לשרת את כל הקבצים בתוכו.

הרשאות ברירת מחדל חדשות לקובץ
כאשר נוצר קובץ, הוא בדרך כלל יורש את מזהה הקבוצה של מי שיצר אותו. אבל לפעמים אתה רוצה קבצים חדשים לרשת את מזהה הקבוצה של התיקיה שבה הם נוצרו, כך שתאפשר את ה- SGID קצת על תיקיית האב.

ערכי הרשאות ברירת המחדל תלויים ב- umask שלך. ה- umask מחסר את ההרשאות מקבצים שנוצרו לאחרונה, ולכן הערך המשותף של 022 גורם לקבצים שנוצרו עם 755. כאשר משתפים פעולה עם קבוצה, כדאי לשנות את ה- umask ל- 002 כך שקבצים שתיצור יוכלו להשתנות על-ידי חברי הקבוצה. ואם אתה רוצה להתאים אישית את ההרשאות של קבצים שהועלו, אתה גם צריך לשנות את umask עבור אפאצ 'י או להפעיל chmod לאחר הקובץ הועלה.


הבעיה עם 777

כאשר אתה chmod 777 אתר האינטרנט שלך, אין לך אבטחה כלשהי. כל משתמש במערכת יכול לשנות או למחוק כל קובץ באתר האינטרנט שלך. אבל יותר ברצינות, זכור כי שרת האינטרנט פועל מטעם המבקרים באתר האינטרנט שלך, ועכשיו שרת האינטרנט הוא מסוגל לשנות את אותם קבצים זה ביצוע. אם יש פגיעויות תכנות באתר שלך, הם יכולים להיות מנוצלים כדי להשמיד את האתר שלך, להכניס התקפות פישינג, או לגנוב מידע מהשרת שלך מבלי שתדע.

בנוסף, אם השרת פועל על נמל ידוע (מה שאמור למנוע ממשתמשים שאינם שורש להשרות שירותי האזנה הנגישים לכל העולם), פירוש הדבר שהשרת חייב להיות מופעל על ידי השורש (אם כי כל שרת שפוי יירד מיד לחשבון פחות חסוי לאחר שהפורט יחויב) . במילים אחרות, אם אתה מפעיל שרת אינטרנט שבו ההפעלה העיקרית היא חלק בקרת הגרסה (למשל App CGI), לעזוב את ההרשאות (או, לצורך העניין, את ההרשאות של המדריך המכיל, שכן המשתמש יכול לשנות את שמו את ההפעלה) ב 777 מאפשר כל המשתמש כדי להפעיל כל כמו השורש.


הגדר את הדרישות

  • מפתחים צריכים לקרוא / לכתוב גישה לקבצים כדי שיוכלו לעדכן את האתר
  • מפתחים צריכים לקרוא / לכתוב / לבצע על ספריות, כך שהם יכולים לגלוש מסביב
  • Apache זקוק לגישה לקריאה לקבצים ולסקריפטים מתורגמנים
  • Apache צריך לקרוא / לבצע גישה ספריות לשרת
  • Apache צריך לקרוא / לכתוב / לבצע גישה לספריות עבור תוכן שהועלה

נשמר על ידי משתמש יחיד

אם רק משתמש אחד אחראי לשמירה על האתר, הגדר אותם כבעלים של המשתמש בספריית האתר ונותן למשתמש הרשאות rwx מלאות. אפאצ 'י עדיין צריך גישה, כך שהוא יכול לשרת את הקבצים, כך להגדיר www נתונים כמו הבעלים של הקבוצה ולתת את הקבוצה r-x הרשאות.

במקרה שלך, איב, שאת שם המשתמש שלה eve, הוא המשתמש היחיד שמחזיק contoso.com You

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

אם יש לך תיקיות שצריכות להיות ניתנות לכתיבה על ידי אפאצ 'י, אתה יכול פשוט לשנות את ערכי הרשאות עבור הבעלים של הקבוצה, כך www- נתונים יש גישה לכתיבה.

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

בדוגמה הקודמת, השתמשנו בבעל הקבוצה כדי להעניק הרשאות לאפאצ'י, אבל עכשיו זה משמש עבור קבוצת המפתחים. מכיוון שבעל המשתמש אינו מועיל לנו יותר, הגדרתו לשורש היא דרך פשוטה להבטיח שאין דליפות כלשהן. אפאצ 'י עדיין צריך גישה, אז אנחנו נותנים גישה קריאה לשאר העולם.

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

למרות זאת היא גישה נפוצה, יש downside. מאחר שלכל משתמש אחר במערכת יש את אותן הרשאות לאתר שלך כפי שעושה אפאצ 'י, קל למשתמשים אחרים לגלוש באתר שלך ולקרוא קבצים שעשויים להכיל נתונים סודיים, כגון קבצי התצורה שלך.

אתה יכול לקבל את העוגה ולאכול את זה יותר מדי

זה יכול להיות עוד שיפור. זה חוקי לחלוטין עבור הבעלים יש פחות זכויות מאשר הקבוצה, אז במקום לבזבז את הבעלים של המשתמש על ידי הקצאת אותו לשורש, אנחנו יכולים להפוך את אפאצ 'י הבעלים של המשתמש על ספריות וקבצים באתר האינטרנט שלך. זה היפוך של תרחיש תחזוקה אחת, אבל זה עובד באותה מידה.

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

אם יש לך תיקיות שצריכות להיות ניתנות לכתיבה על ידי אפאצ 'י, אתה יכול פשוט לשנות את ערכי הרשאות עבור הבעלים של המשתמש, כך www- נתונים יש גישה לכתיבה.

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

דבר אחד להיזהר עם פתרון זה הוא הבעלים של המשתמש של קבצים חדשים יתאים את היוצר במקום להיות מוגדר www- נתונים. אז כל הקבצים החדשים שאתה יוצר לא יהיה קריא על ידי אפאצ 'י עד שאתה chown אותם.


* הפרדת זכויות Apache

הזכרתי קודם כי זה באמת אפשרי עבור משתמשים אחרים כדי לרחף סביב האתר שלך לא משנה איזה סוג של הרשאות אתה משתמש. כברירת מחדל, כל התהליכים של Apache פועלים כמשתמש בו-נתונים זהה, כך שכל תהליך Apache יכול לקרוא קבצים מכל האתרים האחרים שהוגדרו באותו שרת, ולעיתים אף לבצע שינויים. כל משתמש שיכול לקבל את Apache להריץ סקריפט יכול לקבל גישה זהה לאפאצ'י עצמו.

כדי להתמודד עם בעיה זו, יש גישות שונות הפרדת פריבילגיה באפאצ'י. עם זאת, כל גישה מגיעה עם ביצועים שונים חסרונות ביטחוניים. לדעתי, כל אתר עם דרישות אבטחה גבוהות יותר צריך להיות מופעל על שרת ייעודי במקום להשתמש VirtualHosts על שרת משותף.


שיקולים נוספים

לא הזכרתי את זה קודם, אבל זה בדרך כלל בפועל רע יש מפתחים לערוך את האתר ישירות. עבור אתרים גדולים יותר, אתה הרבה יותר טוב שיש איזה סוג של מערכת שחרור זה מעדכן את שרת האינטרנט מהתוכן של מערכת בקרת גרסאות. הגישה תחזוקה אחת היא כנראה אידיאלי, אבל במקום אדם יש לך תוכנה אוטומטית.

אם האתר שלך מאפשר העלאות שאין צורך להגיש אותן, העלאות אלה צריכות להיות מאוחסנות מחוץ לשורש האינטרנט. אחרת, ייתכן שתגלה שאנשים מורידים קבצים שנועדו להיות סודיים. לדוגמה, אם תאפשר לתלמידים לשלוח מטלות, יש לשמור אותם בספרייה שאינה מוצגת על ידי Apache. זוהי גם גישה טובה עבור קבצי תצורה המכילים סודות.

עבור אתר אינטרנט עם דרישות מורכבות יותר, ייתכן שתרצה לבדוק את השימוש רשימות בקרת גישה. אלה מאפשרים שליטה מתוחכמת הרבה יותר של זכויות היתר.

אם לאתר שלך יש דרישות מורכבות, ייתכן שתרצה לכתוב סקריפט שמגדיר את כל ההרשאות. לבדוק את זה ביסודיות, ולאחר מכן לשמור על בטוח. זה יכול להיות שווה את משקלו בזהב אם אי פעם למצוא את עצמך צורך לבנות מחדש את האתר שלך מסיבה כלשהי.


318
2018-02-06 01:50



"chmod -R 775 fabrikam.com". מעט מאוד קבצים בתוך רוב אתרי האינטרנט צריך להיות הפעלה; למשל סקריפט PHP יכול להיות 0640 כל עוד שרת האינטרנט יכול לקרוא אותם. chmod -R + x fabrikam.com ייתן זכויות הפעלה לכולם רק על ספריות.
תיאור נחמד! - RNA
שים לב שאפאצ'י פועל כמשתמש apache על מערכות רד האט. - Michael Hampton♦
זה מצוין, אבל היה דבר אחד שלא הבנתי: אני לא מבין את המטרה או את היתרון של האסטרטגיה של הפיכת Apache למשתמש / הבעלים של ספריית קובץ אם יש לו כבר בעלות קבוצתית על הקובץ. - idiotprogrammer
זוהי הודעה מצוינת. הנה התרומה שלי: החיסרון של שימוש ב- www נתונים כבעלים dev-fabrikam כקבוצה (המוזכר ב אתה יכול לקבל את העוגה ולאכול את זה יותר מדי חל גם (בהיפוך) על התרחיש המוצע ב נשמר על ידי משתמש יחיד. בתרחיש זה, בכל פעם ש- Apache יוצר תיקייה או קובץ, למשתמש לא תהיה גישה אליו ולכן הקבצים צריכים להיות מסומנים חזרה למשתמש המקורי. אני לא עדכנו את התשובה כפי שאני לא בטוח 100% על ההצהרה שלי. אני מעדיף שאחרים יאשרו את זה לפני שיכניסו את התשובה.


אני תוהה מדוע כל כך הרבה אנשים משתמשים (או ממליצים) על "אחרים" (o) חלק של זכויות לינוקס כדי לשלוט מה יכול לעשות Apache (ו / או PHP). על ידי הגדרת חלק זה נכון למשהו אחר מאשר "0", אתה פשוט לאפשר את כל העולם לעשות משהו על הקובץ / ספרייה.

הגישה שלי היא הבאה:

  • אני יוצר שני משתמשים נפרדים. אחד עבור SSH / SFTP גישה (אם יש צורך), אשר יהיה הבעלים של כל הקבצים, ואחד עבור המשתמש FastCGI PHP (המשתמש האתר יפעל כמו). בואו להתקשר למשתמשים אלה בהתאמה בוב ו bob-www.
  • בוב יהיו זכויות מלאות (rwx על תיקיות, rw- על קבצים), כך שהוא / היא יכולה לקרוא ולערוך את כל האתר.
  • תהליך PHPCGI PHP צריך r-x זכויות על תיקיות ו ייצור זכויות על קבצים, למעט תיקיות ספציפיות מאוד כמו cache/ או uploads/, שבו "כתיבה" רשות נדרשת גם. כדי לתת PHPCGI PHP יכולת זו, זה יפעל כמו bob-www, ו bob-www יתווספו ליוצרים באופן אוטומטי בוב קבוצה.
  • עכשיו אנחנו מוודאים הבעלים והקבוצה של כל הספריות והקבצים בוב בוב.
  • משהו חסר: אפילו אנחנו משתמשים ב- FastCGI, אבל Apache עדיין זקוק לגישה לקריאה, לתוכן סטטי או לקבצי htaccess שינסה לקרוא אם AllowOverride הוא מוגדר למשהו אחר מאשר None. כדי להימנע משימוש o חלק מן הזכויות, אני מוסיף נתונים www משתמש אל בוב קבוצה.

עכשיו:

  • כדי לקבוע מה היזם יכול לעשות, אנחנו יכולים לשחק עם u חלק מן הזכויות (אך זו הפתק להלן).
  • כדי לשלוט על מה Apache ו PHP יכול לעשות, אנחנו יכולים לשחק עם ז חלק מן הזכויות.
  • ה o חלק מוגדר תמיד 0, כך שאף אחד אחר על השרת יכול לקרוא או לערוך את האתר.
  • אין בעיה מתי בוב המשתמש יוצר קבצים חדשים, שכן הוא יהיה שייך באופן אוטומטי לקבוצה העיקרית שלו (בוב).

זהו סיכום, אך במצב זה, בוב מותר SSH. אם לא צריך להיות כל משתמש מותר לשנות את האתר (למשל, הלקוח רק משנה את האתר באמצעות פאנל הניהול של CMS ואין לו ידע לינוקס), ליצור שני משתמשים בכל מקרה, אבל לתת /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 {} \;

הערה : אנשים נוטים לשכוח כי הגבלת u (הבעלים) זכויות הוא רוב הזמן חסר תועלת וחסר ביטחון, שכן הבעלים של קובץ יכול להפעיל את chmod הפקודה, אפילו הזכויות הם 000.

תגיד לי אם הגישה שלי יש כמה בעיות אבטחה, כי אני לא בטוח 100%, אבל זה מה שאני משתמש.

אני חושב זה config יש בעיה: כאשר PHP / Apache יוצר קובץ חדש (למשל לטעון), זה יהיה שייך bob-www: bob, ו בוב תוכל רק לקרוא אותו. אולי סטואיד על המדריך יכול לפתור את הבעיה.


13
2017-07-19 21:42



לינוקס מתעלם setuid. קבצים חדשים נמצאים תמיד בבעלות היוצר. - Paul
אני לא מבין משהו. זה לא נראה לשלב את המצב כאשר מפתחים יותר לעבוד simultaniously באתר, שכן המשתמש היחיד הוא bob. איך מתמודדים עם זה? למשל. דרך ssh, שני משתמשים להיכנס כמו bob. בוב (1) מרגיש שהוא / היא לא זוכרת את הסיסמה ומשנה אותה לסיסמה אחרת, אך עדיין מאובטחת. בוב (2) מנסה להיכנס בפעם הבאה, והוא / היא לא יכולה. - n611x007
@naxa כל מערכת טובה שולית לא צריך להיות כל היזמים ישירות שינוי האתר. באופן אידיאלי, האתר נמצא תחת בקרת גרסאות כגון חשבון המשתמש 'בוב' מושך ופורס כל שחרור (יציבה) באופן אוטומטי. לכן, המפתחים עושים את הפיתוח מחוץ לאתר, והשינויים מתפרסים ברגע שהם נדחפים לשרת הפריסה. 'bob' הוא משתמש במערכת שאמור להיות בעל הרשאות רשת מוגבלות מאוד, שאינן כוללות כניסה מרחוק; iptables למעשה מאפשר לך לסנן על ידי UID עבור דברים כאלה. - Parthian Shot
"אני תוהה מדוע כל כך הרבה אנשים משתמשים (או ממליצים) על החלק" אחר "(o) - אז אולי היית צריך לפרסם את זה כשאלה במקום לענות. אין זה נדיר להפעיל במכוון את שרת האינטרנט (כמו החלק החשוף ביותר של המערכת) עם רמת הרשאות הנמוכה ביותר בזמן תמיכה, פיתוח, חשבונות מנהל צריך גם גישה שונה - symcbean


בהתחשב דירוג גוגל על ​​התשובה מעולה לעיל, אני חושב שיש דבר אחד יש לציין, ואני לא מצליח להשאיר פתק לאחר התשובה.

בהמשך לדוגמה, אם אתם מתכננים להשתמש בנתוני www כבעלים ו- dev-fabrikam כקבוצה עם 570 הרשאות בספריה (או בקובץ), חשוב לציין כי לינוקס מתעלם  setuid, כך שכל הקבצים החדשים יהיו בבעלות המשתמש שיצר אותם. משמעות הדבר היא כי לאחר יצירת ספריות וקבצים חדשים תצטרך להשתמש במשהו דומה ל:

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

ב Ubuntu 12.04 עבור Rackspace OpenStack, היה לי בעיה מוזרה שבה אני לא יכול לקבל הרשאות 570 לעבוד עד שאני מחדש את השרת, אשר קסם תיקנו את הבעיה. היה לאבד שערות בשיעור הולך וגובר על בעיה זו לכאורה פשוט ....


9
2018-01-13 22:03



אנא תן לזה להיות googled: ב Raspbian (aka על פטל 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 Definitive

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 בשם "ליאו" צריך להעלות קבצים ל example.com מדריך אינטרנט ואתה גם לדרוש את המשתמש "apache" שלך כדי להיות מסוגל ליצור uploa קבצים / הפעלות / קבצים מטמון בספריית המטמון ואז לעשות כדלקמן:

פקודה זו מקצה ליאו כבעלים וקבוצה כמו 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