论坛: UNIX系统 标题: root密码为空 复制本贴地址    
作者: magic [buaaytt]    论坛用户   登录
 我的配置:linux7.2+mysql3.23.41 
在编程序的时候没有给数据库的root加上密码。
现在网页做完了,想给root加上密码,但程序比较多,也记不起哪些程序用了数据库。
所以想在/etc/hosts.deny里面加上ip验证,但是不知道mysql的进程名叫什么?
请教各位了? 
 

地主 发表时间: 09/19 19:45

回复: NetDemon [netdemon]   ADMIN   登录
mysqld 
or
safe_mysqld

不过我不明白你在干什么

一般程序的写法是 config文件中 包含 $UserName ='root';$PassWord ='passwd';
然后每个程序 include config进来,以后改动config这个文件就行了
一开始养成良好的程序编写习惯是很必要的

另外要mysql拒绝其他主机的连接要在mysql本身上动手
不知道你要在host.deny上 deny什么
mysql的密码是绝对必要的,即使主机被入侵,得到root并把数据库dump回去,没有密码一样歇菜

B1层 发表时间: 09/19 20:50

回复: magic [buaaytt]   论坛用户   登录
收到,多谢老大了,偶会改的
我是在host.deny里用
in.telnetd:all except ip
proftpd:all except ip
这样的方法来禁止除了局域网内的两台机器以外的其它机器用telnet和ftp 登陆服务器的,所以想用同样的办法来阻止别人拿我的数据库
不知道这样的安全性有多大?

B2层 发表时间: 09/20 13:18

回复: zeeno [zeeno]   论坛用户   登录
mysql的数据库里有user的table,就是mysql的权限表
里面用select user,host from user
delete from user where user='root' and host='%'
删掉host='%'的记录,这样除localhost外的主机均不能访问,
如要远程登录,你加个root ,但host='xxx@xxx.xxx.xxx.xxx'
限制用户登录的主机,如果只是网页查询的话,留'localhost'就行了

我做PHP通常将数据库连接和用户auth放在一个.inc文件里,编程的习惯
另:update user set password=password('xxxxx') where user='root'



[此贴被 zeeno(zeeno) 在 9月23日7时21分 编辑过]

B3层 发表时间: 9/23 7:58

回复: TomyChen [tomychen]   论坛用户   登录
引用:

mysql的数据库里有user的table,就是mysql的权限表
里面用select user,host from user
delete from user where user='root' and host='%'
删掉host='%'的记录,这样除localhost外的主机均不能访问,
如要远程登录,你加个root ,但host='xxx@xxx.xxx.xxx.xxx'
限制用户登录的主机,如果只是网页查询的话,留'localhost'就行了

我做PHP通常将数据库连接和用户auth放在一个.inc文件里,编程的习惯
另:insert into user set password=password('xxxxx') where user='root'


其实呢,我觉得你的第一种说法很对,就是把mysql 做成只允许localhost访问。但是呢,你的第二种办法把用户auth放到一个.inc文件里我是极力反对!!!
因为.inc文件不是被解释型文件。就是说,他是可以以原代码形式显示的。其实把.inc改成.php的效果是一样的,何乐而不为?

B4层 发表时间: 09/21 14:59

回复: zeeno [zeeno]   论坛用户   登录
^_^

thanx,
出于极力向C靠近区分程序体和头文件的虚荣心

B5层 发表时间: 09/21 15:16

回复: tomas [tomas]   论坛用户   登录
感觉你用 mysql 过程中有很多问题
1)就象前几位说的,在一个地方保存用户名和密码来连接数据库,这样改密码时会很方便
2)web 上的程序不应该用 root 用户连接 mysql ,否则一旦网页上有漏洞会威胁到系统的安全,以前 www.apache.org 被黑掉就是因为他们用 root 用户运行 mysql ,而且被人得到了 mysql 的 root 权限
3)mysql 应该和防火墙配合使用,授权时只给用户最小权限,但不限制主机,这样做的好处也是出于方便的考虑
例如
mysql> grant select, insert, delete, update, create, drop on MyDB.* to somebody@'%' identified by 'mypassword';
尽量不要用 insert, update, delete 去操作 mysql.user 因为这样做的结果并不能立即使设置生效,你还需要一个
mysql> flush privileges;


B6层 发表时间: 01/22 14:23

回复: group [group]   论坛用户   登录
如果拿到了主机的权限,Mysql的密码就没有意义了
因为mysql的数据库是以文件夹的形式存放的

随便找一个知道密码的Mysql,把MySQL目录拷过来覆盖你设过密码的那个东西,密码就被重置了

B7层 发表时间: 01/22 16:41

回复: tomas [tomas]   论坛用户   登录
出现这种情况一定是管理员太水的缘故,mysql 应该用是用单独用户运行的,比方说有人用一个 cgi 漏洞得到 nobody 权限,而 mysql 的设置又没有什么毛病,他就没办法覆盖 mysql 的文件,除非 mysql 也是以 nobody 的权限运行的

B8层 发表时间: 01/22 18:10

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号