须藤为脚本使用MySQL与匿名用户
问题描述:
连接我已经以下脚本:须藤为脚本使用MySQL与匿名用户
[[email protected]:~]# cat /mnt/start_discovery
#!/bin/sh
InterfaceNumber=$((65471 - $1))
mysql --user=' ' --execute="insert into dc.discovery_commands(device, job_ttd) select $InterfaceNumber, DATE_ADD(UTC_TIMESTAMP(), INTERVAL 12 HOUR);"
和3的用户,允许执行命令:根,STE和www。用户ste和www使用sudo执行命令,没有sudo的root工作。
[[email protected]:~]# cat /etc/sudoers
root ALL=(ALL) ALL
ste ALL=(ALL) ALL
www ALL=/mnt/start_discovery *,\
sh -xv *
当我运行从用户的WWW命令 - 所有的罚款:
[[email protected]:~]$ sudo sh -xv /mnt/start_discovery 0
#!/bin/sh
InterfaceNumber=$((65471 - $1))
+ InterfaceNumber=65471
mysql --user=' ' --execute="insert into dc.discovery_commands(device, job_ttd) select $InterfaceNumber, DATE_ADD(UTC_TIMESTAMP(), INTERVAL 12 HOUR);"
+ mysql --user= --execute=insert into dc.discovery_commands(device, job_ttd) select 65471, DATE_ADD(UTC_TIMESTAMP(), INTERVAL 12 HOUR);
但对于用户STE:
[[email protected]:~]$ sudo sh -xv /mnt/start_discovery 0
#!/bin/sh
InterfaceNumber=$((65471 - $1))
+ InterfaceNumber=65471
mysql --user=' ' --execute="insert into dc.discovery_commands(device, job_ttd) select $InterfaceNumber, DATE_ADD(UTC_TIMESTAMP(), INTERVAL 12 HOUR);"
+ERROR 1045 (28000): Access denied for user ' '@'localhost' (using password: YES)
相同,用户root:
[[email protected]:~]# sh -xv /mnt/start_discovery 0
#!/bin/sh
InterfaceNumber=$((65471 - $1))
+ InterfaceNumber=65471
mysql --user=' ' --execute="insert into dc.discovery_commands(device, job_ttd) select $InterfaceNumber, DATE_ADD(UTC_TIMESTAMP(), INTERVAL 12 HOUR);"
+ERROR 1045 (28000): Access denied for user ' '@'localhost' (using password: YES)
对于用户root和ste,我有mysql的密码在文件〜/ .my.cnf,用户www - 没有任何访问MySQL。创建MySQL的 用户:
[[email protected]:~]# mysql -e "select user,host,password from mysql.user;"
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *48A8ACDAF5434778D6B5D0254833B2AEC555514A |
| ste | localhost | *425AF4AF33C4FB42AC52A0A6630DEE61AB94A67A |
| | localhost | |
+------+-----------+-------------------------------------------+
任何想法,为什么这么回事?如何让所有的用户都有可能执行这个脚本(脚本具有权限750和sudo是必需的)?
答
错误显示在尝试#2,#3(运行脚本ste
或root
)向上提“(using password: YES)
”,虽然没有提供对你的脚本调用线密码。
这两个用户必须有一个包含password
子句的自定义个人配置文件(〜/ .my.cnf)(在这种情况下,此类密码总是默认提供)。
尝试在脚本中添加以下选项:--password=''
谢谢你的男人!容易的决定,我已经尝试过,但可能会犯错误。无论如何,这行工作正常:mysql --user =''--password =''--execute =“插入到dc.discovery_commands(device,job_ttd)选择$ InterfaceNumber,DATE_ADD(UTC_TIMESTAMP(),INTERVAL 12 HOUR); “ – 2013-03-18 10:01:37