![10 מדחס התמונות המקוון הטוב ביותר ללא אובדן איכות בשנת 2021](/f/434794ccf9c58e9a61b2ae66c3452285.webp?width=100&height=100)
רשימות בקרת גישה (המכונה גם ACLs) הם תכונה של ליבת לינוקס המאפשרת להגדיר יותר זכויות גישה מדויקות לקבצים ולספריות מאלה שצוינו על ידי רגיל ugo/rwx הרשאות.
למשל, התקן ugo/rwx הרשאות אינן מאפשרות להגדיר הרשאות שונות עבור משתמשים או קבוצות שונות. עם ACL זה קל יחסית לביצוע, כפי שנראה במאמר זה.
כדי לוודא שמערכות הקבצים שלך תומכות כרגע ב- ACL, עליך לבדוק שהותקנו באמצעות האפשרות acl. לשם כך נשתמש tune2fs עבור מערכות קבצים ext2/3/4 כפי שמצוין להלן. החלף /dev/sda1 עם המכשיר או מערכת הקבצים שברצונך לבדוק:
# tune2fs -l /dev /sda1 | grep "ברירת מחדל לאפשרויות הרכבה:"
הערה: עם XFS, רשימות בקרת גישה נתמכות מחוץ לקופסה.
בהמשך ext4 מערכת הקבצים, אנו יכולים לראות ש- ACL הופעלו עבור /dev/xvda2:
# tune2fs -l /dev /xvda2 | grep "ברירת מחדל לאפשרויות הרכבה:"
אם הפקודה למעלה לא מצביעה על כך שמערכת הקבצים הותקנה עם תמיכה ב- ACLs, סביר להניח שזה נובע מ- noacl האפשרות להיות קיימת ב /etc/fstab.
במקרה כזה, הסר אותה, הסר את מערכת הקבצים ולאחר מכן הרה אותה שוב, או פשוט הפעל מחדש את המערכת לאחר שמירת השינויים ב- /etc/fstab.
כדי להמחיש כיצד פועלות ACL, נשתמש בקבוצה בשם מפתחים ולהוסיף משתמשים walterwhite ו סולגודמן (כן, אני מעריץ של שובר שורות!) לזה:
# מפתחי groupadd. # useradd walterwhite. # useradd saulgoodman. # usermod -a -G מפתחים walterwhite. # usermod -a -G מפתחים saulgoodman.
לפני שנמשיך, נוודא ששני המשתמשים נוספו לקבוצת המפתחים:
# id walterwhite. # id saulgoodman.
בואו עכשיו ליצור ספרייה בשם מִבְחָן ב /mnt, וקובץ בשם acl.txt בפנים (/mnt/test/acl.txt).
לאחר מכן נקבע את בעל הקבוצה ל- מפתחים ולשנות את ברירת המחדל שלו ugo/rwx הרשאות רקורסיביות ל 770 (ובכך להעניק הרשאות קריאה, כתיבה וביצוע שהוענקו הן לבעלים והן לבעלים הקבוצה של הקובץ):
# mkdir /mnt /test. # מגע /mnt/test/acl.txt. # chgrp -R מפתחים /mnt /test. # chmod -R 770 /mnt /test.
כצפוי, אתה יכול לכתוב אל /mnt/test/acl.txt כפי ש walterwhite אוֹ סולגודמן:
# su - walterwhite. # echo "שמי וולטר ווייט"> /mnt/test/acl.txt. # יציאה. # su - saulgoodman. # הד "שמי שאול גודמן" >> /mnt/test/acl.txt. # יציאה.
בינתיים הכל טוב. עם זאת, בקרוב נראה בעיה כאשר נצטרך להעניק גישה לכתיבה /mnt/test/acl.txt למשתמש אחר שאינו בקבוצת המפתחים.
תֶקֶן ugo/rwx הרשאות יחייבו להוסיף את המשתמש החדש לקבוצת המפתחים, אך זה ייתן לו את אותן הרשאות על כל האובייקטים שבבעלות הקבוצה. זה בדיוק המקום שבו ACLs שימושי.
ישנם שני סוגים של ACL: גישה ל- ACLs are (המוחלים על קובץ או ספרייה) ו- ברירות מחדל (אופציונאלי), שניתן להחיל רק על ספרייה.
אם קבצים בתוך ספרייה שבה א ברירת מחדל ACL הוגדר שאין להם ACL משלהם, הם יורשים את ברירת המחדל ACL של ספריית האב שלהם.
בואו לתת למשתמש gacanepa גישת קריאה וכתיבה אל /mnt/test/acl.txt. לפני שתעשה זאת, נסתכל על הגדרות ה- ACL הנוכחיות בספרייה זו עם:
# getfacl /mnt/test/acl.txt.
לאחר מכן שנה את רשימות ה- ACL בקובץ, השתמש אתה:
ואחריו שם המשתמש ו : rw
לציון הרשאות קריאה / כתיבה:
# setfacl -m u: gacanepa: rw /mnt/test/acl.txt.
ורוץ getfacl שוב על הקובץ כדי להשוות. התמונה הבאה מציגה את "לפני" ו "לאחר":
# getfacl /mnt/test/acl.txt.
לאחר מכן, נצטרך לתת לאחרים לבצע הרשאות על /mnt/test מַדרִיך:
# chmod +x /mnt /test.
זכור כי על מנת לגשת לתוכן של ספרייה, משתמש רגיל צריך לבצע הרשאות על ספרייה זו.
מִשׁתַמֵשׁ gacanepa כעת אמור להיות מסוגל לכתוב לקובץ. עבור לחשבון משתמש זה ובצע את הפקודה הבאה לאישור:
# הד "שמי גבריאל קנפה" >> /mnt/test/acl.txt.
כדי להגדיר ACL כברירת מחדל לספרייה (שהתכנים שלה יירשו אלא אם כן יוחלפו אחרת), הוסף ד:
לפני הכלל וציין ספרייה במקום שם קובץ:
# setfacl -m d: o: r /mnt /test. # getfacl/mnt/test/
ה- ACL שלמעלה יאפשר למשתמשים שאינם בקבוצת הבעלים לקבל גישה לקריאה לתוכן העתידי של /mnt/test מַדרִיך. שימו לב להבדל בתפוקה של getfacl /mnt /test לפני ואחרי השינוי:
כדי להסיר ACL ספציפי, החלף -M
בפקודות למעלה עם -איקס
. לדוגמה,
# setfacl -x d: o /mnt /test.
לחלופין, תוכל גם להשתמש ב- -ב
אפשרות להסרת כל ACLs בשלב אחד:
# setfacl -b /mnt /test.
למידע נוסף ודוגמאות לשימוש ב- ACLs, עיין ב פרק 10, סעיף 2, של ה openSUSE מדריך האבטחה (זמין להורדה גם ללא עלות בפורמט PDF).
שטח אחסון הוא משאב נוסף שיש להשתמש בו ולפקח עליו בזהירות. לשם כך ניתן להגדיר מכסות על בסיס מערכת קבצים, למשתמשים בודדים או לקבוצות.
לפיכך, מוגבלת מגבלת השימוש בדיסק המותר למשתמש נתון או לקבוצה מסוימת, ותוכל להיות סמוך ובטוח כי הדיסקים שלך לא יתמלאו עד אפס מקום על ידי משתמש רשלני (או לא בכוונה).
הדבר הראשון שעליך לעשות על מנת לאפשר מכסות במערכת קבצים הוא לעלות אותו עם האפשרויות usrquota או grpquota (עבור מכסות משתמשים וקבוצות, בהתאמה) ב- /etc/fstab.
לדוגמה, בואו לאפשר מכסות מבוססות משתמשים /dev/vg00/vol_backups ומכסות מבוססות קבוצות על /dev/vg00/vol_projects.
שימו לב ש UUID משמש לזיהוי כל מערכת קבצים.
UUID = f6d1eba2-9aed-40ea-99ac-75f4be05c05a /home /projects ext4 ברירות מחדל, grpquota 0 0. UUID = e1929239-5087-44b1-9396-53e09db6eb9e /home /backups ext4 ברירות מחדל, usrquota 0 0.
בטל והתקן מחדש את שתי מערכות הקבצים:
# umount /home /projects. # umount /home /גיבויים. # mount -o remount /home /projects. # mount -o remount /home /גיבויים
לאחר מכן בדוק שאפשרויות usrquota ו- grpquota קיימות בפלט של הר (ראה מודגש להלן):
# הר | grep vg00.
לבסוף, הפעל את הפקודות הבאות כדי לאתחל ולאפשר מכסות:
# quotacheck -avugc. # מכסה -וו /בית /גיבויים. # מכסה -vg /בית /פרויקטים.
עם זאת, בואו נקצה מכסות לשם המשתמש והקבוצה שהזכרנו קודם. תוכל מאוחר יותר להשבית מכסות באמצעות מכסה.
נתחיל בהגדרת ACL /home/backups למשתמש gacanepa, שיעניק לו הרשאות לקרוא, לכתוב ולבצע הרשאות במדריך זה:
# setfacl -m u: gacanepa: rwx/home/backups/
ואז עם,
# edquota -u gacanepa.
נכין את הרך גבול = 900 והקשה גבול = 1000 בלוקים (1024 בתים/בלוק * 1000 בלוקים = 1024000 בתים = 1 מגה בייט) של שימוש בשטח דיסק.
אנו יכולים גם להציב גבול של 20 ו 25 כהגבלות רכות וקשות על מספר הקבצים שמשתמש יכול ליצור.
הפקודה לעיל תפעיל את עורך הטקסט ($ EDITOR) עם קובץ זמני שבו נוכל להגדיר את המגבלות שהוזכרו קודם לכן:
הגדרות אלה יגרמו לכך שתוצג אזהרה למשתמש gacanepa כאשר הוא הגיע אל 900 בלוקים אוֹ 20 אינודה מגבלות לתקופת חסד ברירת מחדל של 7 ימים.
אם ה מעל המכסה המצב לא חוסל עד אז (למשל, על ידי הסרת קבצים), הגבול הרך יהיה להפוך לגבול הקשה ומשתמש זה יימנע משימוש בשטח אחסון רב יותר או יצירת יותר קבצים.
כדי לבדוק, נניח למשתמש gacanepa לנסות ליצור ריק 2 מגה -בתים קובץ בשם מבחן 1 בְּתוֹך /home/backups:
# dd if =/dev/zero of =/home/backups/test1 bs = 2M count = 1. # ls -lh/home/גיבויים/test1.
כפי שאתה יכול לראות, קובץ פעולת הכתיבה נכשל עקב חריגה ממכסת הדיסק. מאז רק הראשון 1000 KB נכתבים לדיסק, התוצאה במקרה זה ככל הנראה תהיה קובץ פגום.
באופן דומה, תוכל ליצור ACL לקבוצות המפתחים על מנת לתת לחברי הקבוצה אותה גישה rwx /home/projects:
# setfacl -m g: מפתחים: rwx/home/projects/
וקבע את גבולות המכסה באמצעות:
# edquota -g מפתחים.
בדיוק כמו שעשינו עם משתמש gacanepa מוקדם יותר.
ניתן לציין את תקופת החסד לכל מספר שניות, דקות, שעות, ימים, שבועות או חודשים על ידי ביצוע.
# edquota -t.
ועדכון הערכים תחת חסום תקופת חסד ותקופת חסד של Inode.
להבדיל משימוש בחסימה או ב- inode (המוגדרים על בסיס משתמש או קבוצה), תקופת החסד נקבעת לכל המערכת.
כדי לדווח על מכסות, תוכל להשתמש במכסה -u [משתמש]
אוֹ מכסה -g [קבוצה]
לרשימה מהירה או repquota -v [/path/to/system files]
לדוח מפורט יותר (מילולי) ומעוצב יפה.
כמובן שתרצה להחליף [מִשׁתַמֵשׁ]
, [קְבוּצָה]
, ו [/path/to/system files]
עם שמות משתמשים / קבוצה ספציפיים ומערכת קבצים שברצונך לבדוק.
במאמר זה הסברנו כיצד להגדיר רשימות בקרת גישה ומכסות דיסק למשתמשים ולקבוצות. באמצעות שניהם תוכל לנהל הרשאות ושימוש בדיסק בצורה יעילה יותר.
אם אתה רוצה ללמוד עוד על מכסות, אתה יכול לפנות אל מכסה מיני-HowTo בפרויקט תיעוד לינוקס.
מיותר לציין שאתה יכול לסמוך עלינו גם לענות על שאלות. פשוט שלח אותם באמצעות טופס ההערה למטה ואנו נשמח להציץ.