2013-03-18 29 views
1

連接我已經以下腳本:須藤爲腳本使用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是必需的)?

回答

1

錯誤顯示在嘗試#2,#3(運行腳本steroot)向上提「(using password: YES)」,雖然沒有提供對你的腳本調用線密碼。

這兩個用戶必須有一個包含password子句的自定義個人配置文件(〜/ .my.cnf)(在這種情況下,此類密碼總是默認提供)。

嘗試在腳本中添加以下選項:--password=''

+0

謝謝你的男人!容易的決定,我已經嘗試過,但可能會犯錯誤。無論如何,這行工作正常:mysql --user =''--password =''--execute =「插入到dc.discovery_commands(device,job_ttd)選擇$ InterfaceNumber,DATE_ADD(UTC_TIMESTAMP(),INTERVAL 12 HOUR); 「 – 2013-03-18 10:01:37