שימוש ב-gpg-agent לכתיבת סקריפטים המבצעים אימות
לעתים ברצונכם לכתוב סקריפט שֶׁל, או סקריפט מסוג אחר, והסקריפט הזה יצטרך לרוץ תחת sudo. בתנאים כאלה, אם הסקריפט עושה משהו הדורש אימות, הוא לא יתנהג כמצופה. במילים פשוטות, המשמעות היא שחלון האימות הרגיל לא יופיע. ייתכן שהכלי נכתב באופן המתמודד עם הבעיה ונסוג לשיטות אימות אחרות, וייתכן שלא. בכל מקרה, מה שאתם באמת רוצים הוא שסוכן האימות שלכם (אותה תוכנית קטנה בשם gpg-agent שרצה כמעט בכל הפצת לינוקס מרגע הכניסה שלכם למערכת ועד ליציאה) הוא שיבצע את האימות. הדבר חוסך לכם המון קליקים. תארו לעצמכם שהסקריפט צריך לעשות משהו הדורש אימות X פעמים. אם הסקריפט אינו משתמש בסוכן, הוא לא יוכל לשמור במטמון את ביטויי הסיסמה, ולכן תיאלצו להקליד את ביטוי הסיסמה מספר פעמים. ייתכן גם שסוכן האימות שלכם כבר מחזיק את ביטוי הסיסמה שלכם במטמון שלו, ותוכלו לחסוך את הקלדתו פעם נוספת.
טוב. אז איך עושים זאת? ובכן, בסביבה המקורית שלכם קיים משתנה בשם GPG_AGENT_INFO. משתנה זה מחזיק את הפרטים כיצד להתחבר לסוכן האימות שלכם. אם אתם מריצים סקריפטים רגילים, אזי משתנה זה, שהוא משתנה סביבה, זמין להם באופן אוטומטי. אך אם אתם מריצים את הסקריפטים שלכם דרך ssh או sudo, אז הוא אינו זמין. פשוט הפכו את המשתנה לזמין לסקריפטים הללו. מובן שהמשתמשים שתחתיהם ירוצו הסקריפטים יצטרכו להיות בעלי רמת ההרשאה הנכונה כדי לתקשר עם סוכן ה־gpg שלכם. כיצד הופכים אותם לזמינים? דרך אחת היא להעביר את המשתנה הזה דרך שורת הפקודה ולהפוך אותו למשתנה סביבה מיד עם תחילת ריצת הסקריפט.