1.前提
安装LAMP,安装wikidia。系统中要有可以实际运行的一个wikipedia。安装Java的
jre,
2.下载
下载镜像文件4G,
$wget http://download.wikimedia.org/enwiki/20081008/enwiki-20081008-pages-articles.xml.bz2
或者下载中文文件在120M(可以看出中文与英文的内容区别了吧):
$wget http://download.wikimedia.org/zhwikisource/20081223/zhwikisource-20081223-pages-articles.xml.bz2
下载转换工具
$wget http://download.wikimedia.org/tools/mwdumper.jar
3.转换前准备工作
(1)删除数据库中无用的表
$mysql -p wikidb
Password: ******
mysql> delete from page;
mysql> delete from revision;
mysql> delete from text;
(2)设置MySQL
sudo /etc/mysql/my.cnf
加如下内容:
[mysqld]
max_allowed_packet = 128M
innodb_log_file_size = 100M
[mysql]
max_allowed_packet = 128M
然后重启mysql,使设置生效
$/etc/init.d/mysql restart
4.导入数据
将转换工具与数据放入同一个目录,在该目录中运行如下命令:
$sudo java -Xmx600M -server -jar mwdumper.jar --format=sql:1.5 enwiki-20061130-pages-articles.xml.bz2 | mysql -u westnorth -p wikidb
会提示输入密码,要分别输入系统用户的密码及数据库的密码
5.善后工作
清理日志文件
$ mysql -u root reset master;
修复数据库
$ mysql -p wikidb
mysql> repair table pagelinks extended;
mysql> repair table page extended;
mysql> repair table templatelinks extended;
6.正常显示内容
现在,很多页面打开还不正常,需要扩展(Extension).在安装前需要知道wiki的
版本号.在站点名后加上"/index.php/Special:Version",得到wikipedia的版本号。
如44056。设wiki安装在"~/www/wiki"
$ mkdir ~/extensions
$ svn co -r 44056 http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions ~/extensions
安装扩展
$ cd ~/extensions
$ mkdir ~/www/wiki/extensions/ParserFunctions
$ cd ParserFunctions
$ cp * ~/www/wiki/extensions/ParserFunctions
$ cd ..
$ cd Cite
$ cp * ~/www/wiki/extensions/
$ cd ..
$ cp -a CategoryTree/ ~/www/wiki/extensions/
$ cp -a wikihiero ~/www/wiki/extensions/
然后编辑配置文件~/www/wiki/LocalSettings.php,添加以下内容
require_once("$IP/extensions/ParserFunctions
/ParserFunctions.php");
$wgUseTidy=true;
require_once("$IP/extensions/Cite.php");
$wgUseAjax = true;
require_once("$IP/extensions/CategoryTree
/CategoryTree.php");
require_once("$IP/extensions/wikihiero/wikihiero.php");
这时应该可以正常显示大部分的Wikipedia页面了。
如果要显示数学公式,需要安装Latex、ghostscript、imagemagick、
mediawiki-math
编辑配置文件~/www/wiki/LocalSettings.php,追加以下内容:
$wgUseTeX=true
这时所有的数学公式应该都可以正常显示了。
资料基本是参考
http://www.surftastic.info/index.php?q=uggc%3A%2F%2Fjjj.kkyvahk.pbz%2Fyvahk%2Fnegvpyr%2Fargjbex%2Ffreire%2F20070904%2F9623.ugzy,
至于最原始的内容出自哪儿,就不得而知了
Sunday, December 28, 2008
Saturday, December 27, 2008
一个批量转换pdf的好东西
刚在linux-wiki上看到一个很好的东西,叫unoconv,源中自带的。
可以批量转换pdf。速度也快,转换出的格式很好。
----------------分割线----------------------
以下为linux-wiki的内容
举一个例子:要转换一个doc文件为PDF格式,只需在命令中执行:
$ unoconv -f pdf myDoc.doc
即会生成一个名为myDoc.pdf的pdf文件。
批量转换
批量转换需要结合find命令或脚本使用,使用时需注意最好使用C/S模式以加快速度:
unoconv --listener &
unoconv -f pdf some-document.odt
unoconv -f doc other-document.odt
unoconv -f jpg some-image.png
unoconv -f xsl some-spreadsheet.csv
其它功能简介
支持的文件格式
可以执行unoconv --show查看截止到2008年3月11日,unoconv支持以下几种导出格式(见
本文末尾)^[1]
服务器/客户端模式
此模式使文档的集中处理成为可能。
附:支持的输出文件格式
bib - BibTeX [.bib]
doc - Microsoft Word 97/2000/XP [.doc]
doc6 - Microsoft Word 6.0 [.doc]
doc95 - Microsoft Word 95 [.doc]
docbook - DocBook [.xml]
html - HTML Document (OpenOffice.org Writer) [.html]
odt - Open Document Text [.odt]
ott - Open Document Text [.ott]
ooxml - Microsoft Office Open XML [.xml]
pdb - AportisDoc (Palm) [.pdb]
pdf - Portable Document Format [.pdf]
psw - Pocket Word [.psw]
rtf - Rich Text Format [.rtf]
latex - LaTeX 2e [.ltx]
sdw - StarWriter 5.0 [.sdw]
sdw4 - StarWriter 4.0 [.sdw]
sdw3 - StarWriter 3.0 [.sdw]
stw - Open Office.org 1.0 Text Document Template [.stw]
sxw - Open Office.org 1.0 Text Document [.sxw]
text - Text Encoded [.txt]
txt - Plain Text [.txt]
vor - StarWriter 5.0 Template [.vor]
vor4 - StarWriter 4.0 Template [.vor]
vor3 - StarWriter 3.0 Template [.vor]
xhtml - XHTML Document [.html]
图形格式:
bmp - Windows Bitmap [.bmp]
emf - Enhanced Metafile [.emf]
eps - Encapsulated PostScript [.eps]
gif - Graphics Interchange Format [.gif]
html - HTML Document (OpenOffice.org Draw) [.html]
jpg - Joint Photographic Experts Group [.jpg]
met - OS/2 Metafile [.met]
odd - OpenDocument Drawing [.odd]
otg - OpenDocument Drawing Template [.otg]
pbm - Portable Bitmap [.pbm]
pct - Mac Pict [.pct]
pdf - Portable Document Format [.pdf]
pgm - Portable Graymap [.pgm]
png - Portable Network Graphic [.png]
ppm - Portable Pixelmap [.ppm]
ras - Sun Raster Image [.ras]
std - OpenOffice.org 1.0 Drawing Template [.std]
svg - Scalable Vector Graphics [.svg]
svm - StarView Metafile [.svm]
swf - Macromedia Flash (SWF) [.swf]
sxd - OpenOffice.org 1.0 Drawing [.sxd]
sxd3 - StarDraw 3.0 [.sxd]
sxd5 - StarDraw 5.0 [.sxd]
tiff - Tagged Image File Format [.tiff]
vor - StarDraw 5.0 Template [.vor]
vor3 - StarDraw 3.0 Template [.vor]
wmf - Windows Metafile [.wmf]
xhtml - XHTML [.xhtml]
xpm - X PixMap [.xpm]
演示文稿:
bmp - Windows Bitmap [.bmp]
emf - Enhanced Metafile [.emf]
eps - Encapsulated PostScript [.eps]
gif - Graphics Interchange Format [.gif]
html - HTML Document (OpenOffice.org Impress) [.html]
jpg - Joint Photographic Experts Group [.jpg]
met - OS/2 Metafile [.met]
odd - OpenDocument Drawing (Impress) [.odd]
odg - OpenOffice.org 1.0 Drawing (OpenOffice.org Impress) [.odg]
odp - OpenDocument Presentation [.odp]
otp - OpenDocument Presentation Template [.otp]
pbm - Portable Bitmap [.pbm]
pct - Mac Pict [.pct]
pdf - Portable Document Format [.pdf]
pgm - Portable Graymap [.pgm]
png - Portable Network Graphic [.png]
pot - Microsoft PowerPoint 97/2000/XP Template [.pot]
ppm - Portable Pixelmap [.ppm]
ppt - Microsoft PowerPoint 97/2000/XP [.ppt]
pwp - PlaceWare [.pwp]
ras - Sun Raster Image [.ras]
sda - StarDraw 5.0 (OpenOffice.org Impress) [.sda]
sdd - StarImpress 5.0 [.sdd]
sdd3 - StarDraw 3.0 (OpenOffice.org Impress) [.sdd]
sdd4 - StarImpress 4.0 [.sdd]
sti - OpenOffice.org 1.0 Presentation Template [.sti]
stp - OpenDocument Presentation Template [.stp]
svg - Scalable Vector Graphics [.svg]
svm - StarView Metafile [.svm]
swf - Macromedia Flash (SWF) [.swf]
sxi - OpenOffice.org 1.0 Presentation [.sxi]
tiff - Tagged Image File Format [.tiff]
vor - StarImpress 5.0 Template [.vor]
vor3 - StarDraw 3.0 Template (OpenOffice.org Impress) [.vor]
vor4 - StarImpress 4.0 Template [.vor]
vor5 - StarDraw 5.0 Template (OpenOffice.org Impress) [.vor]
wmf - Windows Metafile [.wmf]
xhtml - XHTML [.xml]
xpm - X PixMap [.xpm]
电子表格:
csv - Text CSV [.csv]
dbf - dBase [.dbf]
dif - Data Interchange Format [.dif]
html - HTML Document (OpenOffice.org Calc) [.html]
ods - Open Document Spreadsheet [.ods]
ooxml - Microsoft Excel 2003 XML [.xml]
pdf - Portable Document Format [.pdf]
pts - OpenDocument Spreadsheet Template [.pts]
pxl - Pocket Excel [.pxl]
sdc - StarCalc 5.0 [.sdc]
sdc4 - StarCalc 4.0 [.sdc]
sdc3 - StarCalc 3.0 [.sdc]
slk - SYLK [.slk]
stc - OpenOffice.org 1.0 Spreadsheet Template [.stc]
sxc - OpenOffice.org 1.0 Spreadsheet [.sxc]
vor3 - StarCalc 3.0 Template [.vor]
vor4 - StarCalc 4.0 Template [.vor]
vor - StarCalc 5.0 Template [.vor]
xhtml - XHTML [.xhtml]
xls - Microsoft Excel 97/2000/XP [.xls]
xls5 - Microsoft Excel 5.0 [.xls]
xls95 - Microsoft Excel 95 [.xls]
xlt - Microsoft Excel 97/2000/XP Template [.xlt]
xlt5 - Microsoft Excel 5.0 Template [.xlt]
xlt95 - Microsoft Excel 95 Template [.xlt]
相关资料
1. ↑ http://dag.wieers.com/home-made/unoconv/
取自"http://www.linux-wiki.cn/index.php/
%E6%96%87%E6%A1%A3%E6%A0%BC%E5%BC%8F%E6%89%B9%E9%87%8F%E8%BD%AC%E6%8D%A2%28doc%2Ctxt%2Cpdf%E7%AD%89%29
"
可以批量转换pdf。速度也快,转换出的格式很好。
----------------分割线----------------------
以下为linux-wiki的内容
举一个例子:要转换一个doc文件为PDF格式,只需在命令中执行:
$ unoconv -f pdf myDoc.doc
即会生成一个名为myDoc.pdf的pdf文件。
批量转换
批量转换需要结合find命令或脚本使用,使用时需注意最好使用C/S模式以加快速度:
unoconv --listener &
unoconv -f pdf some-document.odt
unoconv -f doc other-document.odt
unoconv -f jpg some-image.png
unoconv -f xsl some-spreadsheet.csv
其它功能简介
支持的文件格式
可以执行unoconv --show查看截止到2008年3月11日,unoconv支持以下几种导出格式(见
本文末尾)^[1]
服务器/客户端模式
此模式使文档的集中处理成为可能。
附:支持的输出文件格式
bib - BibTeX [.bib]
doc - Microsoft Word 97/2000/XP [.doc]
doc6 - Microsoft Word 6.0 [.doc]
doc95 - Microsoft Word 95 [.doc]
docbook - DocBook [.xml]
html - HTML Document (OpenOffice.org Writer) [.html]
odt - Open Document Text [.odt]
ott - Open Document Text [.ott]
ooxml - Microsoft Office Open XML [.xml]
pdb - AportisDoc (Palm) [.pdb]
pdf - Portable Document Format [.pdf]
psw - Pocket Word [.psw]
rtf - Rich Text Format [.rtf]
latex - LaTeX 2e [.ltx]
sdw - StarWriter 5.0 [.sdw]
sdw4 - StarWriter 4.0 [.sdw]
sdw3 - StarWriter 3.0 [.sdw]
stw - Open Office.org 1.0 Text Document Template [.stw]
sxw - Open Office.org 1.0 Text Document [.sxw]
text - Text Encoded [.txt]
txt - Plain Text [.txt]
vor - StarWriter 5.0 Template [.vor]
vor4 - StarWriter 4.0 Template [.vor]
vor3 - StarWriter 3.0 Template [.vor]
xhtml - XHTML Document [.html]
图形格式:
bmp - Windows Bitmap [.bmp]
emf - Enhanced Metafile [.emf]
eps - Encapsulated PostScript [.eps]
gif - Graphics Interchange Format [.gif]
html - HTML Document (OpenOffice.org Draw) [.html]
jpg - Joint Photographic Experts Group [.jpg]
met - OS/2 Metafile [.met]
odd - OpenDocument Drawing [.odd]
otg - OpenDocument Drawing Template [.otg]
pbm - Portable Bitmap [.pbm]
pct - Mac Pict [.pct]
pdf - Portable Document Format [.pdf]
pgm - Portable Graymap [.pgm]
png - Portable Network Graphic [.png]
ppm - Portable Pixelmap [.ppm]
ras - Sun Raster Image [.ras]
std - OpenOffice.org 1.0 Drawing Template [.std]
svg - Scalable Vector Graphics [.svg]
svm - StarView Metafile [.svm]
swf - Macromedia Flash (SWF) [.swf]
sxd - OpenOffice.org 1.0 Drawing [.sxd]
sxd3 - StarDraw 3.0 [.sxd]
sxd5 - StarDraw 5.0 [.sxd]
tiff - Tagged Image File Format [.tiff]
vor - StarDraw 5.0 Template [.vor]
vor3 - StarDraw 3.0 Template [.vor]
wmf - Windows Metafile [.wmf]
xhtml - XHTML [.xhtml]
xpm - X PixMap [.xpm]
演示文稿:
bmp - Windows Bitmap [.bmp]
emf - Enhanced Metafile [.emf]
eps - Encapsulated PostScript [.eps]
gif - Graphics Interchange Format [.gif]
html - HTML Document (OpenOffice.org Impress) [.html]
jpg - Joint Photographic Experts Group [.jpg]
met - OS/2 Metafile [.met]
odd - OpenDocument Drawing (Impress) [.odd]
odg - OpenOffice.org 1.0 Drawing (OpenOffice.org Impress) [.odg]
odp - OpenDocument Presentation [.odp]
otp - OpenDocument Presentation Template [.otp]
pbm - Portable Bitmap [.pbm]
pct - Mac Pict [.pct]
pdf - Portable Document Format [.pdf]
pgm - Portable Graymap [.pgm]
png - Portable Network Graphic [.png]
pot - Microsoft PowerPoint 97/2000/XP Template [.pot]
ppm - Portable Pixelmap [.ppm]
ppt - Microsoft PowerPoint 97/2000/XP [.ppt]
pwp - PlaceWare [.pwp]
ras - Sun Raster Image [.ras]
sda - StarDraw 5.0 (OpenOffice.org Impress) [.sda]
sdd - StarImpress 5.0 [.sdd]
sdd3 - StarDraw 3.0 (OpenOffice.org Impress) [.sdd]
sdd4 - StarImpress 4.0 [.sdd]
sti - OpenOffice.org 1.0 Presentation Template [.sti]
stp - OpenDocument Presentation Template [.stp]
svg - Scalable Vector Graphics [.svg]
svm - StarView Metafile [.svm]
swf - Macromedia Flash (SWF) [.swf]
sxi - OpenOffice.org 1.0 Presentation [.sxi]
tiff - Tagged Image File Format [.tiff]
vor - StarImpress 5.0 Template [.vor]
vor3 - StarDraw 3.0 Template (OpenOffice.org Impress) [.vor]
vor4 - StarImpress 4.0 Template [.vor]
vor5 - StarDraw 5.0 Template (OpenOffice.org Impress) [.vor]
wmf - Windows Metafile [.wmf]
xhtml - XHTML [.xml]
xpm - X PixMap [.xpm]
电子表格:
csv - Text CSV [.csv]
dbf - dBase [.dbf]
dif - Data Interchange Format [.dif]
html - HTML Document (OpenOffice.org Calc) [.html]
ods - Open Document Spreadsheet [.ods]
ooxml - Microsoft Excel 2003 XML [.xml]
pdf - Portable Document Format [.pdf]
pts - OpenDocument Spreadsheet Template [.pts]
pxl - Pocket Excel [.pxl]
sdc - StarCalc 5.0 [.sdc]
sdc4 - StarCalc 4.0 [.sdc]
sdc3 - StarCalc 3.0 [.sdc]
slk - SYLK [.slk]
stc - OpenOffice.org 1.0 Spreadsheet Template [.stc]
sxc - OpenOffice.org 1.0 Spreadsheet [.sxc]
vor3 - StarCalc 3.0 Template [.vor]
vor4 - StarCalc 4.0 Template [.vor]
vor - StarCalc 5.0 Template [.vor]
xhtml - XHTML [.xhtml]
xls - Microsoft Excel 97/2000/XP [.xls]
xls5 - Microsoft Excel 5.0 [.xls]
xls95 - Microsoft Excel 95 [.xls]
xlt - Microsoft Excel 97/2000/XP Template [.xlt]
xlt5 - Microsoft Excel 5.0 Template [.xlt]
xlt95 - Microsoft Excel 95 Template [.xlt]
相关资料
1. ↑ http://dag.wieers.com/home-made/unoconv/
取自"http://www.linux-wiki.cn/index.php/
%E6%96%87%E6%A1%A3%E6%A0%BC%E5%BC%8F%E6%89%B9%E9%87%8F%E8%BD%AC%E6%8D%A2%28doc%2Ctxt%2Cpdf%E7%AD%89%29
"
Friday, December 26, 2008
郁闷
今天是个极其郁闷的一天。
稿子基本已经改好,我觉得今天就可以收工了。
but
下午,手贱
真是太贱了。要清理系统文件
我的稿子文档是从另一个用户目录中链接过来的
我却将那个用户的目录基本清空,而且是分几次清空的
这使得数据恢复都变为不可能的任务
没办法,
找旧稿子
从台式机的部分备份里找回一部分
从一个备份的ftp站点找回一部分
从邮件的发件箱里找回一部分
但这只是旧稿
这几天白辛苦了
血的教训,备份真的是很重要的一项工作
我这次备份时,实际的备份文件也在另一个用户目录
备份做得极其详细,每次发一回稿子,就做一回备份,
现在
Gone with the wind
稿子基本已经改好,我觉得今天就可以收工了。
but
下午,手贱
真是太贱了。要清理系统文件
我的稿子文档是从另一个用户目录中链接过来的
我却将那个用户的目录基本清空,而且是分几次清空的
这使得数据恢复都变为不可能的任务
没办法,
找旧稿子
从台式机的部分备份里找回一部分
从一个备份的ftp站点找回一部分
从邮件的发件箱里找回一部分
但这只是旧稿
这几天白辛苦了
血的教训,备份真的是很重要的一项工作
我这次备份时,实际的备份文件也在另一个用户目录
备份做得极其详细,每次发一回稿子,就做一回备份,
现在
Gone with the wind
Saturday, December 20, 2008
Audacious 无法播放mp3的处理方法
前两天升级的内核,有许多天没有听过音乐,昨天打开Audacious突然发现无法播 放任何音乐了。安装了解码器,重装了Audacious都无效。
最后,删除了~/.config/audacious目录,然后重新打开Audacious就又可以了。不 知道是怎么搞的。
最后,删除了~/.config/audacious目录,然后重新打开Audacious就又可以了。不 知道是怎么搞的。
Friday, December 19, 2008
linux secret disk
看到一篇不错的对系统进行加密的文章,进行了实践,发现确实不错,
所以修改了其中的部分错误,然后特意转一下。
///////////
原文似乎在51CTO站
////////////
linux之加密文件系统
【导读】本文将详细介绍利用dm-crypt来创建加密文件系统的方法
。与其它创建加密文件系统的方法相比,dm-crypt系统有着无可比
拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面
也很广,能够运行在各种块设备上,即使这些设备使用了RAID和
LVM也毫无障碍。
当Ubuntu Linux使用加密文件系统后,数据的安全能得到很好的保
护。在这种情况下,即使把我们的机器送给黑客,只要他们没有密
钥,黑客看到的数据只会是一堆乱码,毫无利用价值可言。
本文将详细介绍利用dm-crypt来创建加密文件系统的方法。与其它
创建加密文件系统的方法相比,dm-crypt系统有着无可比拟的优越
性:它的速度更快,易用性更强。除此之外,它的适用面也很广,
能够运行在各种块设备上,即使这些设备使用了RAID和 LVM也毫无
障碍。dm-crypt系统之所以具有这些优点,主要得益于该技术是建
立在2.6版本内核的device-mapper特性之上的。device-mapper是设
计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法
,以方便开发人员实现镜像、快照、级联和加密等处理。此外,
dm-crypt使用了内核密码应用编程接口实现了透明的加密,并且兼
容cryptloop系统。
一、配置内核
dm-crypt利用内核的密码应用编程接口来完成密码操作。一般说来
,内核通常将各种加密程序以模块的形式加载。对于256-bit AES来
说,其安全强度已经非常之高,即便用来保护绝密级的数据也足够
了。因此本文中我们使用256-bit AES密码,为了保证您的内核已经
加载AES密码模块,请利用下列命令进行检查:
$ cat /proc/crypto如果看到类似下面的输出的话,说明AES模块已
经加载:
name : aes
module : aes
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
否则,我们可以利用modprobe来手工加载AES模块,命令如下所示:
$ sudo modprobe aes
接下来安装dmsetup软件包,该软件包含有配置device-mapper所需
的工具:
$ sudo apt-get install dmsetup cryptsetup
为检查dmsetup软件包是否已经建立了设备映象程序,键入下列命令:
$ ls -l /dev/mapper/control
接下来加载dm-crypt内核模块:
$ sudo modprobe dm-cryptdm-crypt
加载后,它会用evice-mapper 自动注册。如果再次检验的话,device-mapper已能识别dm-crypt, 并且把crypt 添加为可用的对象:
$ sudo dmsetup targets如果一切顺利,现在你应该看到crypt的下
列输出:
crypt v1.1.0
striped v1.0.2
linear v1.0.1
error v1.0.1这说明我们的系统已经为装载加密设备做
好了准备。下面,我们先来建立一个加密设备。
二、建立加密设备
要创建作为加密设备装载的文件系统,有两种选择:一是建立一个
磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种
情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。
1.建立回送磁盘映象
如果你没有用来加密的物理设备(比如存储棒或另外的磁盘分区)
,作为替换,你可以利用命令dd来建立一个空磁盘映象,然后将该
映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍
:
$ dd if=/dev/zero of=~/secret.img bs=1M count=100这里我们新
建了一个大小为100 MB的磁盘映象,该映象名字为secret.img。要
想改变其大小,可以改变count的值。
接下来,我们利用losetup命令将该映象和一个回送设备联系起来:
$ sudo losetup /dev/loop0 ~/secret.img现在,我们已经得到了
一个虚拟的块设备,其位于/dev/loop0,并且我们能够如同使用其
它设备那样来使用它。
2.设置块设备
准备好了物理块设备(例如/dev/sda1),或者是虚拟块设备(像前
面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑
卷加载),我们就可以进行块设备配置了。
下面我们使用cryptsetup来建立逻辑卷,并将其与块设备捆绑:
$ sudo cryptsetup -y create myEncryptedFilesystem
/dev/DEVICENAME其中,myEncryptedFilesystem 是新建的逻辑卷的
名称。并且最后一个参数必须是将用作加密卷的块设备。所以,如
果你要使用前面建立的回送映象作为虚拟块设备的话,应当运行以
下命令:
$ sudo cryptsetup -y create myEncryptedFilesystem /dev/
loop/0无论是使用物理块设备还是虚拟块设备,程序都会要你输入
逻辑卷的口令,-y的作用在于要你输入两次口令以确保无误。这一
点很重要,因为一旦口令弄错,你就会把自己的数据锁住,这时谁
也帮不了您了!
为了确认逻辑卷是否已经建立,可以使用下列命令进行检查一下:
$ sudo dmsetup ls只要该命令列出了逻辑卷,就说明已经成功建立
了逻辑卷。不过根据机器的不同,设备号可能有所不同:
myEncryptedFilesystem (221, 0)device-mapper会把它的虚拟设
备装载到/dev/mapper下面,所以,你的虚拟块设备应该是/dev/
mapper/myEncryptedFilesystem ,尽管用起来它和其它块设备没什
么不同,实际上它却是经过透明加密的。
如同物理设备一样,我们也可以在虚拟设备上创建文件系统:
$ sudo mkfs.ext3 /dev/mapper/myEncryptedFilesystem现在为新
的虚拟块设备建立一个装载点,然后将其装载。命令如下所示:
$ sudo mkdir /mnt/myEncryptedFilesystem
$ sudo mount /dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem我们能够利用下面的命令查看其装载后的情
况:
$ df -h /mnt/myEncryptedFilesystem
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myEncryptedFilesystem 97M 2.1M 90M 2%
/mnt/myEncryptedFilesystem
很好,我们看到装载的文件系统,尽管看起来与其它文件系统无异
,但实际上写到/mnt/myEncryptedFilesystem /下的所有数据,在
数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从
该处读取的数据都是些密文。
三、卸载方法
要卸载加密文件系统,和平常的方法没什么两样:
$ sudo umount /mnt/myEncryptedFilesystem即便已经卸载了块设
备,在dm-crypt中仍然视为一个虚拟设备。如若不信,你可以再次
运行命令sudo dmsetup ls来验证一下,你会看到该设备依然会被列
出。因为dm-crypt缓存了口令,所以机器上的其它用户不需要知道
口令就能重新装载该设备。为了避免这种情况发生,你必须在卸载
设备后从dm-crypt中显式的删除该设备。命令具体如下所示:
$ sudo cryptsetup remove myEncryptedFilesystem此后,它将彻
底清除,要想再次装载的话,你必须再次输入口令。为了简化该过
程,我们可以利用一个简单的脚本来完成卸载和清除工作:
#!/bin/sh
umount /mnt/myEncryptedFilesystem
cryptsetup remove myEncryptedFilesystem四、重新装载
在卸载加密设备后,我们很可能还需作为普通用户来装载它们。为
了简化该工作,我们需要在/etc/fstab文件中添加下列内容:
/dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem ext3 noauto,noatime 0 0此外,我们也
可以通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工
作,方法是用实际设备的名称或文件路径来替换/dev/DEVICENAME:
#!/bin/sh
cryptsetup create myEncryptedFilesystem /dev/DEVICENAME
mount /dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem如果你使用的是回送设备的话,你还能利用
脚本来捆绑设备:
#!/bin/sh
losetup /dev/loop/0 ~/secret.img
cryptsetup create myEncryptedFilesystem /dev/loop/0
mount /dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem如果你收到消息"ioctl: LOOP_SET_FD:
Device or resource busy",这说明回送设备很可能仍然装载在系
统上。我们可以利用sudo losetup -d /dev/loop/0命令将其删除。
五、加密主目录
如果配置了PAM(Pluggable Authentication Modules,即可插入式
鉴别模块)子系统在您登录时装载主目录的话,你甚至还能加密整
个主目录。因为libpam-mount模块允许PAM在用户登录时自动装载任
意设备,所以我们要连同openssl一起来安装该模块。命令如下所示
:
$ sudo apt-get install libpam-mount openssl接下来,编辑文件
/etc/pam.d/common-auth,在其末尾添加下列一行:
auth optional pam_mount.so use_first_pass然后在文
件/etc/pam.d/common-session末尾添加下列一行内容:
session optional pam_mount.so
现在,我们来设置PAM,告诉它需要装载哪些卷、以及装载位置。对
本例而言,假设用户名是Ian,要用到的设备是/dev/sda1,要添加
到/etc/security/pam_mount.conf文件中的内容如下所示:
volume Ian crypt - /dev/sda1 /home/Ian cipher=aes
aes-256-ecb /home/Ian.key如果想使用磁盘映象,你需要在此规定
回送设备(比如/dev/loop/0),并确保在Ian登录之前系统已经运
行losetup。为此,你可以将losetup /dev/loop/0 /home/
secret.img放入/etc/rc.local文件中。因为该卷被加密,所以PAM
需要密钥来装载卷。最后的参数用来告诉PAM密钥在/home/Ian.key
文件中,为此,通过使用OpenSSL来加密你的口令来建立密钥文件:
$ sudo sh -c "echo
'
YOUR PASSPHRASE
'
| openssl aes-256-ecb >
/home/Ian.key"这时,提示你输入密码。注意,这里的口令必需和
想要的用户登录密码一致。原因是当你登录时,PAM需要你提供这个
密码,用以加密你的密钥文件,然后根据包含在密钥文件中的口令
用dm-crypt装载你的主目录。
需要注意的是,这样做会把你的口令以明文的形式暴露在.history
文件中,所以要及时利用命令history -c清楚你的历史记录。此外
,要想避免把口令存放在加密的密钥文件中的话,可以让创建加密
文件系统的口令和登录口令完全一致。这样,在身份认证时,PAM只
要把你的密码传给dm-crypt就可以了,而不必从密钥文件中抽取密
码。为此,你可以在/etc/security/pam_mount.conf文件中使用下
面的命令行:
volume Ian crypt - /dev/sda1 /home/Ian cipher=aes - -最后,
为了保证在退出系统时自动卸载加密主目录,请编辑/etc/
login.defs文件使得CLOSE_SESSIONS项配置如下:
CLOSE_SESSIONS yes
六、小结
数据加密是一种强而有力的安全手段,它能在各种环境下很好的保
护数据的机密性。而本文介绍的Ubuntu Linux 下的加密文件系统就
是一种非常有用的数据加密保护方式,相信它能够在保护数据机密
性相方面对您有所帮助。
所以修改了其中的部分错误,然后特意转一下。
///////////
原文似乎在51CTO站
////////////
linux之加密文件系统
【导读】本文将详细介绍利用dm-crypt来创建加密文件系统的方法
。与其它创建加密文件系统的方法相比,dm-crypt系统有着无可比
拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面
也很广,能够运行在各种块设备上,即使这些设备使用了RAID和
LVM也毫无障碍。
当Ubuntu Linux使用加密文件系统后,数据的安全能得到很好的保
护。在这种情况下,即使把我们的机器送给黑客,只要他们没有密
钥,黑客看到的数据只会是一堆乱码,毫无利用价值可言。
本文将详细介绍利用dm-crypt来创建加密文件系统的方法。与其它
创建加密文件系统的方法相比,dm-crypt系统有着无可比拟的优越
性:它的速度更快,易用性更强。除此之外,它的适用面也很广,
能够运行在各种块设备上,即使这些设备使用了RAID和 LVM也毫无
障碍。dm-crypt系统之所以具有这些优点,主要得益于该技术是建
立在2.6版本内核的device-mapper特性之上的。device-mapper是设
计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法
,以方便开发人员实现镜像、快照、级联和加密等处理。此外,
dm-crypt使用了内核密码应用编程接口实现了透明的加密,并且兼
容cryptloop系统。
一、配置内核
dm-crypt利用内核的密码应用编程接口来完成密码操作。一般说来
,内核通常将各种加密程序以模块的形式加载。对于256-bit AES来
说,其安全强度已经非常之高,即便用来保护绝密级的数据也足够
了。因此本文中我们使用256-bit AES密码,为了保证您的内核已经
加载AES密码模块,请利用下列命令进行检查:
$ cat /proc/crypto如果看到类似下面的输出的话,说明AES模块已
经加载:
name : aes
module : aes
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
否则,我们可以利用modprobe来手工加载AES模块,命令如下所示:
$ sudo modprobe aes
接下来安装dmsetup软件包,该软件包含有配置device-mapper所需
的工具:
$ sudo apt-get install dmsetup cryptsetup
为检查dmsetup软件包是否已经建立了设备映象程序,键入下列命令:
$ ls -l /dev/mapper/control
接下来加载dm-crypt内核模块:
$ sudo modprobe dm-cryptdm-crypt
加载后,它会用evice-mapper 自动注册。如果再次检验的话,device-mapper已能识别dm-crypt, 并且把crypt 添加为可用的对象:
$ sudo dmsetup targets如果一切顺利,现在你应该看到crypt的下
列输出:
crypt v1.1.0
striped v1.0.2
linear v1.0.1
error v1.0.1这说明我们的系统已经为装载加密设备做
好了准备。下面,我们先来建立一个加密设备。
二、建立加密设备
要创建作为加密设备装载的文件系统,有两种选择:一是建立一个
磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种
情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。
1.建立回送磁盘映象
如果你没有用来加密的物理设备(比如存储棒或另外的磁盘分区)
,作为替换,你可以利用命令dd来建立一个空磁盘映象,然后将该
映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍
:
$ dd if=/dev/zero of=~/secret.img bs=1M count=100这里我们新
建了一个大小为100 MB的磁盘映象,该映象名字为secret.img。要
想改变其大小,可以改变count的值。
接下来,我们利用losetup命令将该映象和一个回送设备联系起来:
$ sudo losetup /dev/loop0 ~/secret.img现在,我们已经得到了
一个虚拟的块设备,其位于/dev/loop0,并且我们能够如同使用其
它设备那样来使用它。
2.设置块设备
准备好了物理块设备(例如/dev/sda1),或者是虚拟块设备(像前
面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑
卷加载),我们就可以进行块设备配置了。
下面我们使用cryptsetup来建立逻辑卷,并将其与块设备捆绑:
$ sudo cryptsetup -y create myEncryptedFilesystem
/dev/DEVICENAME其中,myEncryptedFilesystem 是新建的逻辑卷的
名称。并且最后一个参数必须是将用作加密卷的块设备。所以,如
果你要使用前面建立的回送映象作为虚拟块设备的话,应当运行以
下命令:
$ sudo cryptsetup -y create myEncryptedFilesystem /dev/
loop/0无论是使用物理块设备还是虚拟块设备,程序都会要你输入
逻辑卷的口令,-y的作用在于要你输入两次口令以确保无误。这一
点很重要,因为一旦口令弄错,你就会把自己的数据锁住,这时谁
也帮不了您了!
为了确认逻辑卷是否已经建立,可以使用下列命令进行检查一下:
$ sudo dmsetup ls只要该命令列出了逻辑卷,就说明已经成功建立
了逻辑卷。不过根据机器的不同,设备号可能有所不同:
myEncryptedFilesystem (221, 0)device-mapper会把它的虚拟设
备装载到/dev/mapper下面,所以,你的虚拟块设备应该是/dev/
mapper/myEncryptedFilesystem ,尽管用起来它和其它块设备没什
么不同,实际上它却是经过透明加密的。
如同物理设备一样,我们也可以在虚拟设备上创建文件系统:
$ sudo mkfs.ext3 /dev/mapper/myEncryptedFilesystem现在为新
的虚拟块设备建立一个装载点,然后将其装载。命令如下所示:
$ sudo mkdir /mnt/myEncryptedFilesystem
$ sudo mount /dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem我们能够利用下面的命令查看其装载后的情
况:
$ df -h /mnt/myEncryptedFilesystem
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myEncryptedFilesystem 97M 2.1M 90M 2%
/mnt/myEncryptedFilesystem
很好,我们看到装载的文件系统,尽管看起来与其它文件系统无异
,但实际上写到/mnt/myEncryptedFilesystem /下的所有数据,在
数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从
该处读取的数据都是些密文。
三、卸载方法
要卸载加密文件系统,和平常的方法没什么两样:
$ sudo umount /mnt/myEncryptedFilesystem即便已经卸载了块设
备,在dm-crypt中仍然视为一个虚拟设备。如若不信,你可以再次
运行命令sudo dmsetup ls来验证一下,你会看到该设备依然会被列
出。因为dm-crypt缓存了口令,所以机器上的其它用户不需要知道
口令就能重新装载该设备。为了避免这种情况发生,你必须在卸载
设备后从dm-crypt中显式的删除该设备。命令具体如下所示:
$ sudo cryptsetup remove myEncryptedFilesystem此后,它将彻
底清除,要想再次装载的话,你必须再次输入口令。为了简化该过
程,我们可以利用一个简单的脚本来完成卸载和清除工作:
#!/bin/sh
umount /mnt/myEncryptedFilesystem
cryptsetup remove myEncryptedFilesystem四、重新装载
在卸载加密设备后,我们很可能还需作为普通用户来装载它们。为
了简化该工作,我们需要在/etc/fstab文件中添加下列内容:
/dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem ext3 noauto,noatime 0 0此外,我们也
可以通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工
作,方法是用实际设备的名称或文件路径来替换/dev/DEVICENAME:
#!/bin/sh
cryptsetup create myEncryptedFilesystem /dev/DEVICENAME
mount /dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem如果你使用的是回送设备的话,你还能利用
脚本来捆绑设备:
#!/bin/sh
losetup /dev/loop/0 ~/secret.img
cryptsetup create myEncryptedFilesystem /dev/loop/0
mount /dev/mapper/myEncryptedFilesystem /mnt/
myEncryptedFilesystem如果你收到消息"ioctl: LOOP_SET_FD:
Device or resource busy",这说明回送设备很可能仍然装载在系
统上。我们可以利用sudo losetup -d /dev/loop/0命令将其删除。
五、加密主目录
如果配置了PAM(Pluggable Authentication Modules,即可插入式
鉴别模块)子系统在您登录时装载主目录的话,你甚至还能加密整
个主目录。因为libpam-mount模块允许PAM在用户登录时自动装载任
意设备,所以我们要连同openssl一起来安装该模块。命令如下所示
:
$ sudo apt-get install libpam-mount openssl接下来,编辑文件
/etc/pam.d/common-auth,在其末尾添加下列一行:
auth optional pam_mount.so use_first_pass然后在文
件/etc/pam.d/common-session末尾添加下列一行内容:
session optional pam_mount.so
现在,我们来设置PAM,告诉它需要装载哪些卷、以及装载位置。对
本例而言,假设用户名是Ian,要用到的设备是/dev/sda1,要添加
到/etc/security/pam_mount.conf文件中的内容如下所示:
volume Ian crypt - /dev/sda1 /home/Ian cipher=aes
aes-256-ecb /home/Ian.key如果想使用磁盘映象,你需要在此规定
回送设备(比如/dev/loop/0),并确保在Ian登录之前系统已经运
行losetup。为此,你可以将losetup /dev/loop/0 /home/
secret.img放入/etc/rc.local文件中。因为该卷被加密,所以PAM
需要密钥来装载卷。最后的参数用来告诉PAM密钥在/home/Ian.key
文件中,为此,通过使用OpenSSL来加密你的口令来建立密钥文件:
$ sudo sh -c "echo
'
YOUR PASSPHRASE
'
| openssl aes-256-ecb >
/home/Ian.key"这时,提示你输入密码。注意,这里的口令必需和
想要的用户登录密码一致。原因是当你登录时,PAM需要你提供这个
密码,用以加密你的密钥文件,然后根据包含在密钥文件中的口令
用dm-crypt装载你的主目录。
需要注意的是,这样做会把你的口令以明文的形式暴露在.history
文件中,所以要及时利用命令history -c清楚你的历史记录。此外
,要想避免把口令存放在加密的密钥文件中的话,可以让创建加密
文件系统的口令和登录口令完全一致。这样,在身份认证时,PAM只
要把你的密码传给dm-crypt就可以了,而不必从密钥文件中抽取密
码。为此,你可以在/etc/security/pam_mount.conf文件中使用下
面的命令行:
volume Ian crypt - /dev/sda1 /home/Ian cipher=aes - -最后,
为了保证在退出系统时自动卸载加密主目录,请编辑/etc/
login.defs文件使得CLOSE_SESSIONS项配置如下:
CLOSE_SESSIONS yes
六、小结
数据加密是一种强而有力的安全手段,它能在各种环境下很好的保
护数据的机密性。而本文介绍的Ubuntu Linux 下的加密文件系统就
是一种非常有用的数据加密保护方式,相信它能够在保护数据机密
性相方面对您有所帮助。
Wednesday, December 17, 2008
Subscribe to:
Posts (Atom)