Archive

Posts Tagged ‘tips’

针对$_SERVER['PHP_SELF']的跨站脚本攻击(XSS)

March 18th, 2007 Fwolf 2 comments

现在的web服务器和开发工具虽然不会再出现像asp的%81那样明显的漏洞了,但是由于开发人员的疏忽和各种语言特性组合造成的一些奇异的漏洞仍然会存在。今天偶然读到的XSS Woes,就详细讲述了和$_SERVER['PHP_SELF']相关的一个危险漏洞。

$_SERVER['PHP_SELF']在开发的时候常会用到,一般用来引用当前网页地址,并且它是系统自动生成的全局变量,也会有什么问题么?让我们先看看下面的代码吧:

	<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
	<input type="submit" name="submit" value="submit" />
	</form>

这段代码非常简单,我们想用$_SERVER['PHP_SELF']来让网页提交时提交到它自己,假设代码文件名为test.php,在执行的时候就一定会得到我们期望的地址么?首先试试地址http://.../test.php,结果当然是没有问题的啦,别着急,你再访问一下http://.../test.php/a=1,将会得到如下客户端代码:

	<form action="/fwolf/temp/test.php/a=1">
	<input type="submit" name="submit" value="submit" />
	</form>

显然,这已经超出了我们的期望,web服务器居然没有产生诸如404之类的错误,页面正常执行了,并且在生成的html代码中居然有用户可以输入的部分,恐怖的地方就在这里。别小看那个“a=1”,如果把它换成一段js代码,就显得更危险了,比如这么调用:

http://.../test.php/%22%3E%3Cscript%3Ealert('xss')%3C/script%3E%3Cfoo

是不是看到了js的alert函数执行的效果?检查一下生成的html源代码找找原因吧。

通过这种嵌入js代码的方式,攻击者能夠获得512~4k的代码空间,甚至还可以连接外部网站的js代码或者通过image调用来伪装js代码的方式,那样js代码的长度就不受限制了,然后通过js,他们可以轻松的获取用户的cookie,或者更改当前页面的任何内容,比如更改表单提交的目的地,更改显示的内容(比如给一个<a>链接地址增加一个onclick=…的属性,这样用户点击的时候就会执行攻击者指定的代码,甚至连接到并非此链接地址本身的网站),甚至作出一个ajax效果来也不一定,总之,不要忽视js的威力。

那么,再来看看这个漏洞产生的原理,首先test.php/....这种调用是web服务器允许的,很多cms系统,比如我以前用过的plog,好像也是采用这种方式,在服务器不支持rewrite的情况下实现诸如http://…/index.php/archive/999这样的固定网址的(我以前还以为是对404错误页下的手),所以带“/”的地址无法从web服务器上禁止。然后再看看php中对$_SERVER['PHP_SELF']的识别,他就是一个包含当前网址值的全局变量,天知道用户会输入什么样的网站,在上面的例子中是恶意的,可是在wikipedia这样的网站上,却又是可以正常使用这种方式的地址的。所以,最终的结论要落在开发人员身上了,没有很好的处理与用户交互的数据。

从安全角度来讲,在开发应用尤其是web应用的时候,所有用户提交的数据都是不安全的,这是基本原则,所以我们才不厌其烦的又是客户端验证又是服务端验证。从上面说的这个安全漏洞来讲,不安全的内容中又要增加“网址”一条了。要解决$_SERVER['PHP_SELF']的安全隐患,主要有以下2种方式:

1、htmlentities 用htmlentities($_SERVER['PHP_SELF'])来替代简单的$_SERVER['PHP_SELF'],这样即使网址中包含恶意代码,也会被“转换”为用于显示的html代码,而不是被直接嵌入html代码中执行,简单一点说,就是“<”会变成“&lt;”,变成无害的了。

2、REQUEST_URI 用$_SERVER['REQUEST_URI']来替代$_SERVER['PHP_SELF'],在phpinfo()中可以看到这两个变量的区别:

_SERVER["REQUEST_URI"] /fwolf/temp/test.php/%22%3E%3Cscript%3Ealert('xss')%3C/script%3E%3Cfoo
_SERVER["PHP_SELF"] /fwolf/temp/test.php/"&gt;&lt;script&gt;alert('xss')&lt;/script&gt;&lt;foo

