File: //lib/python2.7/site-packages/lap/mysql_check_password.py
import MySQLdb
import socket
def __run__(params):
conn = None
try:
root_hosts = 'localhost,127.0.0.1,::1,'+ socket.gethostname()
for line in root_hosts.split(','):
conn = MySQLdb.connect(host=line, user="root")
if conn:
return [2, ' User "root" without password']
else:
conn = MySQLdb.connect(host=line)
if conn:
return [2, ' User "root" without password']
except Exception, e:
f = params.get("defaults-file", "/etc/check_mk/mysql.cfg")
conn = MySQLdb.connect(read_default_file=f)
cursor = conn.cursor()
skip = "SELECT count(PRIVILEGE_TYPE) FROM information_schema.USER_PRIVILEGES"
cursor.execute(skip)
grants = cursor.fetchone()[0]
if grants <> 0:
versionStm = "SELECT REPLACE(LEFT(@@version,3), '.', '') version;"
cursor.execute(versionStm)
version = cursor.fetchone()[0]
version = int(version)
hostnameStm = "SELECT @@hostname;"
cursor.execute(hostnameStm)
hostname = cursor.fetchone()[0]
if version >= 57 and "uller" not in hostname:
query = """SELECT count(1) FROM mysql.user WHERE authentication_string =''"""
else:
query = """SELECT count(1) FROM mysql.user WHERE password =''"""
cursor.execute(query)
users = cursor.fetchone()[0]
perfdata = "users={0}".format(users)
if users >= 1:
return [2, ' {0} users without password'.format(users), perfdata]
else:
return [0, 'OK: All users with password'.format(users), perfdata]
else: #if grants == 0:
return [2, 'CRITICAL: --skip-grant-tables ativo']