作者归档: Hessian

无力啊,自己编译的MYSQL有问题

netome.net的VPS搁置了很久了,这两天才想起来好好弄一下。 从vePortal上reload了CentOS6,又在自己机器上装了个CentOS6 Minimal做编译环境,好不容易MYSQL/PHP/NGINX都编译好了,放到服务器上调了一整天,好像没问题。

结果刚把Wordpress装上,上传几张图片之后PHP就报内存不足了,赶紧看top。。。。。

 

我日。。top也打不开,内存不够了。。。无奈最后只能重启。。

 

经过多次检查,最后发现mysql一启动之后内存马上消失,我VPS是512M的内存,mysql一启动之后300+M就没了,可是从PS里看他内存值占用了几十兆,让我很是无法理解。

这个问题折腾了一整天,还去问了 phpx的村长sadly,结果都没找到解决的办法。 到后来我只能猜测用编译问题来说服我自己了(TMD在我虚拟机里一点事都木有啊),为了能尽快上线,只好想装上yum里的mysql将就一下。

 

Read: 1277

(图) 宏基 Acer 4741G 完全拆解

昨天配置服务器环境,编译了一天东西,结果发现笔记本烫的不行,一看sensors,70+°了,赶紧关机。 想想1年没清理过机器了,是该清理一下,于是就果断动手拆了。这里吐槽一下ACER的模具设计,TMD我清理个散热器还得把整个机器给拆了。。。太2了。。。

 

之前也没拆笔记本的经验,把能看到的螺丝钉都拆光了之后才发现根本不是从后面拆的,但是又不知道键盘这面哪还有拆的地方,后来问了度娘半天她才告诉我得先拆键盘,但是也没说清楚怎么拆。 最后经过我辛苦的尝试终于有了下面的照片。。。。
 

键盘下面有卡子(红圈部分)所以只能从侧面或者上面撬开,按说应该从上面,因为上面有几个弹性卡子,但是我一只手搞不定。。。最后还是从右边撬开的。

拆键盘的时候一定要小心,下面有排线跟主板连着的,比较脆弱。

键盘拿掉之后就是这样了,上面两颗螺丝果断下掉。

这个口是接键盘排线的,下面那个是触摸板的排线。

这些排线插口的设计都挺精巧,键盘这个插口的上半部分是可以活动的,可以用手掰开,把排线插进去之后按下去就卡住了

 

这个网卡芯片么?

两颗螺丝钉卸掉,把该拆的排线拆掉,拿掉面板就是这样了,主板就在这里。

拍拍主板

 

这个就是风扇了,感觉还不算太脏,不知道是不是转速不行了。

再次吐槽这个模具,设计的真的太屎了。。。居然在主板上开了个洞。。。就为了放风扇

 

贴片元件特写。。。

 

MADE IN CHINA, 旁边的黑线是天线,应该是走屏幕的。

两块网卡芯片么?

 

翻开主板背面就是CPU、GPU、还有脏脏的散热器了。

到这里的时候我很悲催的发现里面有个手写的标签: 小虎 CPU、无内存、无显卡。。。。我不知道这是之前老婆拿去修的时候留在里面的还是买回来就在里头了。。。感觉就像吃了苍蝇一样恶心。

 

Bridge 芯片 ╮(╯▽╰)╭···

 

CPU散热片+热管, 上面印着 Forceconn。。。

 

因为主板左上的位置连着显示器的排线什么的不好拆的玩意,所以我只要把笔记本翻过来放,方便操作。

拆掉散热器,露出脏脏的2+1,硅胶感觉很一般的样子。。

来个全视角

Nvidia GPU

Nvidia GPU

 

被我擦的噌亮的CPU。。。

 

 

下面就是高温的罪魁祸首了。。。。

 

 

一堆毛什的堵住了出风口,拍照的时候已经被我清理掉了一半,堵成这样温度居然才只到70多度。。我觉得已经很不容易了。。

 

 

 

 

最后清理干净之后,开机,出风口风量很大,温度稳定在50左右,室温30度,编译了几个东西,温度跑到60+,不过编译完很快就下来了。 很成功。

 

 

 

 

 

 

 

 

Read: 1946

chroot用法详解 – [linux]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://wtxawr.blogbus.com/logs/17714526.html

CHROOT就是Change Root,也就是改变程式执行时所参考的根目录位置。
一般的目录架构:
/
/bin
/sbin
/usr/bin
/home

