BSD. איך לקבל מערכת לשימוש יום יומי?

משפחת מערכות ההפעלה מבוססות יוניקס היא משפחה גדולה, ועוד נדבר עליה. הפעם, בשביל הכיף, החלטתי לנסות לקחת את FreeBSD - מערכת הפעלה מבוססת יוניקס (שימו לב, לא הפצת לינוקס! מערכת הפעלה אחרת לגמרי.) ולהשמיש אותה לשימוש יום יומי עם סביבה גרפית, דפדפן וחבילת אופיס.

הורדתי את FreeBSD 15.

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

השתמשתי בVirt-Manager - ממשק גרפי לQemu/KVM - כדי להרים את המכונה הוירטואלית. השתמשתי בהגדרות הבאות:

1) Generic or unkonwn OS (מסיבה לא ברורה, על אף שהוא מזהה אוטומטית מערכות BSD אחרות, את FreeBSD הוא לא מזהה)

2) 8GB RAM (אפשר גם הרבה פחות, אבל יש לי 32, אז למה לא להיות נדיב?)

3) 4 ליבות

4) 40 GB אחסון

ובחרתי ב”Customize configuration before install” כדי להגדיר חומרה לפני ההתחלה. בהגדרות אלו הגדרתי את הדיסק כVirtIO, את הרשת גם כן כVirtIO, ואת הוידאו כQXL, אך בהמשך, בגלל בעיות בתצוגה של הסביבה הגרפית שהתקנתי, החלפתי לVGA.

הידד! קיבלתי את מסך ההתקנה של FreeBSD. וזה בערך החלק הכי גרפי שאני אראה לאורך כל ההתקנה - שלא נדבר על אחר כך… המערכת מגיעה ללא שום GUI.

עכשיו, נעבור מסך אחרי מסך בשלב ההתקנה:

1) במסך הראשון, כמובן, אנטר.

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

2) פה כמובן נלחץ על Install. עם אנטר. הניווט באמצעות המקלדת, אין עכבר בכל תהליך ההתקנה.

3) נגיע למסך בחירת פריסת מקלדת. נשאר עם הדיפולט.

4) בחירת שם למחשב. נקליד את הHost name - כלומר, פשוט שם המחשב. למשתמש פשוט זה פחות משנה. אני, למשל, כתבתי ashi_bsd. וכמובן, נלחץ אנטר.

5) במסך הבא, אנחנו צריכים לבחור בין 2 שיטות התקנה. האחת, הקלאסית, Distribution Sets וPackages. ההבדל הוא שבשיטה השניה כל המערכת בעצם מותקנת כחבילות נפרדות הניתנות בהמשך לעדכון כל אחת בנפרד וכדומה. הרציונאל והיתרון ברורים, אך מכיוון שזה כרגע עדיין מוצע כPreview, בחרתי בשיטה הישנה.

6) במסך הזה נבחר רכיבים. השארתי הכל בדיפולט

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

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

8) נשארתי בZFS, הדיפולטיבית.

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

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

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

12) חזרנו למסך משלב 9. נעלה לשורה הראשונה ונלחץ אנטר.

13) עכשיו תוצג אזהרה שהדיסק ימחק. כמובן שנבחר בyes ואנטר לאישור.

14) במסך זה נבחר את הmirror ממנו ירדו התוכנות שלנו וכו’. בעיקרון ניסיתי להשאר בדיפולט, אבל זה נכשל. אז בחרתי באופציה השניה ועובד נהדר. מן הסתם קשור לעובדה שהראשון הוא בפרוטוקול http והשאר בftp. לא התעמקתי לחקור מה בדיוק קרה בראשון שהשתבש לי.

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

16) במסכים הבאים נבחר יבשת ואחר כך מדינה כדי להגדיר איזור זמן.

אחר כך תוצג שאלה אם לאשר. נאשר. בבחירת התאריך והשעה נדלג.

17) בחירת שירותים נוספים:

הוספתי את ntpd - בקשר לרשת, ואת moused - לטובת העכבר. בכל מקרה המטרה שלנו היא מערכת גרפית :)

18) מסך לבחירת כללים להקשחת האבטחה של המחשב. לא נגעתי.

19) יופיע מסך טעינה, אין חובה לחכות לסופו, אפשר פשוט ללחוץ אנטר ולהתקדם לשלב הבא - האם להוסיף עוד משתמשים חוץ ממשתמש הרוט? אני בחרתי שכן. בכל זאת, אבטחה בסיסית.

20) כעת נתבקש ליצור את המשתמש שלנו. בשם המשתמש ובשם המלא נשים מה שנרצה. איפה שיש שורות ריקות זה כי השארתי את ברירת המחדל (אנטר). בהזמנה לקבוצות בחרתי wheel כדי שאוכל בהמשך להשתמש בsudo וכדומה.

* הערה: כמובן, הסיסמאות ריקות. זה לא כי דילגתי, אלא כי ככה זה ביוניקס - לא רואים אפילו נקודות או כוכביות.

