為什麼 sudo ./bin/mysqld_safe & 在 Mac OS X 10.6.8 上不要求輸入密碼?

為什麼 sudo ./bin/mysqld_safe & 在 Mac OS X 10.6.8 上不要求輸入密碼?

我從終端機獲得以下權限:

$ cd /usr/local/mysql  
$ ls -l  
drwxr-xr-x  41 root    wheel  1394 29 Apr 00:55 bin  
drwxr-xr-x   4 root    wheel   136 29 Apr 00:55 docs  
drwxr-xr-x   3 root    wheel   102 29 Apr 00:55 include   
drwxr-xr-x   3 root    wheel   102 29 Apr 00:55 lib  
drwxr-xr-x   4 root    wheel   136 29 Apr 00:55 libexec  
drwxr-xr-x  15 root    wheel   510 29 Apr 00:55 mysql-test   
drwxr-xr-x   5 root    wheel   170 29 Apr 00:55 share  
drwxr-xr-x  29 root    wheel   986 29 Apr 00:55 sql-bench  
drwxrwxr-x   3 _mysql  wheel   102  5 Mag 10:56 tmp  
drwxrwxr-x  16 _mysql  wheel   544  5 Mag 10:56 var  

(mysqld_safe本身有755)。 tmp 是 mysql.sock 所在的位置,var 包含資料庫。 MySQL 會以問題中指定的方式使用 sudo 正常啟動,但即使在啟動後也不會詢問 root 密碼。如果在沒有 sudo 的情況下發出 mysqld_safe ,它顯然會失敗並抱怨(./var 中的檔案權限被拒絕)。 sudoers 檔案僅包含以下有關權限的行:

root    ALL=(ALL) ALL  

答案1

您的規則未指定NOPASSWD,因此應該需要密碼 ( PASSWD)。您是否檢查過是否sudo只記住了上次輸入 root 密碼的時間?預設情況下(除非您設定Default timestamp_timeout=0)它會這樣做。

相關內容