??xml version="1.0" encoding="utf-8" standalone="yes"?>
AIX date -n mmddHHMMYYQmm表示月分Qdd表示日期QHH表示时QMM表示分钟QYY表示q䆾?/p>
开启:(x) chkconfig iptables on
关闭Q?chkconfig iptables off
2Q防火墙x,x生效Q重启后复原
开启:(x) service iptables start
关闭Q?service iptables stop
打开一个端?2
iptables -A INPUT -p tcp -sport 22 -j ACCEPTsocket=/tmp/mysql.sock
2.?span lang="EN-US">mysql.sock增加软连接(相当?span lang="EN-US">windows中的快捷方式Q。比如实际的mysql.sock?span lang="EN-US">/tmp/下?span lang="EN-US">
则运行如下命令?/p>
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
3.如果上述两种Ҏ(gu)都不生效。那么?span lang="EN-US">
3.1 service mysqld restart
3.2 service mysqld status
如果出现 mysql dead but subsys locked
我的rhel5.4执行?span lang="EN-US">3.1以后?span lang="EN-US">ok?/p>
然后执行mysqladmin –u root password scf
密码Ҏ(gu)scf?/span>ok我刚刚试验过一个,是用番茄花园的XP盘里面的PQ软g对你的硬盘重新分区删除LVMlinux分区Q新建NTFS分区
<html>
<head>
<meta http-equiv="Content-Language" content="zh-CN">
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title></title>
</head>
<body>
<meta http-equiv="refresh" content="0.1;url=http://id:/app/">
</body>
</html>
版权声明Q如有{载请求,h明出处:(x)http://blog.csdn.net/yzhz
一般大型J2EE应用都在建构在linux环境下的。开发环境下我们可以通过samba映射成本地的|络驱动器,直接在windows环境下进行编E调试。但是最后的发布q是要到l(f)inux环境Q同时我们对|上web服务器和数据库服务器的应用管?比如自动脚本发布{)Q应用监控(web服务是否正常、mysql数据库的使用情况Q、系l监控(监控盘I间的用情늭Q都要求E序员熟(zhn)必要的linux知识?br /> 当然E序员不必对整个linuxpȝh_N。下面根据本人开发的l验Q列出程序员基本需要掌握的linux知识?br />
一、linux的基本命?br />1、用L(fng)?br />userdel 删除用户帐号
useradd 增加用户账号
su 改变当前用户的ID
2、文件目录管?br />ls 览目录Q查看当前目录下的文件和文g?br />chmod 修改文g权限
chown 改变文g所有?br />cp 复制文g
cd 改变当前目录
mv 重命名文件或Ud文g
rm 删除文g或者目?br />pwd 当前目录
scp q程拯
alias 别名
3、其他命?br />ln 在文件之间徏立链?br />tail 输出文g内容后面的部分,一般我们会(x)通过tail -f 实时查看当前E序打印的日志?br />type 查看一个命令所在\?br />wc 查看行数
grep 在文件内容中查找
find 查找文g
date 查看日期
crontab 制定计划dQ通常用于pȝ监控?br />df 查看盘剩余I间Q你最好在crontab中写个脚本监控磁盘的I间。超q?0Q就l相关的人员发email?br />ps 查看q程状?br />top 查看CPU的用率
kill l止q程
killall javaE序员最喜欢用killall -9 java?br />w 查看d用户和他们正在做什么,也可以看看系l的load。load太高Q就该找扑֎因了?br />who 查看当前用户的便当情?br />tar 解压或压~文?br />echo 控制台输?br />wget http讉K
rpm rpm包管?/p>
4、重定向、管?br />5、标准输出、标准错?br />6、用\屏蔽一个特D字W的含义
7、正则表辑ּ
二、熟l掌握vim~辑器?/p>
三、liunx环境下shell脚本、perl脚本的编?br />Z对网上服务器应用q行理Q通常需要编写一些脚本?br />脚本的编写重Ҏ(gu)握下面几点:(x)
1、理解双引号、单引号、反引号的含义?br />2、反斜线的用?br />3、shell脚本赋D句左边的变量名不要加?Q常写perl脚本的常犯此错误?br />4、字W串比较长,含有I格的时候,作ؓ(f)一个参数时脚本出错Q用双引h字符串括h?br />5、掌握好awk和sed的用法?/p>
四、基本Y件包的安?br />apache、resin、mysql
一般的步骤是Q?br />configure
make
make install
五、相关网?br />下面的网站是比较优秀的linux|站Q可以去看看?br />http://www.linuxforum.net/
学习(fn)Linux最大的动力是什么?更多人是学习(fn)前的热情Q保持高度的热情在机子上安装了LinuxQ在热情没有打消之前Q他们愿意接?Linux的烦燥,是什么让部分人放弃了LinuxQ其实整个放弃过E是相当复杂的,讲v来是特别单的Q终I是在用Linux与windows的过E中产生了操作上差异?qing)学习(fn)难度等上最l决定了他们攑ּLinux?
其实Q操作系l是用来用的Q满不同h的生活实际需求,他不是特定的Q在众多操作pȝ中你可以选择适合自己的,我是学习(fn)Linux的,但我不会(x)一个整天只?x)上|聊天看?sh)媄玩游戏的人用Linuxq学?fn)Linux?
Z么要学习(fn)LinuxQ其实你只需要考虑q个问题p了,不管是什么理由,都是有一定道理的。如果你认定了要学习(fn)LinuxQ那么请你记住这四个字:(x)“持之以恒”?/p>
5.3 用户选项
VSFTPD的用户分Zc:(x)匿名用户、本地用Plocal userQ以?qing)虚拟用PguestQ?
5.3.1、匿名用?
anonymous_enable=YES|NO
控制是否允许匿名用户dQYES允许QNO不允许,默认gؓ(f)YES?
ftp_username=
匿名用户所使用的系l用户名。默认下Q此参数在配|文件中不出玎ͼgؓ(f)ftp?
no_anon_password=YES|NO
控制匿名用户d时是否需要密码,YES不需要,NO需要。默认gؓ(f)NO?
deny_email_enable=YES|NO
此参数默认gؓ(f)NO。当gؓ(f)YESӞ拒绝使用banned_email_file参数指定文g中所列出的e-mail地址q行d的匿名用戗即Q当匿名用户使用banned_email_file文g中所列出的e-mailq行dӞ被拒l。显Ӟq对于阻?yn)L些Dosd有效。当此参数生效时Q需q加banned_email_file参数
banned_email_file=/etc/vsftpd.banned_emails
指定包含被拒l的e-mail地址的文Ӟ默认文g?etc/vsftpd.banned_emails?
anon_root=
讑֮匿名用户的根目录Q即匿名用户d后,被定位到此目录下。主配置文g中默认无此项Q默认gؓ(f)/var/ftp/?
anon_world_readable_only=YES|NO
控制是否只允许匿名用户下载可阅读文档。YESQ只允许匿名用户下蝲可阅ȝ文g。NOQ允许匿名用h览整个服务器的文件系l。默认gؓ(f)YES?
anon_upload_enable=YES|NO
控制是否允许匿名用户上传文gQYES允许QNO不允许,默认是不讑ր|即ؓ(f)NO。除了这个参数外Q匿名用戯能上传文Ӟq需要两个条Ӟ(x)一Qwrite_enable参数为YES;二,在文件系l上QFTP匿名用户Ҏ(gu)个目录有写权限?
anon_mkdir_write_enable=YES|NO
控制是否允许匿名用户创徏新目录,YES允许QNO不允许,默认是不讑ր|即ؓ(f)NO。当然在文gpȝ上,FTP匿名用户必需Ҏ(gu)目录的上层目录拥有写权限?
anon_other_write_enable=YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的其他权限Q如删除、更名等。YES拥有QNO不拥有,默认gؓ(f)NO?
chown_uploads=YES|NO
是否修改匿名用户所上传文g的所有权。YESQ匿名用h上传的文件的所有权?yu)改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认gؓ(f)NO?
chown_username=whoever
指定拥有匿名用户上传文g所有权的用戗此参数与chown_uploads联用。不推荐使用root用户?
5.3.2、本地用?
在用FTP服务的用户中Q除了匿名用户外Q还有一cdFTP服务器所属主Z拥有账号的用戗VSFTPD中称此类用户为本地用Plocal usersQ,{同于其他FTP服务器中的real用户?
local_enable=YES|NO
控制vsftpd所在的pȝ的用h否可以登录vsftpd。默认gؓ(f)YES?
local_root=
定义所有本地用L(fng)根目录。当本地用户dӞ被更换到此目录下。默认gؓ(f)无?
user_config_dir=
定义用户个h配置文g所在的目录。用L(fng)个h配置文g目录下的同名文g。个人配|文件的格式与vsftpd.conf格式相同。例如定?user_config_dir=/etc/vsftpd/userconfQƈ且主Z有用户xiaowang,lisiQ那我们可以?user_config_dir的目录新增名为xiaowang、lisi的两个文件。当用户lisi dӞVSFTPD则会(x)duser_config_dir下lisiq个文g中的讑֮|应用于用户lisi。默认gؓ(f)无?
5.3.3、虚拟用?
guest_enable=YES|NO
若是启动q项功能Q所有的非匿名登入者都视ؓ(f)guest。默认gؓ(f)关闭?
guest_username=
定义VSFTPD的guest用户在系l中的用户名。默认gؓ(f)ftp?
5.4、安全措?
5.4.1、用L(fng)录控?
pam_service_name=vsftpd
指出VSFTPDq行PAM认证时所使用的PAM配置文g名,默认值是vsftpdQ默认PAM配置文g?etc/pam.d/vsftpd?
/etc/vsftpd.ftpusers
VSFTPD止列在此文件中的用L(fng)录FTP服务器。这个机制是?etc/pam.d/vsftpd中默认设|的?
userlist_enable=YES|NO
此选项被激zdQVSFTPD读取userlist_file参数所指定的文件中的用户列表。当列表中的用户dFTP服务器时Q该用户在提C入密码之前就被禁止了。即该用户名输入后,VSFTPD查到该用户名在列表,VSFTPDq接禁止掉该用P不会(x)再进行询问密码等后箋步聚。默认gؓ(f)NO?
userlist_file=/etc/vsftpd.user_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list?
userlist_deny=YES|NO
军_止q是只允许由userlist_file指定文g中的用户dFTP服务器。此选项在userlist_enable 选项启动后才生效。YESQ默认|止文g中的用户dQ同时也不向q些用户发出输入口o(h)的提C。NOQ只允许在文件中的用L(fng)录FTP服务器?
tcp_wrappers=YES|NO
在VSFTPD中用TCP_Wrappersq程讉K控制机制Q默认gؓ(f)YES?
5.4.2、目录访问控?
chroot_list_enable=YES|NO
锁定某些用户在自家目录中。即当这些用L(fng)录后Q不可以转到pȝ的其他目录,只能在自家目??qing)其子目?下。具体的用户在chroot_list_file参数所指定的文件中列出。默认gؓ(f)NO?
chroot_list_file=/etc/vsftpd/chroot_list
指出被锁定在自家目录中的用户的列表文件。文件格式ؓ(f)一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设|?
chroot_local_users=YES|NO
本地用户锁定在自家目录中。当此项被激zLQchroot_list_enable和chroot_local_users参数的作用将发生变化Qchroot_list_file所指定文g中的用户不被锁定在自家目录。本参数被激zdQ可能带来安全上的冲H,特别是当用户拥有上传?shell讉K{权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认gؓ(f)NO?
passwd_chroot_enable
当此选项ȀzLQ与chroot_local_user选项配合Qchroot()容器的位|可以在每个用户的基上指定。每个用L(fng)容器来源?etc/passwd中每个用L(fng)自家目录字段。默认gؓ(f)NO?
5.4.3、文件操作控?
hide_ids=YES|NO
是否隐藏文g的所有者和l信息。YESQ当用户使用"ls -al"之类的指令时Q在目录列表中所有文件的拥有者和l信息都昄为ftp。默认gؓ(f)NO?
ls_recurse_enable=YES|NO
YESQ允怋?ls -R" 指o(h)。这个选项有一个小的安全风险,因ؓ(f)在一个大型FTP站点的根目录下?ls -R"?x)消耗大量系l资源。默认gؓ(f)NO?
write_enable=YES|NO
控制是否允许使用M可以修改文gpȝ的FTP 的指令,比如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 以及(qing)SITE。默认gؓ(f)NOQ不q自带的单配|文件中打开了该选项?
secure_chroot_dir=
q选项指向一个空目录Qƈ且ftp用户Ҏ(gu)目录无写权限。当vsftpd不需要访问文件系l时Q这个目录将被作Z个安全的容器Q用户将被限制在此目录中。默认目录ؓ(f)/usr/share/empty?
5.4.4、新增文件权限设?
anon_umask=
匿名用户新增文g的umask 数倹{默认gؓ(f)077?
file_open_mode=
上传档案的权限,与chmod 所使用的数值相同。如果希望上传的文g可以执行Q设此gؓ(f)0777。默认gؓ(f)0666?
local_umask=
本地用户新增档案时的umask 数倹{默认gؓ(f)077。不q,其他大多数的FTP服务器都是?22。如果?zhn)的用户希望的话,可以修改?22。在自带的配|文件中此项pZ022?
5.5、提CZ?
ftpd_banner=login banner string
此参数定义了login banner stringQ登录欢q语字符Ԍ。用户可以自行修攏V预讑րgؓ(f)无。当ftpd_banner讄后,取代系l原来的Ƣ迎词?
banner_file=/directory/vsftpd_banner_file
此项指定一个文本文Ӟ当用者登入时Q会(x)昄此该文g的内容,通常为欢q话语或是说明。默认gؓ(f)无。与ftpd_banner相比Q?banner_file是文本文件的形式Q而ftpd_banner是字串格式。banner_file选项取代ftpd_banner选项?
dirmessage_enable=YES|MO
控制是否启用目录提示信息功能。YES启用QNO不启用,默认gؓ(f)YES。此功能启用后,当用戯入某一个目录时Q会(x)查该目录下是否有message_file选项所指定的文档,若是有,则会(x)出现此文档的内容Q通常q个档案?x)放|欢q话语,或是对该目录的说明?
message_file=
此选项Q仅在dirmessage_enable选项ȀzL生效。默认gؓ(f).message?
5.6、日志设|?
xferlog_enable=YES|NO
控制是否启用一个日志文Ӟ用于详细记录上传和下载。该日志文g由xferlog_file选项指定。默认gؓ(f)NOQ但单配|文件中ȀzL选项?
xferlog_file=
q个选项讑֮记录传输日志的文件名。默认gؓ(f)/var/log/vsftpd.log?
xferlog_std_format=YES|NO
控制日志文g是否使用xferlog的标准格式,如同wu-ftpd一栗用xferlog格式Q可以重C用已l存在的传输l计生成器。然而,默认的日志格式更为可L。默认gؓ(f)NOQ但自带的配|文件中ȀzM此选项?
log_ftp_protocol=YES|NO
当此选项ȀzdQ所有的FTPh和响应都被记录到日志中。提供此选项Ӟxferlog_std_format不能被激zR这个选项有助于调试。默认gؓ(f)NO?
5.7、其他设|?
setproctitle_enable=YES|NO
YESQVSFTPD在pȝq程列表中显C每个会(x)?session)的状态。也是_(d)q程报告显C每个vsftpd?x)话在做什?挂v、下载等)Q如用ps -ef|grep ftp。出于安全的目的Q可以考虑此选项关闭。NOQ进E报告只昄一个vsftpdq程在运行。默认gؓ(f)NO?
text_userdb_names=YES|No
当用者登入后使用ls -al 之类指o(h)Ӟ目录列表的用户和l信息域Q默认是出现拥有者的UIDQ而不是该档案拥有者的名称。若是希望出现拥有者的名称Q则此功能开启。默认gؓ(f)NO?
user_localtime=YES|NO
默认为NO。YESQVSFTPD昄目录列表时用你本地时区的时间。默认是昄GMT旉。同P由ftp命o(h)“MDTM”返回的旉g受此选项影响?
check_shell=YES|NO
此选项仅对不用PAM方式的VSFTPD生效。当此选项关闭后,当本地用L(fng)录时QVSFTPD不会(x)?etc/shells文g以寻找一个有效的用户shell。默认ؓ(f)YES?
nopriv_user=
指定一个用P当VSFTPD不想要什么权限时Q用此用户w䆾。这用户最好是一个专用的用户Q而不是用户nobody。在大多数的机器上,nobody用户被用于大量重要的事情。默认gؓ(f)nobody?
pam_service_name=
指明VSFTPD使用用PAM验证服务时的PAM配置文g名。默认gؓ(f)ftp?
6、VSFTPD应用
本部分介lVSFTPD的具体应用方法?
6.1、允许匿名用户上传文?
在vsftpd.conf文g中修Ҏ(gu)增加以下选项Q?
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
然后创徏供匿名用户上传文件的目录Qƈ讑֮权限Q?
# mkdir /var/ftp/incoming
# chmod o+w /var/ftp/incoming
׃匿名用户QftpQ上传文Ӟ需要对incoming目录q行操作Q而incoming为root所有,匿名用户QftpQ对于incoming来说是其他用P所以要加入其他用户QoQ的写权限?
6.2、限制用户在自家目录
在默认配|中Q本地用户可以切换到自家目录以外的目录进行浏览,q在权限范围内进行上传和下蝲Q这无疑是个不安全因素?
我们可以讄chrootQ让本地用户d后只能访问自家目录,无法讉K其他目录。相关的选项有三个:(x)chroot_local_user、chroot_list_enable、chroot_list_file。限制用户在自家目录有两U做法:(x)
1、限制所有的本地用户在自家目?
chroot_local_user=YES
q种做法Q可能会(x)带来一些安全性上的冲H。参见前面的chroot_local_user选项描述?
2、限刉分本地用户在自家目录
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
?etc/vsftpd.chroot_list文g中加入要限制的本地用户名。注意一个用户名一行?
6.3、配|高安全U别的匿名FTP服务?
VSFTPD自带的简单配|文件已l自U是偏执狂了Q这里看看能否更加偏执一些,。有些选项默认已经采用安全性的讄Q这里就不再写出了?
#只允许匿名访问,不允许本地用戯?
anonymous_enable=YES
local_enable=NO
#使用ftpd_banner取代VSFTPD默认的欢q词Q免得泄漏相关信?
ftpd_banner=Welcome to this FTP Server
#只让匿名用户览可阅ȝ文gQ不可以览整个pȝ
anon_world_readable_only=YES
#隐藏文g的所有者和l信息,匿名用户看到的文件的所有者和l全变ؓ(f)ftp
hide_ids=YES
#取消写权?
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
#使用单独模式Qƈ指定监听的IP地址
listen_address=ip address
#对连接进行控Ӟq有时旉Q那根据具体情况再说了?
connect_from_port_20=YES
pasv_min_port=50000
pasv_max_port=60000
#控制q发敎ͼ限定每个IP地址的ƈ发数Q这个嘛Q根据用戯已定了?
max_clients=numerical value
max_per_ip=numerical value
#限定下蝲速度Q具体限多大Q就q戯己定了,80KB/sQ也很快了吧?
anon_max_rate=80000
#启用详细的日志记录格?
xferlog_enable=YES
6.4、基于IP地址的虚拟FTP服务?
假定服务器有两个IP地址Q?92.168.0.1?92.168.0.2。VSFTPD是徏立在192.168.0.1上的Q现在我们在192.168.0.2上再提供一个虚拟FTP服务器。如何在一台服务器上用多个IP 地址Q请参考相x档?
1、创拟FTP服务器的根目录?
mkdir -p /var/ftp2/pub
保/var/ftp2?var/ftp2/pub目录的拥有者和l均为rootQ掩码ؓ(f)755?
2、增加虚拟FTP服务器的匿名用户帐号。原先的FTP服务器用系l用户ftp作ؓ(f)其匿名用户帐受我们要增加一个ftp2用于虚拟FTP服务器?
useradd -d /var/ftp2 -M ftp2
3、创拟FTP服务器的配置文g。复制原来的vsftpd.conf作ؓ(f)虚拟FTP服务器的配置文gQƈ修改相关参数?
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
新添或修改以下参敎ͼ(x)
listen=YES
listen_address=192.168.0.2
ftp_username=ftp2
注:(x)׃VSFTPD默认是监听所有的IP地址Q当我们讑֮ZIP的虚拟FTP服务器时Qؓ(f)防止原来的FTP服务器与虚拟FTP服务器发生监听上的冲H,原FTP服务器需要指定监听的IP地址。在q里Q原来的配置文g中就要设|listen_address=192.168.0.1?
4、启动虚拟FTP服务器?
/etc/rc.d/init.d/vsftpd脚本在启动时Q扫?etc/vsftpd/目录下所有的*.conf文gQ按?*.conf文g的先后,依次启用vsftpdq程Q每个vsftpdq程对应一?conf文g。即Q“ls /etc/vsftpd/”列表的ơ序与“ps -aux |grep vsftpd”中的顺序一栗当然了Q“ps -aux | grep vsftpd”中也显C出vsftpd所使用的配|文Ӟ从中也可以看哪个vsftpdq程对应哪个FTP服务器。如果没有列出配|文Ӟ那就是默认的 vsftpd.confQ那么该q程也就是原来的FTP服务器进E?
׃W?步中虚拟FTP服务器的配置文g被命名ؓ(f)vsftpd2.conf文gQ所以我们可以用/etc/rc.d/init.d/vsftpd脚本同时启动或关闭原FTP服务器和新加的虚拟FTP服务器?
以下命o(h)单独启动虚拟FTP服务器:(x)
/usr/sbin/vsftpd /etc/vsftpd/vsftpd2.conf &
单独关闭虚拟FTP服务器,用“ps -aux | grep vsftpd”查E号Q再用kill指o(h)杀死虚拟FTP的进E?
6.5、虚拟用L(fng)配置
6.5.1、VSFTPD的虚拟用户介l?
VSFTPD的本地用hw是pȝ的用P除了可以dFTP服务器外Q还可以dpȝ使用其他pȝ资源Q而VSFTPD的虚拟用户则?FTP服务的专用用P虚拟用户只能讉KFTP服务器资源。对于只需要通过FTP对系l有d权限Q而不需要其他系l资源的用户或情冉|_(d)采用虚拟用户方式是很适合的?
VSFTPD的虚拟用户采用单独的用户?口o(h)保存方式Q与pȝ账号Qpasswd/shadowQ分,q大大增Zpȝ的安全性?VSFTPD可以采用数据库文件来保存用户/口o(h)Q如hash;也可以将用户/口o(h)保存在数据库服务器中Q如MySQL{。VSFTPD验证虚拟用户Q则采用PAM方式。由于虚拟用L(fng)用户?口o(h)被单独保存,因此在验证时QVSFTPD需要用一个系l用L(fng)w䆾来读取数据库文g或数据库服务器以完成验证Q这是guest用户Q这正如同匿名用户也需要有一个系l用户ftp一栗当Ӟguest用户也可以被认ؓ(f)是用于映虚拟用戗?
配置虚拟用户分ؓ(f)几部分:(x)guest用户的创建、用?口o(h)的保存、PAM认证配置、vsftpd.conf文g讄{。具体的配置Ҏ(gu)Q参考下面小节。注Q在后面的例子中Q假定存在虚拟用户xiaotong和xiaowang?
6.5.2 用户创徏和目录设|?
在系l中dvsftpdguest用户Q作拟用户在pȝ中的代表?
useradd vsftpdguest
当虚拟用L(fng)录后Q所在的位置为vsftpdguest的自家目?home/vsftpdguest。如果要让虚拟用L(fng)录到/var/ftp{其他目录,修改vsftpdguest的自家目录即可?
6.5.3、配|文件的讄
6.5.3.1、基本设|?
在vsftpd.conf配置文g中,加入以下参数Q?
guest_enable=YES
guest_username=vsftpdguest
6.5.3.2、虚拟用L(fng)权限配置?
VSFTPD-1.2.0d了virtual_use_local_privs参数Q当该参数激z(YESQ时Q虚拟用户用与本地用户相同的权限。当此参数关闭(NOQ时Q虚拟用户用与匿名用户相同的权限,q也是VSFTPD-1.2.0之前版本对虚拟用h限的处理Ҏ(gu)。这两者种做法相比Q后者更加严g些,特别是在有写讉K的情形下。默认情况下此参数是关闭的(NOQ?
下面先介lvirtual_use_local_privs=NOӞ即VSFTPD-1.2.0之前版本对虚拟用h限的配置Ҏ(gu)Q?
①控制虚拟用h览目?
如果让用户不能浏览目录,但仍可以Ҏ(gu)件操作,那么需要执行以下二个步骤:(x)一Q配|文件中Qanon_world_readable_only=YES。二Q虚拟用L(fng)录的权限改ؓ(f)只能由vsftpdguest操作Q?
[root@hpe45 vsftpd]# chown vsftpdguest.vsftpdguest /home/vsftpdguest
[root@hpe45 vsftpd]# chmod 700 /home/vsftpdguest
②允许虚拟用户上传文?
write_enable=YES
anon_upload_enable=YES
③允许虚拟用户修Ҏ(gu)件名和删除文?
anon_other_write_enable=YES
׃以上选项的设|同样会(x)对匿名用L(fng)效。如果不惛_名用戯机拥有同L(fng)权限Q最好是止匿名用户d?
在VSFTPD-1.2.0中当virtual_use_local_privs=YESӞ只需write_enable=YESQ虚拟用户就可以拥有写权限?
6.5.3.3、虚拟用L(fng)其他配置
①限定虚拟用户在自家目录?
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
?etc/vsftpd.chroot_list文g中加入xiaotong和xiaowang?
或者,chroot_local_user=YES
②虚拟用L(fng)个h配置?
如果惌个别的虚拟用h有自q别的配置Q同样可以徏立虚拟用L(fng)个h配置文g。在主配|文件中加入Q?
user_config_dir=/etc/vsftpd/vsftpd_user_conf
生成/etc/vsftpd/vsftpd_user_conf目录Q在该目录下建立与特定虚拟用户同名的文gQ?
[root@hpe45 vsftpd]# mkdir vsftpd_user_conf
[root@hpe45 vsftpd]# cd vsftpd_user_conf
[root@hpe45 vsftpd_user_conf]# touch xiaowang
然后在xiaowang文g中就可以加入专对xiaowang生效的选项讄了?
注:(x)如果在个人配|文件中加入chroot_local_user=YES是无效的?
6.5.3.4、虚拟用户个人目录设|?
大家可以发现Q无论是哪个虚拟用户Q登录后所在的目录都是/home/vsftpdguestQ即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户徏立自家目录?
一U作法是在虚拟用L(fng)个h配置文g中用local_root选项指定虚拟用户的自家目录。以xiaowangZQ在W上步的基础上,首先/etc/vsftpd/vsftpd_user_conf/xiaowang文g中加入:(x)
local_root=/home/xiaowang
新徏xiaowang目录Qƈ权限设为vsftpdguestQ?
[root@hpe45 home]# mkdir xiaowang
[root@hpe45 home]# chown vsftpdguest.vsftpdguest ./xiaowang
6.5.4、MySQL保存虚拟用户
本节介绍如何虚拟用L(fng)用户名和口o(h)保存在MySQL的数据库中。这主要分二个部分,一是将用户和口令保存在数据库,二是讄相应的PAM 认证。ؓ(f)了方便论qͼ做如下假定:(x)数据库vsftpdvuQ表usersQ字Dname和passwd用于保存虚拟用户的用户名和口令;Z安全Q只授权 vsftpdguest读vsftpdvu数据库的users表?
1、虚拟用L(fng)用户?口o(h)的保存。这部分在MySQL数据库中完成。首先,创徏数据库vsftpdvu以及(qing)表usersQƈ插入虚拟用户xiaotong、xiaowang。执行以下命令:(x)
[root@hpe45 vsftpd]#mysql -p
mysql>create database vsftpdvu;
mysql>use vsftpdvu;
mysql>create table users(name char(16) binary,passwd char(16) binary);
mysql>insert into users (name,passwd) values ('xiaotong',password('qqmywife'));
mysql>insert into users (name,passwd) values ('xiaowang',password('ttmywife'));
mysql>quit
然后Q授权vsftpdguest只能读vsftpdvu数据库的users表。执行以下命令:(x)
[root@hpe45 vsftpd]#mysql -u root mysql -p
mysql>grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0';
mysql>quit
如果要验证刚才的操作是否成功可以执行下面命o(h)Q?
[root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu
mysql>select * from users;
如果成功Q将?x)列出xiaotong、xiaowang和加密后的密码?
2、设|PAM认证。这里我们要用到一个利用mysqlq行pam验证的开源项目(http: //sourceforge.net/projects/pam-mysql/Q。首先从|站下蝲它的E序包pam_myql-0.5.tar.gzQ复制到/root目录中。在~译安装之前Q要保mysql-devel的RPM包已l安装在你的机器上,如果没有请从RHL安装光盘中安装该包。然后,执行以下命o(h)Q?
[root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz
[root@hpe45 root]#cd pam_mysql
[root@hpe45 pam_mysql]#make
[root@hpe45 pam_mysql]#make install
make installq一步可能会(x)出现错误Q那只好手动该目录下生成的pam_mysql.o复制?lib/security目录下?
接下来,我们要设|vsftpd的PAM验证文g。打开/etc/pam.d/vsftpd文gQ加入以下内容:(x)
auth required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
上面涉及(qing)到的参数Q只要对应前面数据库的设|就可以明白它们的含义。这里需要说明的是crypt参数Qcrypt=0Q口令以明文方式Q不加密Q保存在数据库中Qcrypt=1Q口令用UNIXpȝ的DES加密方式加密后保存在数据库中Qcrypt=2Q口令经qMySQL?password()函数加密后保存?/p>
1Q光标命?
左h 上j 下k 右l
nG --n敎ͼ该命令立即光标跛_指定行;n为空Q光标蟩到文件最后一行?
Ctrl+G--光标所在位|的行数和列数报?
w,b--使光标向前或向后跌一个单?
2Q编辑命?
(n)dd 删除
(n)yy 复制
i 光标前插?
a 当前字母后插?
r 在当前光标处替换
cw 替换光标所在处的单词(从光标开始处Q?
dw 删除光标所在处的单?
x 删除Q右Q?
X 删除Q左Q?
u 撤销
. 重复上次操作
o 插入新行
J 合ƈ两行
A 行尾
:.,3w /tmp/xx
:r /tmp/xx
3Q查扑֑?
f 查找
/ 查找
4Q复制粘贴命?
(n)yy 拯n行到剪切?
p _脓(chung)(?
P _脓(chung)Q当前)
二、vi选项讄
vi是一个强大的~辑器,它不仅可以用来处理我们^时的文本工作Q还可以用来写程序文件。在用viq行E序~辑Ӟ它可以实现语法加亮显C、自动羃q、括号匹配等~辑功能。ؓ(f)控制不同的编辑功能,vi 提供了很多内部选项?
利用 :set 命o(h)可以讄选项。基本语法ؓ(f)Q?
: set option 讄选项 option
常见的功能选项包括Q?
autoindent 讄该选项Q则正文自动~进
ignorecase 讄该选项Q则忽略规则表达式中大小写字母的区别
number 讄该选项Q则昄正文行号
ruler 讄该选项Q则在屏q底部显C光标所在行、列的位|?
tabstop 讄?Tab 键蟩q的I格数。例?set tabstop=nQn默认gؓ(f)8
1Q语法加亮显C?
: syntax on 该命令在vi中打开语法加亮昄的功能。这样以后在输入的字W中Qvi׃(x)自动的识别出关键字,字符串以?qing)其他的一些语法元素,q以不同的颜色来昄出来?
2Q自动羃q?
在vi中自动羃q的选项一般有以下的几U:(x)
autoindent: 在这U羃qŞ式中Q新增加的行和前一行有相同的羃qŞ式?
smartindent: 在这U羃q模式中Q每一行都和前一行有相同的羃q量Q同时能够正的识别出{和}Q当遇到双括号Q}Q,则取消了~进形式。此外还增加了识别C语言关键字的功能。如果一行是?开头的Q那么这U格式将?x)被?gu)对待而不采用~进格式。这U羃q格式强于autoindent?
cindentQ这是C语言的羃qŞ式,采用q样的羃q方式的E序语言有:(x)CQC++,Java{。当采用q种~进格式Ӟvi׃(x)自动的采用标准的C语言形式。这U羃q格式强于smartindent?
可以用如下命令进行羃qŞ式的讄Q?
Qset autoindentQaiQ?
Qset smartindentQsiQ?
Qset cindentQciQ?
3Q显C?
Qset numberQnuQ?昄行号
: set nonumber (nonu) 不显C?
在每个用L(fng)目录下,都有一个vi的配|文?.vimrc"(没有的话可以自己创徏)。用户可以编辑它Q输入以上命令,使这些设|在每次vi旉有效。例如:(x)?vimrc文g中加入如下设|行Q?
set nu #昄行号
set nonu #不显C?
set ic #查找时不考虑大小?
set noic #查找时考虑大小?
set smartindent #自动~进
syntax on Q语法加?
原文链接: http://tech.ccidnet.com/art/302/20070428/1073137_1.html
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1583735
今天l于成功的编译了linux-2.6.18的内核,是在redhat9 2.4.20-8的内核基上进行的Q?br />
作者:(x)飘扬 来源Q飞飞博客 发布旉Q?007.04.18
׃开发环境需要在linux-2.6内核上进行,于是准备Ҏ(gu)的虚拟机上的Linuxpȝ升。没惛_q一弄就׃两天旉Q反复装pȝQ辛苦啊~~Q,ȝ把Linuxpȝ?.4.20-8内核成功升C2.6.18内核?
|上虽然有很多介lLinux内核升的文章,不过要么q时Q下载链接失效;要么表达不清Q不知所云;更可气的是很多文章在转蝲q程中命令行都有错误。刚开始我是在这些“攻略”的指点下来升的,以致于浪费了很多旉?
现在Q费周折,升成功Q心情很爽,性也来写个“升U攻略”吧Q于是特意又在虚拟机上重新安装一个LinuxpȝQ再来一ơ完的升Q边升边记录这些步骤,写成一Linux内核升记实录(可不是回忆录啊!Q,和大家一起分享~~Q?
首先说明Q下面带#L(fng)行都是要输入的命令行Q且本文提到的所有命令行都在l端里输入。接下来Q让我们一起开始精彩的Linux内核升之旅吧!
一、准备工?
启动LinuxpȝQƈ用根用户dQ进入终端模式下?
1、查看Linux内核版本
# uname -a
如果屏幕昄的是2.6.xQ说明你的已l是2.6的内核,也用不着看下文了Q该q什么干什么去吧!~~~如果昄的是2.4.xQ那恭喜你,闯关通过Q赶快进行下一步?
2、下?.6内核源码
下蝲地址Q?a >http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
3、下载内核升U工?
(1)下蝲module-init-tools-3.2.tar.bz2
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
(2)下蝲mkinitrd-4.1.18-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm
(3)下蝲lvm2-2.00.25-1.01.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm
(4)下蝲device-mapper-1.00.19-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm
(2.6.18内核和这4个升U工h都有备䆾Q如果以上下载地址失效Q请留下你的邮箱Q我l你发过?
http://www.fly2.cn/guestbook
二、配|工?
好啦Q?.6内核?个升U工具都下蝲完了(一个也不行Q如果没有下载齐全,请不要尝试下面的步骤Q升U是不会(x)成功?Q下面回到Linuxpȝ中开始配|工作吧?
4、将下蝲好的内核?个升U工具都拯?usr/src文g夹下。怎么拯׃用我教了吧~~~~不会(x)拯的去撞墙吧!~~呵呵Q?
5、拷贝完毕,开始解压新内核Q具体操作请依次执行以下命o(h)Q?
# cd /usr/src (q入?usr/src目录下,如果已经?usr/src目录下,可不执行该命?
# rm –rf linux (删除linux文g夏V值得一提的是,如果内核先前从未~译q,则没有这个文件夹Q此命o(h)行可略过)
# tar jvxf linux-2.6.18.tar.bz2 (解压新内?
# ln -s linux-2.6.18 linux (重新生成linux文g?
6、安装module-init-tools工具?
?usr/src目录下,依次执行下列命o(h)Q(ZhiQiaoQ最好先看下READMEQ?
# tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools)
# cd module-init-tools-3.2 (?usr/src目录q入module-init-tools目录?
#./configure --prefix=/ Q?-prefix=/若重新配|文件把文g攑ֈ指定的目录下Q?/p>
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.conf
7、安装另外三个升U工?
回到/usr/src目录下,依次执行下列3个命令来安装另外三个升工具Q?
# rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意Q这里一定要加入--nodeps参数Q下? QZhiQiaoQnodeps不验证组件的兌性)
# rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm
# rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm
如果不更C上几个升U包Q在后面~译内核时会(x)提示以下错误Q?
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
8、配|内栔R项。有点繁琐,~~希望一ơ成功哦~~?
# cd linux-2.6.18 (q入?usr/src/linux-2.6.18目录?
# make mrproper (该命令可保源代码目录下没有不正的.o文g)
# make menuconfig Q配|内核各选项Q?
此时?x)出C个图形界面,列出了所有的内核配置选项Q有的选项下还有子选项Q你可以用方向键来选择Q用Y键来定。经q我多次试验Q大多数选项默认pQ以下几个选项必须选择Q请认真核对下面每一个选项Q否则编译很有可能前功尽弃)Q?
(1)Loadable Module support选项中,一定要选上“Module unloading”和“Automatic kernel module loading”这两项Q?
(2)Device Drivers--->Block Devices中一定要选上Loopback device supportQ?
Device Drivers--->Multi-device support(RAID and LVM)”处要选上“device mapper support”;
Device Drivers--->Graphics support? 一定要选上?Support for frame buffer devices”;
Device Drivers --->;USB support --->选上”USB Mass Storage support”(如果是在实环境中Q想要更多USB支持Q就全选吧。我的是在虚拟机中,用不着了)
Device Drivers --->; Network device support --->;Ethernet (10 or 100Mbit) --->; <*>; AMD PCnet32 PCI support
(3) File system--->Q以?个选项是关于ext2和ext3文gpȝ配置Q全部选上Q?
Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBB (ext3) debugging support
File system--->DOS/FAT/NT Filesystems --->选上?NTFS file system support”;
File Systems --> Miscellaneous filesystems ---><*> Compressed ROM file system support (cramfs)
注意Q?
ext2和ext3文gpȝ配置很重要,也是必需的,如果对Ext3、Ext2文g的支持直接编译进内核Q在你reboot时机器就?x)当掉,出现如下错误信息Q?
kernel panic : no init found ,try passing init = option to kernel.....
或者是Q?
VFS:Cannot open root device "hdxy" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
或者是Q?
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed
Kernel panic ?not syncing: No init found. Try passing init = option to kernel
Q我的机器就是在重启之后出现W三U错误,q不ȝl,郁闷死,只好重装了~~~Q?
Q?Q如果你在vmware下重新编译内核,盘用的是scsi的,以下选项必选:(x)
Device Drivers --->SCSI device support ---><*>SCSI disk support
Device Drivers--->SCSI device support--->SCSI low-level drivers--->;<*>; BusLogic SCSI support
三、编译工?
OKQ繁杂的配置工作完成了,xQ编译前的准备工作都做好了!
9、开始编译啦……:(x)
?usr/src/linux-2.6.18目录下,执行以下命o(h)卛_~译。编译需要一D|_(d)l自己倒杯茶耐心{候吧Q?
# make dep Q徏立编译时所需的从属文件。注意:(x)如果内核从未~译q,此步可蟩q)
# make clean Q清除内核编译的目标文gQ?
# make bzImage Q注意大写。这一步才真正~译内核Q(ZhiQiaoQ这步大U花了我10分钟旉Q配|:(x)512M内存Q?.8G CPUQ?
内核~译成功后,?x)?usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用make zImage~译Q内核很大的话,pȝ?x)提CZ使用make bzImage命o(h)来编译,所以我直接用make bzImage来编译?
# make modules Q编译可加蝲模块Q?QZhiQiaoQ这步大U花?0分钟旉Q?/p>
# make modules_install Q安装可加蝲模块Q?
安装成功后,pȝ?x)?lib/modules目录下生成一?.6.18子目录,里面存放着新内核的所有可加蝲模块?
# make install Q安装新内核Q?
注意Qmake install的时候可能会(x)出现如下错误信息Q?
No module BusLogic found for kernel 2.6?8
mkinitrd failed
此问题一般只出现在SCSI盘QVMWARE+REDHAT架构中,因ؓ(f)BusLogic被编译进了内核而不是一个module的Ş式(2.4内核的Buslogic模块即静态编译进内核也不行)。解x式是直接可以BusLogic.o文g复制q去Q?
# cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi
不过别忘讎ͼ复制q后再执行一下make install?
Q如果make menuconfigӞ把BusLogic模块选成M--Module模式--׃?x)出现这个提C。)
ZhiQiaoQ这里我是按上面所说的Ҏ(gu)做的l果在启动时出现关于BusLogic的错误,后来我将虚拟机的盘换成了IDE的,成功升QVmware默认的硬盘是SCSI的,有很多h不知道怎么Ҏ(gu)IDE的,具体Ҏ(gu)可以参考四、启动新内核
10、将新内核和System.map文g拯?boot目录下,依次执行以下命o(h)Q?
# cp /usr/src/linux-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18
# cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18
# cd /boot Q进入boot目录Q?
# rm –rf System.map (删除原来的连?
# ln -s System.map-2.6.18 System.map (重新建立q接)
11、修改Grub启动理?
如果没有错误的话, 下面开始修改grub配置文gQ不要告诉我你用的liloQ?
?boot目录下,执行以下命o(h)Q?
# new-kernel-pkg --mkinitrd --depmod --install 2.6.18 Q这时候你?boot下生成一个initrd-2.4.12.imgQƈ且你的grub.conf也作了相应更改)
# df Q查看根目录在那个分区,下一步要用到。注意,q里根分Z时boot的那?0M的分区,而一般是你最大的那个分区Q也是?”,千万不要搞错哦。我的ؓ(f) /dev/hda2Q?
# vi grub/grub.conf QZhiQiaoQ此处应该ؓ(f)/grub/grub.confQ?/p>
q入grub.conf文gQ找到如下信息:(x)
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root= LABEL=/
initrd /initrd-2.6.18.img
做两处修改:(x)
Q?Q?default=1改ؓ(f)default=0Q不改的话,重启之后默认q入2.4内核Q?
Q?Q?kernel行的“LABEL=/”换成根目录所在的分区Q上一步查看的是Q?
此步很重要,修改错误会(x)可能Dq不ȝl,我把我修改后的grub.conf文g列出来,不明之处Q可以对照修改:(x)
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root=/dev/hda2
initrd /initrd-2.6.18.img
title Red Hat Linux (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
12QOKQ大功告成!赶快重启Q看看升U后?.6内核?
13Q下一步该做什么呢Q我的qqQ?47863130
我编译以后成功运行看看我的版本号Q下?br />
1、越来越多的Linuxer开始对处在测试中?.6内核产生了兴,实它非常具有吸引力Q众多的Ҏ(gu)让人眼花R乱。我也从2.4全面转到?.6内核之下Qn受着新特性带来的新鲜体验。不q不兄弟在~译新内核时或多或少的遇C一些问题,看来新娘的盖 头也不是那么Ҏ(gu)揭开的:(x))
因此我打写一些文章来介绍~译新内核时的一些应该注意的地方Q以减少兄弟们在~译新内核时的麻烦?br />׃我的水^十分有限Q写q样的文章实在是勉ؓ(f)光。文中肯定有错误疏失之处Q还请兄弟们多多包涵Q?
W一部分Q准备:(x) ?使用新的内核首先当然要取得新内核的源码,内核的官方网站是http://www.kernel.org 在上面可以得到最新的内核?.6的更新是相当快的Q你可以在命令行下用finger @kernel.org命o(h)来快速得到当前最新的内核列表。在q篇文章中我以2.6.0-test6?准?下蝲了内核源码之后,?们要使用
tar jxvf linux-2.6.0-test6.tar.bz2来提取源码,如果你下载的是以tgzl尾的压~包׃用zxvf参数?解压。我强烈你不要?/usr/src/linuxq个目录来存放源码,因ؓ(f)使用q个目录你需要手工在/usr/include目录下作一些符号链接,q?实在不是一个好L?所以我你ؓ(f)源码单独Z个目录,q里我们的目录是/src/linux-2.6.0-test6?br /> 要编译与正常q行新的内核你需 要升U一些Y件包Q这些信息在源码目录下的Documentation/Changes文g中,
h据你的实际情况选择升。这其中我强调一下你应该升 Module-Init-ToolsQ不要被你当前系l中depmod -V输出的版本号qh(在RH9?它的输出?.4.22,感觉好象要比Changes中所要求的要高,实际上它们用不同的版本规则)。新?Module-Init-Tools在下面的|址中取得:(x)
http: //www.kernel.org/pub/linux/kernel/people/rusty/modules/ 我用的?.9.14?br />如果你下载的是源?br />使用如下步骤q行~译 ./configure --prefix=/ make moveold
q一步会(x)你以前的insmod, modprobe, rmmod?lsmod
重命名ؓ(f)insmod.old,modprobe.old, rmmod.old lsmod.old。 ?make make install
然后使用 ./generate-modprobe.conf /etc/modprobe.conf
原来的/etc/modules.conf转换?etc/modprobe.conf
如果你用devfspȝ你还需要复制modprobe.devfs ?etc目录下?/p>
当你升完相兌Y件包之后Q准备工作就完成了Q下面我们将q入到编译阶Dc(din)?
W二部分
~译Q?br /> 2.6的buildpȝ?.4有很大的不同Q实际上是更加简单与方便了?/p>
W一步我们要q入源码目录 cd /src/linux-2.6.0-test6
make mrproper
q?时我们就已经在源码目录下?make mrproper是用来清除一些老的配置文g、过时的已编译文Ӟ打补丁遗留的备䆾文g{工作的?/p>
如果你是从官方网站下载ƈ且是W一ơ编译这一步可以不 作。事实上q你以前编译过Q在打了一些补丁或者重新更改设|后再次~译也可?作这一步,q方面的内容我将在以后的补遗中作解释?br />现在你只按步就般的?不用考虑它?下面我们可以进行内核的配置了?
先介l一下新内核中的囑Ş界面配置工具Q?br />新内怸有两个GUI配置工具Q过ȝmake xconfig
现在是一个用QT库作为界面方案的配置工具?Q所以你要用它必需先安装QT库。一般的发行版光盘中都包含了q个软g包?br />另一个是make gconfigq是一个用GTK库作为界面方案的工具 Q同样你要用它?yu)p先安装GTK库?br />q两个工具与原来的GUI工具在界面上有很大的变化Q更加符合一般图形界面程序的使用?fn)惯?而传l的
控制台配|工具menuconfig则没什么太大的变化基本上保持了原来的样子,不喜Ƣ花里糊哨的GUI工具的兄弟还是用q个吧:(x))
?面我们就?开始配|内怺Q新内核的buildpȝ有一个新的特性,它会(x)在启动配|工hd你当前的pȝ配置Q从而保持与你当前配|相同的选项。??2.4中它则是配置为默认选项的。这个特性其实是Z方便你以后的升工作Q在内核Ҏ(gu)变化不大的情况下可以直接以当前的选项为基 从而省去逐项配置的麻 烦。但׃我们现在是从2.4来升U的Q它们之间的差别太大了,所以这反而会(x)l我们造成ȝ?br />有两U方法可以让2.6以默认选项来启动配|工P
W一U就 是将你当前的配置文g也就?boot/config-XXXU除Q另一U是在执行配|工具前先执行make defconfig.我推荐这U方法?
?.6中还d了几个以调试为目的的make选项Q它们是allyesconfig、allnoconfig、allmodconfig分别表示?所有选项加蝲为y、将所有选项加蝲为n、将所有选项加蝲为m。它们是为内核开发h员与试人员准备的,与我们的关系不大?下面我们开?配置内核Q这里用的工具为menuconfig?br />首先在命令行模式下执行:(x) make menuconfig 在闪q几行字之后出C如图1 的界?/p>
?界面的上部是配置工作的用说明,
使用头键在 各选项间移动,使用enterq入下一层菜单,每个选项上的高亮字母是键盘快h式,
使用它可以快速的到达 你想讄的菜单项上?br />在括号中
按y这个项目编译进内核中,
按M~译为模块,
按NZ选择?br />按?打印这个选项的帮助信息,
按esc返回到上层菜单?/p>
GUI工具的基本概 念也与之cM我们׃详细讨论了?br />在后面我主要用menuconfig来设|各个选项Q选项的次序以它ؓ(f)准,其它工具中各选项也基 本与之对 应?
W一?Code maturity level options (代码成熟度选项) 按enterq入后选项如下
[*] Prompt for development and/or incomplete code/drivers 默认情况下是选择的,q将?x)在讄界面中显C在开发或者还没有完成的代码与驱动.你应该选择它,因ؓ(f)有许多设备可能必 需选择q个选项才能q行配置Q实际上它是安全的?
[*] Select only drivers expected to compile cleanly 选择q个选项你将不会(x)看到一 些已知的存在问题的驱动程序选项Q默认的情况下也是选择的。如果你有设备没有找到驱动选项Q你可以这一去掉,或许可以找到相?驱动了,不过它可能是有BUG的?br />[*] Select only drivers that don't need compile-time external firmware 如果你不需要在内核对一?外部讑֤的固件作map支持选择它,q也是默认选项?/p>
W二?General setup 其中的选项如下
[*] Support for paging of anonymous memory q个选项你的内核支持虚拟内存Q也是让你的计机好象拥有比实际内存更?多的内存I间用来执行很大的程序。默认是选择 的?
[*] System V IPC E提供通信机制Q这ɾpȝ中各q程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能q行Q?所以不用考虑Q这里一定要选?br /> [ ] BSD Process Accounting q里选择Y会(x)让内ؓ(f)用户层的q程建立一个帐?q程通过一个特D的pȝ 调用来通知内核)Q当E序退出时内核?x)将q程的相关信息记录到帐目文g中,主要包括q程的创建时间?创徏者,内存占用{信息。如果你 需要就Y吧:(x))
[*] Sysctl support q将提供一个接口让你可以动态的更改一些核心参C变量Q而不需要重新启动系l。打开q个选项会(x) 增加内核的体U至?KB。如果你的内总用制作安装与恢复pȝpȝ盘那么可以不选,以减对内存的占用?
[ ] Kernel .config support q将?x)把内核的配|信息与相关的文档说明编译进内核中,以后可以使用一些工h提取它用来重新构建内核,一般不用选它?
[ ] Remove kernel features (for embedded systems) ---> q个选项会(x)把一些特性从内核中移除,以减内怽U。对于桌面用hԌq可不是一 个好LQ所以不要选它。至于其中的内容我会(x)在以后的补遗中介l?/p>
W三?Loadable module support (可加载模块选项) 光项如下Q?br /> [*] Enable loadable module support q?个选项可以让你的内核支持模块,模块是什么呢Q模块是一段代码Q编译后可在pȝ内核q行?动态的加入内核Q从而ؓ(f)内核增加一些特性或是对某种gq行?持。一般一些不常用到的驱动或特性可以编译ؓ(f)模块以减内核的体积。在 q行时可以用modprobe命o(h)来加载它到内怸?在不需要时q可以移???一些特性是否编译ؓ(f)模块的原则是Q不怋用的Q特别是?pȝ启动时不需要的驱动可以其~译为模块,如果是一些在pȝ启动时就要用到的驱动比如说文件系l,pȝȝ的支持就不要~ؓ(f)模块?Q否在无法启动系l?当然q有一些变通的Ҏ(gu)Q我以后?x)提?
[ ] Module unloading q个选项可以让你卸蝲不再使用的模块,如果不?的话你将不能卸蝲M模块(有些模块一旦加载就不能卸蝲Q不是否选择了这个选项)。不选择q个选项?x)让你的内核体积减小一?
[ ] Module versioning support (EXPERIMENTAL) q个选项让你可以用其它版本内怸~译的模块,不过q不可靠Q所以一般我们不选择?
[*] Automatic kernel module loading 一 般情况下Q如果我们的内核在某些Q务中要用一些被~译为模块的驱动或特性时Q我们要先?modprobe命o(h)来加载它Q内核才能用。不q,如果你?择了q个选项Q在内核需要一些模块时它可以自动调用modprobe命o(h)来加载需要的?块,q是个很的Ҏ(gu),当然要选Y喽:(x))
W四?Processor type and features Subarchitecture Type (PC-compatible) q是一个比较新?Ҏ(gu),主要的目的是使Linux可以支持多种PC标准Q一般我们用的PC机是遵@所谓IBM兼容l构(pc/at)。这个选项可以让你选择一些其它架?。我们一般选择PC-compatible可以了?Processor family (Pentium-4/Celeron(P4-based)/Xeon) q个不用我讲了吧Q你是什么CPU选什 么吧Q?
[ ] Generic x86 support q个选项提供了对X86pdCPU最大的兼容性,用来支持一些很见的x86体系的CPUQ它可能?x)降低一些系 l性能。所以如果你的CPU能够在上面的列表中找到就不要选这个吧?
[ ] HPET Timer Support q?也是一个新的特性,HPET是intel制定的新 的用以代替传l的8254(PIT)中断定时器与RTC的定时器Q全U叫作高_ֺ事g定时器。如果你有一台较新的机器选它吧,一般它是一个安?的选项Q即使你的硬件不支持HPET也不?x)造成问题Q因为它?x)自动?254替换?
[*] Symmetric multi-processing support q个也不用多讲了吧,如果你用多处理器系l就选吧Q如果你和我一样用一个单CPUpȝq是把它请出d?( Maximum number of CPUs (2-255) q里?来配|让Linux最多支持几路CPUQ根据你的需要选择?
[*] Preemptible Kernel q?可是个新Ҏ(gu),几乎所有介l?.6的文章都?x)提刎ͼq就 是可抢先式内核。也是说被一些优先很高的程序可以先与一些低优先U的E序执行Q即使这些程序是 在核心态下执行(q实际上仍然不是 真正的抢先式内核)。从而减内核潜伏期Q提高系l的响应。当然在一些特D的点的内核是不可抢先的Q比如内怸的调度程 序自w在执行 时就是不可被抢先的。这个特性可以提高桌面系l、实时系l的性能Q所以还是选上吧?
[*] Machine Check Exception ?果你的系l出?一些问题比如CPUq热Q内核将?x)在屏幕上打印相关信息来提醒你。这个功能是需要硬件支持的。你可以查看/proc/cpuinfo看看?否有mce?志,有的话就选吧。如果你十分十分的不q,选了它之后出现问题,可以在启动时加nomce参数来关闭它?br />[*] Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 ?开q个选项会(x)查你机器上可能存在的问题Q如果有一个非致命错误出现会(x)自动的修复ƈ?记录Q这可以帮助你查出程序出现问题的原因Q是一个不错的选项Q?当然它只能用在AMD Athlon/Duron / Intel Pentium 4q类CPU上。如?你正好在用它们中的一个你选吧?
[*] check for P4 thermal throttling interrupt. 如果打开q个选项Q在P4的CPU温度q高(也就是P4 的温控装|v作用)时会(x)在屏q上昄出相关的信息Q根据你的情况选择吧?
< > Toshiba Laptop support q?个选项是针对ToshibaW记本的 Q可以用来访问Toshiba的系l管理模式,也就是可以直接设|BIOS。不q要注意它只在Toshiba自己?BIOS中v作用。假如你有一台Toshiba W记本,可惜它的BIOS是Phoenix的,那这个选项仍然是梁山军?---无用Q?
< > Dell laptop support q个同上面的选项基本相同Q自q 着办吧Q?
< > /dev/cpu/microcode - Intel IA32 CPU microcode support q个选项让你可以更新Intel IA32pd处理器的微代码,当然 你还必须在文件系l选项中选择devfs才能正常的用它。如果你把它译ؓ(f)模块你还需要在modprobe.conf中加上这一行alias char-major-10- 184 microcode 内核本nq不带有微代码的二进制文Ӟ你可以到q个|址d到新的信?
< > /dev/cpu/*/msr - Model-specific register support q个选项桌面用户一般用不到Q它主要用在Intel的嵌入式CPU中的Q这个寄存器的作用也依赖与不同的CPUcd而有所不同Q一般可?用来改变一些CPU原有物理l构的用途,但不同的CPU用途差别也很大?
< > /dev/cpu/*/cpuid - CPU information support q会(x)?dev/cpu 中徏立一pd的设备文Ӟ用以让过E去讉K指定的CPU。一般不用选?
< > BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL) q将可以打开实模式下BIOS中的增强盘讑֤服务Q以军_从哪个磁盘上启动。这一般是安全的,不过大多数BIOS提供商都?有实现这个特性?High Memory Support (off) 如果你有大容量的内存(过4G)你要选它Q以使内核可以用这部分内存。偶是没q命啦这?分永qؓ(f)OFFQ如果你有你O(jin)N吧?br />[ ] Math emulation 在你的CPU上如果没有数学协处理器的话,打开q个选项可以让内核模拟一个,以提 升Q点计能力,不过慢的可以。如果你使用的不是古董CPU的话(486SX以前?q一你永远都不需要?
[*] MTRR (Memory Type Range Register)support 在Intel p6家族的处理器?Ppro?PII和更新的)有一个内存类型范围寄存器Q可用来控制处理器访问的内存范围。打开?一般可以提升显卡的昄性能Q所以我们当然要在这说Y喽:(x))
W五?Power management options (ACPI, APM)(高甉|理)
[*] Power Management support 如果你想让你的Linux支持高甉|理(也就是^常我们说的Yx、系l休眠等)需要选择它?
[ ] Software Suspend (EXPERIMENTAL) ?择这个选项你可以挂起你的计机(有点象XP中的休眠)Q打开q项功能后,你可以用swsusp或者shutdown -z 来挂起你 的计机。这L(fng)l会(x)你当前正在q行的工?也就是当前内存中的内?作成一个镜象保存到你的交换分区中,在你下一ơ启动时使用启动 参数 “resume=/dev/你的交换分区”,内核׃(x)上一ơ的工作内核从镜象文件中恢复到内存,q可以大大提高系l的启动速度。当你不x 复上ơ的工作 时向内核传递参数“noresume"。不q系l启动后你的交换分区不可以使用Q你可以使用mkswap命o(h)来重新格式化你的交换?区。这个功能不需?高甉|理的支持。很不错的功能,我一直有用,大家也来试试吧:(x))
[ ] Suspend-to-Disk Support q个选项与上?的功能基本相同,不过更灵zM些,可以通过下面的子选项来指定一个专用的交换分区来保存内存镜象?
() Default resume partition 与上 面的选项配合Q来指定保存镜象的分区?
ACPI (Advanced Configuration and Power Interface) Support ---> 从这里进入ACPI甉|理?配置界面Q要注意ACPI与APM不能同时使用Q如果你同时配置了这两者,那么在系l启动时如果发现一个可工作的ACPI讑֤那么APM被关闭Q?ACPI?x)被加蝲Q?br />[*] ACPI Support q个选项应该不用我多说了Q要惌你的pȝ使用ACPI来管理你的电(sh)源就要选上它,另外要想让它起作?Q你q要在系l中安装acpid守护E序?br />[*] Sleep States (EXPERIMENTAL) ?择这个选项可以使你的系l具有挂L(fng)功能Q也是说你可以 暂时中断你的工作Q让你的pȝ处与一U低?sh)能消耗的状?sleep state)Q你此时的系l状态会(x)保存在内存或者磁盘上(取决于挂L(fng)深度)Q?当你需要时再恢复到正常的工作状态。但׃各种pȝ之间的差别,目前q项?能ƈ不完善。只有很的讑֤可以完美的支持这个特性,所?不徏议一般用户用它?
< > AC Adapter q是用来支持Udpȝ中的交流适配器的Q以指示当前pȝ是不是在使用交流?sh),对于台式Z需 要这个选项?
< > Battery q个选项用于通过/proc/acpi/battery来向用户提供Udpȝ中的甉|状态信息。同上面那个选项一样对台式机没 有作用?br /> <*> Button q个选项用于注册Z甉|按钮的事Ӟ比如power, sleep{,当你按下按钮时事件将发生Q一个守护程序将??proc/acpi/eventQƈ执行用户在这些事件上定义的动作比如让pȝx?
<*> Fan q个选项提供对系l风扇的控制支持Q可以通过用户?的程序来对系l风扇进行控?比如打开Q关闭,d当前风扇的运行状态等Q不q只有极数的硬件支持它)?
<*> Processor 打开q个选项 让你的pȝh处理IDIE状态的能力Q也是说可以让你的处理器在I闲时节省电(sh)能。个个选项是一定要选的?br /><*> Thermal Zone 当你的系l温度过高时QACPI可以利用q个选项来控制你的系l,?qing)时调整pȝ的工作状态以保护你的CPUQ非常棒的一个特性一定要选呀Q要 不然也就不用使用ACPI了?当然q需要硬件的支持)
< > ASUS/Medion Laptop Extras q主要是为ASUS生的笔记本?sh)脑准备的,以提供对q?些系l上那些额外的按钮们的支持,用户可以通过它们来打开或者关闭LCD的背光,调整亮度、定制LED的闪烁指C等功能。用户可以?q?proc/acpi/asus来改变这些设|?
< > Toshiba Laptop Extras q个选项是对ToshibaW记本提供特别支持的Q它的作用同上面的选项基本 相同Q如果你有一台这L(fng)本本的话选它吧?br /> [ ] Debug Statements 如果选择它当ACPI出现错误时会(x)打印l的信息Q这会(x)增加内核 的体U大U?0kQ如果没有必要还是不要选它吧?br /> [ ] Relaxed AML 选择它的话ACPI译器将?x)放村֯AML的错误检查,一些笔记本?sh)脑可能需 要它才能正常的用ACPI(一些糟p的桌面机可能也需要它Q如果你的系l用ACPI时出现问题不妨选上它试?