当我执行shell,但它是由cron执行时出现“sudo:对不起,您必须有一个tty才能运行sudo”。但是这应该如何处理?
答案1
您不需要 sudo 来以 cron 中其他用户的身份运行程序(至少使用系统 crontab)。
只需将用户字段从 root 更改为目标用户即可。
如果您确实希望 su 在 cron 中工作。
答案2
您也可以简单地重新配置 sudo 以不是需要一个 tty :
编辑(以 root 身份)文件
/etc/sudoers
并注释掉以下行:
Defaults requiretty
答案3
您可以NOPASSWD:
在 sudoers 文件中添加相关条目以阻止它要求输入密码,我认为这会有所帮助。
您最好首先从所需用户的 crontab 运行它,并避免使用 sudo。
编辑 fred 的 crontab:
su - fred
crontab -e