为什么 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)它会这样做。

相关内容