21) יוצג לנו מסך סיכום של כל מה שמילאנו. נאשר כמובן.

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

22) סיימנו! אם אנחנו רוצים לחזור לאחד השלבים, אפשר דרך המסך הזה. אם לא, אז אנטר על השורה הראשונה.

23) ו… בחרתי לסיים, כמובן. אם נרצה אפשר להשאר בshell לעוד שינויים

במסך הבא נקליד exit, ואנטר.

24) נבחר מה אנחנו רוצים לעשות - לכבות את המחשב, להפעיל מחדש או להשאר במערכת הLive. אני בחרתי להפעיל מחדש.

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

עכשיו, אחרי שנלחץ אנטר, ירוצו שורות קוד - ואחריהם, מסך Login. ואחרי הכניסה, אנחנו בShell של FreeBSD.

איזו התרגשות!

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

אנחנו נכנס כroot, כי יש לנו עוד דברים לסדר.

והנה הshell במלוא תפארתו :)

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

אז פקודה ראשונה, נתקין את כל החבילות הדרושות לXFCE.

pkg install -y xorg xfce lightdm lightdm-gtk-greeter xf86-video-vesa xorg-drivers dbus

מה יש לנו כאן?

1) Xorg - שרת התצוגה. כמו שאנחנו מעולמות הלינוקס, יש שני שרתי תצוגה - הדרך שבה המחשב מנהל את התצוגה הגרפית: Wayland וXorg, הלא הוא X11. וואילאנד מודרני יותר, אך סביבות גרפיות רבות, כמו XFCE שאני מתקין כרגע וCinnamon של לינוקס מינט, לא תומכים בו אלא בX11 הותיק. 2) XFCE - הDE עצמו.

3) lightdm / lightdm-gtk-greeter - ניהול מסך הLogin הגרפי.

4) xf86-video-vesa - דרייבר לכרטיס הגרפי הבסיסי VGA בו בחרנו בהגדרות המכונה.

5) xorg-drivers - דרייברים כלליים של xorg לחומרת המחשב.

6) dbus - בין CLI לGUI יש הבדל מהותי - בעוד שבCLI, רוב התהליכים הם די “זאבים בודדים” ועצמאיים, בGUI כל הרכיבים מעדכנים אחד את השני ומשפיעים אחד על השני. Dbus הוא הכלי שמנהל את כל זה.

יפה.

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

pkg install -y firefox libreoffice nano sudo

על פיירפוקס וליברה אופיס אין צורך להסביר. את nano, עורך הטקסט הבסיסי בממשק CLI, גם כן כל מי שמתעסק בתחום מכיר. אבל… מה הכוונה להתקין את sudo?

בFreeBSD, רק משתמש הroot יכול להריץ פקודות בהרשאות root. אבל אם, כמו במקרה שלנו, אנחנו רוצים משתמש נוסף (מה שמומלץ כמובן מבחינת אבטחה), נצטרך לעשות שני דברים:

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

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

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

1) הגדרת “שכבת תאימות” לתיקיית proc:

echo "proc /proc procfs rw 0 0" >> /etc/fstab

הקרנל של FreeBSD והקרנל של לינוקס עובדים בצורה שונה, ובעוד שבלינוקס, הדוגלת בפילוספיית Everything is a file, תוכנות משתמשות בקבצים שבתיקיית proc כדי לקרוא ולאחסן מידע, בFreeBSD יש מנגנון אחר (בשם sysctl) לשליפת המידע ישירות מהמערכת. הפקודה הזו יוצרת שכבת תאימות (כך שהמידע נשמר [בצורה וירטואלית, בRAM] לקבצים בתיקיית proc) לתוכנות שפותחו במקור עבור לינוקס - כמו כל הסביבה הגרפית שלנו - ככה הן “מרגישות בבית”.

2) הפעלת השירותים מיד בהפעלת המחשב:

sysrc dbus_enable="YES" lightdm_enable="YES"

3) כפי שהסברתי למעלה, sudo אינו כלי נייטיבי בFreeBSD. לכן, גם אחרי שהמשתמש שלנו נמצא בקבוצת wheel, sudo - “שלא מכיר” את הקבוצה הזו כקבוצה עם הרשאות מיוחדות - לא יתן לנו הרשאות. לכן, נצטרך לערוך את קובץ הקוניפגורציה שלו.

visudo היא תוכנה לניהול קובץ הקוניפגורציה, (שנקרא sudores), ואנחנו נפתח איתה - ובאמצעות nano - את הקובץ:

EDITOR=nano visudo

נחפש את השורה הזו

# %wheel ALL=(ALL:ALL) ALL

ונמחק את הסולמית שבתחילתה (שהופכת אותה להערה). נשמור כרגיל עם nano, ctrl+o ואחר כך ctrl+x.

ו… הפעלה מחדש עם פקודת reboot. אנחנו אמורים לקבל את מערכת הFreeBSD שלנו!