הרצת פקודות מחזוריות ב-cron עם הרשאת root

אחת התוכנות שאני משתמש בהן מתעקשת ליצור קבצים כ-root. מפאת חוסר הזמן מצאתי שקל לי יותר לבצע

sudo chown -R oldie /media/truecrypt

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

הפתרון פשוט בצורה מביכה: יש להריץ את ה-cron מחשבון root.
עריכת קובץ cron עבור משתמש root:

sudo crontab -e

ואז מכניסים את השורה עם הפקודה המתאימה, במקרה זה:

 0 0 * * * chown -R oldie /media/truecrypt

מה שיפה הוא שאין צורך ב-sudo. התהליך ירוץ גם אם משתמש root אינו logged-in.

הערה: עבור פקודות יותר מסובכות, יש לוודא שמשתני PATH של משתמש root עדכניים. את הPATH מוסיפים לקובץ cron של משתמש ה-root:

PATH=/usr/sbin:/usr/bin:/sbin:/bin

קישור למאמר ממנו שאבתי את הפתרון.

פורסם בקטגוריה כללי. אפשר להגיע לכאן עם קישור ישיר.

2 תגובות בנושא הרצת פקודות מחזוריות ב-cron עם הרשאת root

  1. מאת שגיא‏:

    במידה ואתה לא רוצה להתעסק עם ה cron של root אפשר להוסיף שורה בקובץ ה sudoers להריץ את הפקודה הספציפית הזו ללא סיסמא

  2. מאת צפריר כהן‏:

    לחלופין אתה יכול לכתוב סקריפט שיעשה את הפעולה האמורה ולהרשות למשתמש שלך להריץ אותו כ־root ללא בקשת סיסמה:

    oldie ALL = NOPASSWD:/path/to/script

להגיב על שגיא לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *