gpt4 book ai didi

mysql - sudo 用于使用 mysql 连接匿名用户的脚本

转载 作者:行者123 更新时间:2023-11-29 00:33:26 24 4
gpt4 key购买 nike

我有以下脚本:

[root@localhost:~]# 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 个允许执行命令的用户:root、ste 和 www。用户 ste 和 www 使用 sudo 执行命令,没有 sudo root 工作。

[root@localhost:~]# cat /etc/sudoers
root ALL=(ALL) ALL
ste ALL=(ALL) ALL
www ALL=/mnt/start_discovery *,\
sh -xv *

当我从用户 www 运行命令时 - 一切正常:

[www@localhost:~]$ 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:

[ste@localhost:~]$ 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 相同:

[root@localhost:~]# 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 我在文件 ~/.my.cnf 中有 mysql 的密码,对于用户 www - 没有任何访问 mysql 的权限。创建 mysql 的用户:

[root@localhost:~]# mysql -e "select user,host,password from mysql.user;"
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *48A8ACDAF5434778D6B5D0254833B2AEC555514A |
| ste | localhost | *425AF4AF33C4FB42AC52A0A6630DEE61AB94A67A |
| | localhost | |
+------+-----------+-------------------------------------------+

知道为什么会这样吗?以及如何更好地让所有用户都可以执行此脚本(脚本具有权限 750 并且需要 sudo)?

最佳答案

尝试 #2 和 #3(以 steroot 运行脚本)出现的错误提到“(使用密码:YES)”,尽管您的脚本中的调用行没有提供密码。

这两个用户必须有一个自定义的个人配置文件 (~/.my.cnf),其中包含一个 password 子句(在这种情况下,默认情况下始终提供此类密码)。

尝试在脚本中添加以下选项:--password=''

关于mysql - sudo 用于使用 mysql 连接匿名用户的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com