$_SERVER['REQUEST_URI']会原封不动的反映网址本身,网址中如果有%3C,那么你得到的也将会是%3C,而$_SERVER['PHP_SELF']会对网址进行一次urldecode操作,网址中的%3C将会变成字符“<”,所以就产生了漏洞。需要注意的是,在很多情况下,浏览器会对用户输入要提交给web服务器的内容进行encode,然后服务器端程序会自动进行decode,得到相应的原指,在我们进行post或者get操作的时候都是这样。

另外还有两点需要指出,第一是<form action="">这种写法虽然没有直接用到$_SERVER['PHP_SELF'],但实际效果却是一样的,只是发生的时间错后到了用户提交之后的下一个页面,所以,form的action还是不要留空的好。第二点,除了PHP_SELF之外,其他的$_SERVER变量也许也会有类似的漏洞,比如SCRIPT_URI, SCRIPT_URL, QUERY_STRING, PATH_INFO, PATH_TRANSLATED等等,在使用他们之前一定要先作htmlentities之类的转换。

最后,提供一个地址,里面有很多XSS的例子,可以作为反面教材或者测试工具: XSS (Cross Site Scripting) Cheat Sheet

Update @ 2007-07-31

SCRIPT_URI在cgi方式下或者在某些虚拟主机上无法使用:

Notice: Undefined index: SCRIPT_URI in ......

所以就只能用REQUEST_URI了:

((isset($_SERVER["HTTPS"]) && 'on' == $_SERVER["HTTPS"]) ? 'https://' : 'http://') . $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI'];

Related posts

Categories: PHP Tags: , , ,

[Ubuntu]使用点滴

July 8th, 2006 Fwolf 3 comments

注:本文按照体验时间倒序排列,最后更新时间:2009-01-08。

fstab配置参数中如果要使用空格怎么办?

用\040替代空格即可。

访问windows共享打印机时windows端容易忘记的设置

在组策略管理gpedit.msc中:

  • “用户权利指派”中,“从网络访问此计算机”中加入guest帐户,“拒绝从网络访问这台计算机”中删除guest帐户
  • “网络访问:本地账户的共享和安全模式”设为“经典—本地用户以自己的身份验证”
  • 禁用“账户:使用空白密码的本地账号只允许进行控制台登录”

关机后无法自动切断电源

如果在dmesg中有如下内容:

[    0.000000] ACPI: no DMI BIOS year, acpi=force is required to enable ACPI

那么在/boot/grub/menu.lst中对应启动内核的kernel项后面添加acpi=force即可,比如:

kernel      /boot/vmlinuz-2.6.22-14-generic root=UUID=7fa1d627-0068-44ec-9beb-1701f1544e88 ro quiet splash acpi=force

Downloader for X启动时没响应

如果在shell中启动,能看到错误信息:

~$ d4x
mcop warning: user defined signal handler found for SIG_PIPE, overriding

解决方法,在配置文件~/.ntrc_2/config中,把enable_sounds 1中的1改为0即可,参考

打开网络设定network-admin/Network Settings时错误

提示:

The entered password is invalid Check that you typed it correctly and that you haven't activated the "caps lock" key although correct passwd

总说密码不对,但你输入的密码肯定没有问题,其实这是一个bug(参见Debian > gnome-system-tools (2.18.1-1) changelog),解决方法,安装或者重装gnome-system-tools即可,另外两个可疑的包就是libnet-dbus-perlsystem-tools-backends

ATI显卡,fglrx驱动加载成功,但direct rendering无法打开

部分错误信息:

$ LIBGL_DEBUG=verbose glxinfo
name of display: :0.0
...
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
libGL error: dlopen /usr/lib/dri/radeon_dri.so failed (/usr/lib/dri/radeon_dri.so: undefined symbol: _glapi_get_dispatch)

卸载xorg-driver-fglrx,问题解决。参考

升级到7.10之后,系统无法启动,并且控制台一直刷屏提示:

[ 227.338011] device-mapper: table: 254:1: linear: dm-linear: Device lookup failed