CHROOT的目录架构:
/hell/
/hell/bin
/hell/usr/bin
/hell/home
* 为何要CHROOT?
1.限制被CHROOT的使用者所能执行的程式,如SetUid的程式,或是会造成Load 的 Compiler等等。
2.防止使用者存取某些特定档案,如/etc/passwd。
3.防止入侵者/bin/rm -rf /。
4.提供Guest服务以及处罚不乖的使用者。
5.增进系统的安全。
*  要如何建立CHROOT的环境?
1.chroot()这个function:
chroot(PATH)这个function必须具有 root 的身份才能执行,执行後会将根目录切换到 PATH所指定的地方。
2.login的过程:
使用者无论是从console或是telnet进入,都必须执行/usr/bin/login来
决定是否能进入系统,而login所做的动作大致是:
(1)印出login的提示符号,等待使用者输入密码。
(2)检查密码是否正确,错误的话回到(1)。
(3)正确的话以setuid()来改变身份为login_user。
(4)以exec()执行user的shell。
因此我们必须先修改/usr/bin/login的source code,让login在(2)到(3)
的中间执行chroot($CHROOT_PATH)的动作,已达到CHROOT的目的,并以修
改过的login替代原先的/usr/bin/login。
(5)稍微好一点的方法必须在做chroot()之前检查login
user的group,如果有某个特定的group(如chrootgrp)
才执行chroot(),不然所有的人都会被chroot了。
3.建立CHROOT所需的环境:
(1)必须具备的目录:(假设$CHROOT为希望建立的路径)
$CHROOT/etc  $CHROOT/lib  $CHROOT/bin
$CHROOT/sbin $CHROOT/usr/lib  $CHROOT/usr/bin
$CHROOT/usr/bin $CHROOT/usr/local  $CHROOT/home
(2)仔细审查/etc中的档案,需具备执行程式时所需的档
案,如passwd,groups,hosts,resolv.conf等等。
(3)拿掉不想给的执行档,如su,sudo等SetUid的程式,
以及compiler甚至telnet。
(4)测试一下,以root身份执行  chroot $CHROOT /bin/sh
即可进入CHROOT环境中。(man chroot for details)
4.在console或是以telnet进入试试。
5.Username/Password Resolve的考量:
在CHROOT时你可能不希望被CHROOT的使用者(以後简称CHROOTer)能拿到/etc/passwd或是/etc/shadow等档案,尤其是有root密码的。以下有三种情形:
(1)/etc/passwd跟 $CHROOT/etc/passwd相同:
这是最差的作法,因为一来被CHROOTer有机会得到root
的encrypted password,二来要保持/etc/passwd及
$CHROOT/etc/passwd的同步性是个大问题。因为
/usr/bin/login参考的是/etc/passwd,可是一旦
CHROOTer被chroot後执行passwd时,他所执行的
passwd所更改的将是$CHROOT/etc/passwd。
(2)/etc/passwd跟$CHROOT/etc/passwd不同:
你可以把$CHROOT/etc/passwd中的重要人物(如root)
的密码拿掉,然後以比较复杂的方法修改
/usr/bin/login:
if (has_chroot_group) {
re-load $CHROOT/etc/passwd
if (password is valid) {
chroot($CHROOT)
exec(shell)
} else logout()
}
此法的好处是你可以将/etc/passwd跟
$CHROOT/etc/passwd分开来。/etc/passwd只影响
CHROOTer在login时所使用的username,其他如
password甚至uid,gid,shell,home等等都是参
考$CHROOT/etc/passwd的。
缺点是你其他的daemon如ftpd,httpd都必须做相同
的修改才能正确取的CHROOTer的资讯,而且你在把一
个user加入或移出chroot_group时都必须更改
/etc/passwd跟$CHROOT/etc/passwd。
(3)使用NIS/YP:
此法大概是最简单,且麻烦最少的了。因为一切的user
information都经过NIS Bind来取得,不但可以保护住
root的密码,也省去/etc/passwd跟
$CHROOT/etc/passwd同步管理上的问题。不只是
passwd,连其他如groups,hosts,services,
aliases等等都可以一并解决。
* 其他必须考虑的问题:
1.执行档的同步性:
再更新系统或是更新软体时,必须考虑到一并更换
$CHROOT目录下的档案,尤其如SunOS或是BSD等会用
nlist()来取得Kernel Information的,在更新kernel
时必须更新$CHROOT下的kernel。
2./dev的问题:
一般而言你必须用local loopback NFS将/dev read-write mount到$CHROOT/dev以使得一般user跟CHROOTer可以互相write以及解决devices同步性的问题。
3./proc的问题:
在Linux或是SYSV或是4.4BSD的系统上许多程式会去
参考/proc的资料,你必须也将/proc mount到
$CHROOT/proc。
4./var的问题:
一般而言/var也是用local loopback NFS read-write
mount到$CHROOT/var下,以解决spool同步性的问题,
否则你可能必须要修改lpd或是sendmail等daemon,
不然他们是不知道$CHROOT/var下也有spool的存在。
5.Daemon的问题:
你必须修改一些跟使用者相关的Daemon如ftpd,httpd
以使这些daemon能找到正确的user home。
* CHROOT无法解决的安全问题:
1.不小心或是忘记拿掉SetUid的程式:
CHROOTer还是有机会利用SetUid的程式来取得root的
权限,不过因为你已经将他CHROOT了,所以所能影响到
的只有$CHROOT/目录以下的档案,就算他来个
“/bin/rm -rf /” 也不怕了。
不过其他root能做的事还是防不了,如利用tcpdump来
窃听该localnet中的通讯并取得在该localnet上其他
机器的帐号密码,reboot机器,更改NIS的资料,更改
其他没有被CHROOT的帐号的密码藉以取得一般帐号(所
以root不可加入NIS中)等等。
(此时就必须藉由securetty或是login.access或是将
wheel group拿出NIS来防止其login as root)
2.已载入记忆体中的Daemon:
对於那些一开机就执行的程式如sendmail,httpd,
gopherd,inetd等等,如果这些daemon有hole(如
sendmail),那hacker只要破解这些daemon还是可以取
得root权限。
* 结论:
CHROOT可以增进系统的安全性,限制使用者能做的事,
但是CHROOT Is Not Everything,因为还是有其他的
漏洞等著hacker来找出来。

Read: 1011