وقتی شما از دستور
sudo crontab -e
استفاده می کنید در واقع فایل crontab که مربوط به root هست رو تغییر میدید
فکر میکنم اشتباه میکنید.
شما این دستورات رو بزنید:
sudo echo $USER
sudo echo $UID
sudo echo $HOME
همهٔ چیزایی که چاپ میشه مربوط به کابر خودتون هست نه روت!
برای اینکه crontab روت ویرایش بشه:
sudo -i
crontab -e
خیلی فرق میکنه با:
sudo crontab -e
شما میتونید امتحان کنید. یک بار با sudo crontab -e یک job وارد کن و یک بار هم با crontab -e
بعد لیست job ها رو میتونید با دو دستور زیر چک کنی و ببینی که با هم فرق می کنند
sudo crontab -l
crontab -l
دستورات دیگرو نمیدونم با sudo یا بی sudo چطوری اند ولی این رو میدونم که دستور crontab با sudo و بدون sudo فرق میکنه. در ضمن من الان با همین روش کامپیترمو هر روز خاموش میکنم
برای اینکه crontab روت ویرایش بشه:
کد:
sudo -i
crontab -e
خیلی فرق میکنه با:
کد:
sudo crontab -e
هر دو تاش crontab روت رو میاره. ولی اولی رو که زدم مثل اینکه برای اولین بار زده باشم ازم پرسید که از چه ادیتوری می خوام استفاده کنم. این دو تا چه فرقی با هم دارن؟
حتما یک فرقی دارن شایدم نداشته باشند.
خوب اینا قبول! پس وقتی شما crontab روت رو ویرایش می کنی طبیعتا باید با روت وارد سیستم شد نا اونا اجرا بشه. یعنی شما که با یوزر خودت وارد میشی crontab خودت اجرا میشه نه روت:-X
خوب نکته همینه دیگه اگه شما دستوری که نیاز به مجور root داشته باشه با crontab -e وارد کنی اجرا نمیشه ولی اگه با sudo crontab -e وارد کنی یعنی با مجوز روت یک job رو واسه اجرا گذاشتی. اگه این طوری که تو میگی باشه پس موقع بالا اومدن سیستم عامل از تو هی باید پسورد روت رو بپرسه یا مثل mount کردن پارتیشن ها نیاز به مجوز روت است ولی شما فقط با کلیک کردن و بدون مجوز روت میتونید آنها را mount یا umount کنید. یا یک مثال دیگه وقتی میخوای از اینترنت دیسکانکت شی از دستور sudo poff استفاده میکنی ولی وقتی user خودتو تو لیست گروه dip اضافه کنی دیگه نیازی به مجوز روت نیست.