这时evms和新版的内核冲突,如果能用旧内核启动,进入系统aptitude删除evms即可;如果坚持用现有系统启动,那么将就着敲回车,会看到提示输入root密码进入维护,进去之后,删除evmsevms_activate两个文件,重启,刷屏错误提示就消失了,正常进入系统之后,再删除evms。参考device-mapper: table: 245:1: linear: dm-linear: device lookup failed[Bug 115616] Re: Device-mapper errors: dm-linear, lookup failed

合上笔记本屏幕时系统待机

修改/etc/acpi/events/lidbtn,把其中的action=/etc/acpi/lid.sh改成action/etc/acpi/sleep.sh sleep,参考在Thinkpad上安装Ubuntu笔记

Xfce桌面环境下firefox字体太小的问题

编辑~/.config/xfce4/Xft.xrdb,增加一行Xft.dpi: 96,指定桌面dpi为96就可以了,不用再修改~/.mozilla/firefox/Fwolf/chrome/userChrome.css,添加* {font-size: 12px !important;},在Xfce设置Window ManagerUser Interface Perferences中也不用把字体更改为12号,用默认的10号字就行了,效果完美()。

更新软件到指定版本,或者说是降级

sudo aptitude install subversion=1.4.2dfsg1-2

samba服务器端字符集设置及大于4G的文件

有时候客户端(无论是windows还是linux)连接samba会出现看不到中文的情况,除了设置客户端iocharset=utf8,codepage=cp936之外,服务器端还要在smb.conf 中的[global]段加上:

display charset = UTF-8
unix charset = UTF-8
dos charset = cp936

想通过samba访问大于4G的文件,挂载时需要加上lfs参数,比如下面这个用在fstab中的例子:

# In fstab
//server/fwolf    /path/to/local/mount/point smbfs username=fwolf%password,iocharset=utf8,codepage=cp936,dmask=700,fmask=600,uid=1000,gid=1000,lfs       0 0

查询网卡的实际连接速率

$ dmesg |grep eth0

[100167.238859] tg3: eth0: Link is down.
[100185.192321] tg3: eth0: Link is up at 1000 Mbps, full duplex.
[100185.192330] tg3: eth0: Flow control is on for TX and on for RX.

挂载iso文件之后,里面的中文文件名显示为问号 在mount选项中增加字符集选项即可:

mount somefile.iso /media/cdrom -o loop,iocharset=utf8

codepage选项就不用加了,加上了反而出错。

格式化分区后uuid变了,到哪里找去? 刚刚知道reiserfs的作者遇到了严重的法律问题,就把一个空分区从reiserfs重新又格式化成ext3了,但格式化之后无法重新mount了,提示uuid不对。不要紧,用vol_id /dev/sda6查询出设备的uuid,修改fstab,再重新mount就可以了。

使用正则表达式批量文件改名 rename -v ‘s/(\d+)$/$1.pdf/’ 071

dos和unix文件格式的转换 原来在包sysutils中,现在挪到tofrodos中来了,安装以后todos [file]是转换为dos回车换行格式,fromdos [file]是转换为unix回车换行格式。另外vi中^M就是“\r”。

