
02-01-2018, 10:21
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,777
|
|
s+ עובד על תוכנות, לא על סקריפטים. הסיבה לכך היא שבסקריפט התוכנה שרצה היא בעצם תוכנה אחרת - bash / tcsh וכו', אשר קוראות את הסקריפט, ומבצעות אותו. כשאתה מריץ את "sleepmode" אתה בעצם מריץ בצורה שקופה bash sleepmode.
כמובן ש passwd עובד משום שזו תוכנה, שהיא אחת מאלה שבשבילן הומצא הפטנט: הרי כמשתמש רגיל אינך יכול לערוך את קובץ הסיסמאות שאינו בבעלותך, אחרת כל משתמש יוכל לשנות סיסמה של כל משתמש אחר. passwd, שכחלק מהקוד שלה בודקת מי הריץ ושאכן מותר לו לשנות (על ידי ידיעת הסיסמה הישנה), משתמשת ב s+ כדי לאפשר למשתמש הרגיל גישה, שמוגבלת על ידה, לקובץ הסיסמאות. כנ"ל כל הכלים האחרים שמשנים מידע על המשתמש, כמו chsh וכדו'.
הפתרון: להרשות sudo ללא סיסמה (אני משער שהסיסמה זה מה שמטריד אותך) עבור פקודת ה sleep, ובתוך הסקריפט להריץ את הפקודה הרצויה שצריכה לרוץ כ-root עם sudo, ואז לא צריך להשתמש ב s+.
|