网络安全 频道

如何安全配置和应用MySQL数据库(6)

 4.删除历史命令记录

  这些历史文件包括~/.bash_history、~/.mysql_history等。如果打开它们,你会大吃一惊,怎么居然有一些明文的密码在这里?!

#cat /dev/null > ~/.bash_history

#cat /dev/null > ~/.mysql_history

  PHP和MySQL通信

  默认情况下,PHP会通过/tmp/mysql.sock来和MySQL通信,但这里的一个大问题是MySQL生成的根本不是它,而是/chroot/mysql/tmp/mysql.sock。解决的办法就是做一个连接:

#ln /chroot/mysql/tmp/mysql.sock /tmp/mysql.sock

  注意:由于hard links不能在文件系统的分区之间做,所以该处的连接必须位于同一分区内部。

  自启动配置

  自启动配置前先提示一点,用于PHP的数据库需要用一个新建的账号,其上有数据库权限设置,比如FILE、GRANT、ACTER、SHOW DATABASE、RELOAD、SHUTDOWN、PROCESS、SUPER等。

自启动脚本示例:

#!/bin/sh

CHROOT_MYSQL=/chroot/mysql

SOCKET=/tmp/mysql.sock

MYSQLD=/usr/local/mysql/libexec/mysqld

PIDFILE=/usr/local/mysql/var/`hostname`.pid

CHROOTUID=/usr/bin/chrootuid

echo -n " mysql"

case "$1" in

start)

rm -rf ${SOCKET}

nohup ${CHROOTUID} ${CHROOT_MYSQL} mysql ${MYSQLD} >/dev/null 2>&1 &

sleep 5 && ln ${CHROOT_MYSQL}/${SOCKET} ${SOCKET}

;;

stop)

kill `cat ${CHROOT_MYSQL}/${PIDFILE}`

rm -rf ${CHROOT_MYSQL}/${SOCKET}

;;

*)

echo ""

echo "Usage: `basename $0` {start stop}" >&2

exit 64

;;

esac

exit 0

  文件位于/etc/rc.d/init.d下,名为mysqld,注意要可执行。

#chmod +x /etc/rc.d/init.d/mysqld

#ln -s /etc/rc.d/init.d/mysql /etc/rc3.d/S90mysql

#ln -s /etc/rc.d/init.d/mysql /etc/rc0.d/K20mysql

  尽管不能做到100%的安全,但是这些措施可以保护我们的系统更加安全。

0
相关文章