类似“^[”这样的escape转换字符可以用Ctrl-V+ESC来录入。

Nvidia显卡终极安装指南(英文) 同样还不要忘记nvidia-glx-config enable也可以替代nvidia-xconfig命令,同时这里还有一个自动设置脚本(未测试),gforce2以前的老卡,可能还要在xorg.conf中添加:

Section "Extensions" Option "Composite" "Disable" EndSection

不然glx没法用,提示错误:

Xlib: extension "GLX" missing on display ":0.0". Error: couldn't get an RGB, Double-buffered visual

参考

mplayer在播放影片时如何截图? 如果使用其他截图软件,比如scrot,只能得到一张纯蓝色的图,取不到真正的图像,不过DarkToy为我们琢磨出了十分简便的方法: 在~/.mplayer/config中添加一句: vf=screenshot 这是告诉mplayer启动的使用启用这个参数,然后再在~/.mplayer/input.conf中设置一个未冲突的快捷键绑定(这个文件一般是不存在的,新建一个即可): c screenshot 0 那么在播放影片是按c键就可以截图了,据说如果后面那个数字0改为1,还会连续截图。

Java程序中的中文都是方块,怎么办? cd /usr/lib/j2sdk1.5-sun/jre/lib/fonts (也许根据jre版本不同位置略微变化) sudo mkdir fallback (不知道改个名字是否还能行) cd fallback sudo ln -s /usr/share/fonts/VeraSansYuanTi/VeraSansYuanTi-Regular.ttf (也可以是别的字体文件,ln -s不指定符号链接文件名的话,会自动命名为和所链接的文件名相同的文件) sudo mkfontdir (好像如果链接的字体文件已经正确配置在系统中了,后面这两步可以省略) sudo mkfontscale 参考:Ubuntu 5.10中文环境下安装FreeMind简介

iso文件与光盘刻录 创建ISO文件: cp /dev/cdrom image.iso 装载ISO文件: mount -o loop image.iso /mnt/cdrom 注意这种挂载的方法和挂载其他分区一样,存在字符集编码的问题,如果是要刻录光盘的话,还是使用k3b好了,这是个kde下的程序,不过安装一大堆包之后,也可以在gnome下运行。

光盘上中文文件名乱码的解决方法 编辑/etc/fatab,修改cdrom挂载的那一行,添加黑体部分的内容如下: /dev/cdrom /media/cdrom0 udf,iso9660 iocharset=utf8,user,noauto 0 0

nvidia卡提示glx错误怎么办? 错误信息:

Xlib: extension "GLX" missing on display ":0.0". glxgears: Error: couldn't get an RGB, Double-buffered visual.

原因在这里说了,部分nvidia老式显卡不被新的驱动支持,这种情况下要安装nvidia-glx-legacy,然后再nvidia-glx-config enable、重启X应该就可以了,这些老卡有:

NOTES SECTION * Below are the legacy GPUs that are no longer supported in the unified driver. These GPUs will continue to be maintained through the special legacy NVIDIA GPU driver releases. NVIDIA chip name Device PCI ID ------------------------------- ------------------------------- RIVA TNT 0x0020 RIVA TNT2/TNT2 Pro 0x0028 RIVA TNT2 Ultra 0x0029 Vanta/Vanta LT 0x002C RIVA TNT2 Model 64/Model 64 Pro 0x002D Aladdin TNT2 0x00A0 GeForce 256 0x0100 GeForce DDR 0x0101 Quadro 0x0103 GeForce2 GTS/GeForce2 Pro 0x0150 GeForce2 Ti 0x0151 GeForce2 Ultra 0x0152 Quadro2 Pro 0x0153 ----------------------------------------------------------------

参考

如果播放flash没有声音怎么办? 试试这样:“sudo ln -fs /usr/lib/libesd.so.0 /usr/lib/libesd.so.1”,参考。 另一说为修改/etc/firefox/firefoxrc,加入(或修改)FIREFOX_DSP=”aoss”,aoss要视你的dsp而定,如esddsp,artsdsp,aoss(aoss要求已经安装了alsa-oss),也可以试一下auto,反正不能是none,参考

如何配置dns缓存实现上网加速 freebsd下可以用djbdns,ubuntu下我们可以用dnsmasq:“apt-get install dnsmasq”,然后编辑/etc/resolv.conf文件(dns服务器列表就保存在这里),在最前面加上一行:“nameserver 127.0.0.1”,搞定。注意网上有的文章把resolv.conf笔误为esolv.conf了,包括我参考的这篇hp笔记本上安装Ubuntu。dnsmasq设置完以后能看到本机监听53端口就说明成功了。

网页中的flash不能正确显示中文如何解决?

以前在breezy里,默认的中文GB字体是AR PL SungtiL GB, AR PL KaitiM GB,flash还能够显示出中文(尽管受到日文字体的干扰,字体混用在一起,不好看),到了dapper,默认中文字体变成了AR PL ShanHeiSun Uni(uming),flashplayer(7.23),找不到这个字体,所以中文根本显示不出来。据说flashplayer要出9.0了,到时候可能可以自动认出新的字体,不过在没出之前,大家可以用我的办法让它正确显示中文GB字体,原理就是把新字体伪装成flashplayer可以认出的字体。 cd /etc/defoma/hints sudo cp ttf-arphic-uming.hints custom.hints 编辑custom.hints文件,找到: X-Family = AR_PL_ShanHeiSun_Uni 一行,改成: X-Family = AR_PL_SungtiL_GB 然后运行: sudo defoma-font register-all custom.hints 以注册新的(假)字体,为避免日文字体的干扰,可以把日文字体反注册掉(可选): sudo defoma-font unregister-all ttf-kochi* 然后运行: sudo defoma-reconfigure 最后重启X,大功告成!

参考地址 讓 Firefox 的 Flash Player 能完整顯示中文!(非常详细的解释) {update @ 2006-9-2 现在由于ubuntu中删除了有版权问题的mkcfm(见bug report:mkcfm is needed for some fonts, but lacks an appropriate license for Ubuntu),这种方法不行了,在进行最后defoma-reconfigure的时候会出错:

Updating category cid.. Updating category cmap.. Can't exec "/usr/bin/mkcfm": No such file or directory at /var/lib/defoma/scripts/x-ttcidfont-conf.defoma line 791.

这种情况下就只能老老实实的把字体装上了: 查看flashplayer都支持那些中文字体: strings /usr/lib/mozilla-firefox/plugins/libflashplayer.so | grep 'AR PL' AR PL KaitiM GB AR PL SungtiL GB AR PL KaitiM Big5 AR PL Mingti2L Big5 看看源中可供安装的中文字体都有哪些: aptitude search arphic 安装其中简体的两个: apt-get install ttf-arphic-gbsn00lp ttf-arphic-gkai00mp 然后重启X。 但这样好像还是不行,我也没有办法了。 }

解决glxgears不显示帧数的问题 glxgears -printfps or glxgears -iacknowledgethatthistoolisnotabenchmark

简单的数码照片浏览和处理 gThumb比默认的eog(Eye of Gnome)要好用得多,不仅稳定,功能也多一些,旋转图片的时候不仅不会改变文件的大小(不知道eog动了什么我一个1m多的图片旋转之后就剩下200+k了),exif信息也能够保存下来,建议换掉。

利用hdparm提速硬盘 hdparm -X66 -d1 -m16 -c1 /dev/hda -X66 ATA33=66, ATA66=68,此参数需谨慎设定,不懂最好不要用。 -d1 开启dma -m16 设定MultSect为MaxMultSect -c1 将操作模式设定为 32-bits 测试性能:hdparm -tT /dev/hda 保存设置:hdparm -k1 /dev/hda 查看设置:hdparm [-i] /dev/hda 不过好像保存设置不起作用,干脆写入到/etc/hdparm.conf文件得了,hdparm.conf中,hdparm命令的每一个参数都有一个对应的option,并且有详细的说明和例子,参照着写就可以了,这才是一劳永逸的办法。

/dev/hda { dma = on io32_support = 1 mult_sect_io = 16 #transfer_mode = 66 }

这四个选项分别对应上面说明的四个参数,基本上也是最常用的。

rpm形式的安装包转换为deb形式 alien xxx.rpm

Linux下有什么数据库设计工具或者建模工具么? 有的人使用wine模拟运行PowerDesigner,但似乎效果不怎么好。如果使用的是Mysql数据库,除了phpMyAdmin可用之外,还有DBDesigner,以及mysql官方的workbench(尚未正式发布)。据说DBDesigner也支持Oracle。参考1参考2《DBDesigner的安装》

按照机器名查询局域网内其他机器的ip nmblookup cmp 按ip查机器名: nmblookup -A 192.168.0.1 似乎只能查windows主机

我现在使用FireFox 1.5.0.3,还是存在着严重的内存泄露,并且我一般不关机,都只是休眠,如果你的习惯和我一样的话,记得每天休眠的时候要关掉FireFox,不然它睡觉的时候还会吃内存的。

我正在通过smb挂载着一个网上邻居的共享目录,可是对方突然关机了,我这里操作异常,并且无法umount,怎么办? 有时候在这种情况下是无法umount的,会提示设备忙,但是可以使用smbumount,一般都会成功的。 sudo smbumount /media/share/xjl-f

使用mencoder制作影片剪辑(截取、转换) mencoder source.avi -ss 5:00 -endpos 40 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o target.avi 注意-endpos指定的是相对于ss要截取的时间长度,而不是绝对时间坐标。-oac copy就是直接复制源中的音频,不再单独压缩。

如何才能浏览中文的pdf文件? 不管是evince,或者是epdfview,默认安装都无法查看中文pdf文件的,会有乱码,解决方法: distro:ubuntu linux dapper 1 sudo apt-get install evince 2 sudo apt-get install xpdf-chinese-simplified 3 你需要一个中文字体,simsun,fireflysun皆可。 cd /usr/share/fonts sudo ln -s < 你的字体存放的路径> < 字体名>.ttf //记住一定是.ttf!!!不能是*.ttc,或是别的什么。我开始就挂在这里了 比如:sudo ln -s /media/hda1/windows/fonts/simsun.ttc simsun.ttf //我开始就挂在这里了 4 打开/etc/xpdf/xpdfrc-chinese-simplefied 将displayCIDFontTT改为 displayCIDFontTT Adobe-GB1 /usr/share/fonts/simsun.ttf 即可! 5 现在你的xpdf,evince都能显示中文了!

用gedit编辑过的文件在vi下看,每行末尾都加了一个^M,怎么去掉? 这个^M其实是兼容dos的回车,也就是\r,使用下面的命令替换掉: :%s/\r//g 可以看出替换命令s是支持正则表达式的。

php5的两个ini文件 其实只有一个的,为什么要说两个呢?一个在/etc/php5/apache2下,这个是给apache用的,另外一个是在/etc/php5/cli下,这个是给命令行的php用的,比如php -f somefile.php,或者#! /usr/bin/php开头的shell script。有的时候使用cli调试脚本的时候经常会忘记设置后面那个。

如何将应用程序加到菜单中? 见例: sudo gedit /usr/share/applications/Firefox1.5.0.2.desktop [Desktop Entry] Name=Firefox Web Browser Comment=Browse the World Wide Web Exec=/opt/firefox/firefox Icon=/opt/firefox/icons/mozicon128.png Terminal=false Type=Application Categories=Application;Network;

最后一行是Network的,就在Internet菜单下,Office,就在Office菜单下,System的,就在System Tools菜单下,其他的可以参照现有.desktop文件摸索设置。

安装jre 1.5 首先你要下载官方的java1.5的运行时。现在最新的是java1.5update6 http://java.sun.com/j2se/1.5.0/download.jsp 下载下来的bin文件,为了方便,我们把它转成deb文件,方便使用。先下载工具 sudo apt-get install fakeroot java-package java-common 开始转换 fakeroot make-jpkg jre-1_5_0_06-linux-i586.bin 好,不出意外的话,就应该转换成功了。 开始安装: sudo dpkg -i sun-j2re1.5_1.5.0+update06_i386.deb 然后配置: sudo update-alternatives –config java 参见咸鱼的文章

关闭IPV6 修改/etc/modprobe.d/aliases文件,增加: alias net-pf-10 ipv6 off alias net-pf-10 off alias ipv6 off 注释掉:

alias net-pf-10 ipv6

再新建一个/etc/modprobe.d/bad_list文件,内容为: alias net-pf-10 off 然后重启。

Azureus bt下载的小问题 安装以后无法启动(没有图形窗口):sudo update-alternatives –config java 默认的是选4,改成1,就是带有jre5字样的就可以了。 提示窗口无法隐藏:关掉azureus重新打开就没事了。

MPlayer字幕乱码 編輯 ~/.mplayer/config 加上如下

font=/usr/share/fonts/truetype/arphic/bkai00mp.ttf subcp=gb2312 subfont-autoscale=2 subfont-text-scale=5

而我通过在gui中测试得到的结果则是还需要加上:

vo_doublebuffering = “no” sub_unicode = “no” sub_cp = “cp936″ font_encoding = “unicode”

各位再根据自己的实际情况改变上述几项参数的值应该就可以了。

安装显卡驱动(尤其是ati卡) 安装驱动:apt-get install xorg-driver-fglrx 安装nvidia卡驱动:apt-get install nvidia-glx 初始化nvidia的显卡:nvidia-glx-config enable 初始化ati的显卡:aticonfig –initial (或是 aticonfig –initial=dual-head) aticonfig –overlay-type=Xv

另:不要忘记安装linux-restricted-modules,注意如果从386的内核升级到了686的内核,686的restricted modules也不要忘记安装,否则会出现ati显卡fglrx驱动能够正常安装,却始终打不开direct rendering的怪问题。

另:我的ibm笔记本以前使用mplayer的时候,只能选择X11(Ximage/Shm),并且没法全屏播放(全屏以后仍然是小画面),安装完上面的驱动,并且修改了mplayer的config文件之后,居然可以选择(X11/xv)模式了,并且能够十分流畅的全屏播放,真是太好了。只是在检测显卡的时候,如果不选ati而是选择fglrx的话,X就无法启动,现在也不知道显卡到底驱动起来没有。

播放电影,包括rmvb 咸鱼翻身还是咸鱼那里有一篇很好的介绍,针对dapper的,非常实用(备份地址)。不过最好首先还是把dapper的更新源扩展一下。大体总结如下: 首先安装dapper的gstreamer,dapper好像已经自带了,breezy麻烦些:

sudo apt-get install gstreamer0.10-*

下载安装w32codecs

wget -c ftp://ftp.nerim.net/debian-marillat/pool/main/w/w32codecs/w32codecs_20050412-0.0_i386.deb sudo dpkg -i w32codecs_20050412-0.0_i386.deb

这时再安装上mplayer就能够正常播放电影了,注意好像使用dapper flight7的源是没有mplayer的,扩展一下就好了。如果还想使用其他的播放器的话,把totem换成xine的后端:

sudo apt-get install libxine-extracodecs totem-xine mplayer-686 ffmpeg lame faad sox mjpegtools libxine-main1

有用的链接 升级到Dapper的源source

挂载fat32移动硬盘分区,不乱码,可读写 mount /dev/sda1 /media/sda1 -t vfat -o iocharset=utf8,rw,umask=0 umount /media/sda1;

挂载网上邻居共享的ntfs分区,中文不乱码,普通用户可读写 mount -o username=xjl%,iocharset=utf8,codepage=cp936,dmask=777,fmask=777 //xjl/f /media/share/xjl-f; ls /media/share/xjl-f/ umount /media/share/xjl-f; iocharset用utf-8不行,必须是utf8,codepage用936也不行,必须是cp936。 -t smbfs可以不写,自动识别。其他参数在前在后也没关系。 dmask和fmask如果不指定,那么root以外的用户就只能读取或者执行(r+x)。

linux挂载linux的samba 挂载其他linux(utf8文件系统编码,samba的unix charset也设置为utf-8了)的时候,和上面挂载共享的ntfs分区的方式是一样的: mount //neighbour/sharedir /media/mountpoint -t samfs -o codepage=cp936,iocharset=utf8 这是要尤其注意的地方,即使两个linux都是utf8编码,好像也必须指定cp936才能够正常浏览和创建中文名称的文件! 另外还要尤其注意,//neighbour/sharedir和//neighbour/sharedir/是不一样的,注意最后有个斜线“/”,有的时候加上了这个斜线samba会不认,报出如下错误:

tree connect failed: ERRDOS – ERRnosuchshare (You specified an invalid share name) SMB connection failed

在英文系统下安装输入法无法调出输入栏的问题 有可能是因为没有设置使用中文输入法的缘故,只需要修改/etc/environment文件,添加:

LANGUAGE=”en_US:en” LC_CTYPE=zh_CN.UTF-8 LANG=en_US.UTF-8 #GST_ID3_TAG_ENCODING=GBK

然后重启x就可以了。

这样即不影响现有的英文操作界面,也能够使用中文的输入法(尤其是scim了),最后一句好像没有用,fcitx可能要用到。

下载工具

一般推荐Download 4 XProZilla,其中prozilla好象是命令行方式使用的。

安装压缩工具7-zip

apt-get install p7zip 7za or 7z to run command

还有系统带的tar也不错。

关闭不需要的服务

这样应该能够让系统运行得快一些,尤其是在虚拟机中运行的时候,在X下System->Administration->Services中关闭是一种简单的方法,但不解决最终的问题。

首先apt-get install sysv-rc-conf,安装这个,然后运行,并调整如下: 只在S等级启用:acpi-support 关闭:anacron, apmd, atd, bluez-utiles, fetchmail, hotkey-setup, hplip, pcmcia, powernowd, ppp, rsync. 如果是笔记本电脑,下面几个就不要关闭了:hotkey-setup, pcmcia, powernowd

这样应该能稍微快一些吧,错关了也没有关系,当需要的时候还可以再打开嘛。

安装编译环境 apt-get install build-essential

相关阅读:

Related posts