排除 sudo : sorry, you must have a tty to run sudo 狀況

2013-07-27 22:43

 

Linux 主機升級系統後開始收到系統的通知信,某幾個 cron 排程指令有了問題,

sudo: sorry, you must have a tty to run sudo

因為是重要的流程,先用 visudo 修改設定將下列參數註解掉

 

Defaults requiretty

 

就可以解決這個問題。

 

關於requiretty的解釋如下:

If set, sudo will only run when the user is logged in to a real tty. When this flag is set, sudo can only be run from a login session and not via other means such as cron(8) or cgi-bin scripts. This flag is off by default.

1) Defaults  requiretty,修改为 #Defaults  requiretty,表示不需要控制終端。

2) Defaults  requiretty,修改为 Defaults:nobody !requiretty,表示僅 nobody 用戶不需要控制終端。

3) 如果修改为 Defaults:%nobody !requiretty,表示僅 nobody 組不需要控制終端。