??xml version="1.0" encoding="utf-8" standalone="yes"?>久久天天躁狠狠躁夜夜2020老熟妇,一级做a爰片久久毛片16,AV无码久久久久不卡蜜桃http://www.shnenglu.com/mydriverc/archive/2010/03/14/109709.html旅?/dc:creator>旅?/author>Sun, 14 Mar 2010 15:56:00 GMThttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109709.htmlhttp://www.shnenglu.com/mydriverc/comments/109709.htmlhttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109709.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/109709.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/109709.html3.2.1 VSFTP 概述 
FTPQfile transfer protocolQ这是案传输的通讯协议Q也是一般最常用来传送档案的方式。读者在使用RedHat9 的时候,可能会感受到ftp server 有一些改变:W一Q就是ftp server 只剩下vsftpQ原有的wuftp {都没放?nbsp;W二Q就是vsftp 从XINETD 中独立出来,q将讑֮档从/etc/vsftpd.conf 之中Ud/etc/vsftpd/vsftpd.conf?nbsp;
Z么做q样的改变?可以惌的是vsftp 已有独立q作的能力,不需要XINETD 来做更进一步的控Qƈ且类似sendmail、httpd、ssh、samba {,设定文件的攑օ/etc 下独立的目录?nbsp;
FTP 分ؓ两类Q一UؓPORT FTPQ也是一般的FTP 另一cLPASVFTPQ分q如下:
PORT FTP 
q是一般Ş式的FTPQ首先会建立控制频道Q默认值是port 21Q也是跟port 21 建立联机Qƈ透过此联Z达指令。第二,由FTP server 端会建立数据传输频道Q默认gؓ20Q也是跟port 20 建立联机Qƈ透过port 20 作数据的传输?nbsp;
PASV FTP 
跟PORT FTP cMQ首先会建立控制频道Q默认值是port 21Q也是跟port 21 建立联机Qƈ透过此联Z达指令。第二,会由client 端做出数据传输的hQ包括数据传输port 的数字?nbsp;
q两者的差异ZQPORT FTP 当中的数据传输port 是由FTP server 指定Q而PASV FTP 的数据传输port 是由FTP client 军_。通常我们使用PASV FTPQ是在有防火墙的环境之下Q透过client 与server 的沟通,军_数据传输的port?br>
3.2.2 范例 

3.2.1. 直接启动VSFTP 服务 
q个范例是套用RedHat 的预设范?直接启动vsftp?nbsp;
[root@relay vsftpd]# /sbin/service vsftpd start 
Starting vsftpd for vsftpd: OK ] 

3.2.2. 更换port 提供服务Q将预设的port 21 更换?121
Z安全Q或是以port 来区隔不同的ftp 服务Q我们可能会ftp port 改ؓ21 之外的portQ那么,可参考以下步骤?nbsp;
Step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下一?nbsp;
listen_port=2121 
Step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 

3.2.3. 特定使用者peter、john 不得变更目录 
使用者的预设目录?home/usernameQ若是我们不希望使用者在ftp 时能?nbsp;
切换C一层目?homeQ则可参考以下步骤?nbsp;
Step1. 修改/etc/vsftpd/vsftpd.conf 
底下三?nbsp;
#chroot_list_enable=YES 
# (default follows) 
#chroot_list_file=/etc/vsftpd.chroot_list 
改ؓ 
chroot_list_enable=YES 
# (default follows) 
chroot_list_file=/etc/vsftpd/chroot_list 
Step2. 新增一个档? /etc/vsftpd/chroot_list 
内容增加两行Q?nbsp;
peter 
john 
Step3. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
若是peter Ʋ切换到根目录以外的目录Q则会出C下警告: 
ftp> cd /home 
550 Failed to change directory. 

3.2.4. 取消anonymous d 
若是读者的L不希望用者匿名登入,则可参考以下步骤?br>Step1. 修改/etc/vsftpd/vsftpd.conf 
?nbsp;
anonymous_enable=YES 
改ؓ 
anonymous_enable=NO 
Step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 

3.2.5. 安排Ƣ迎话语
若是我们希望使用者在dӞ能够看到Ƣ迎话语Q可能包括对该主机的说明Q或是目录的介绍Q可参考以下步骤?br>首先定?etc/vsftpd/vsftpd.conf 当中是否有底下这一?nbsp;
dirmessage_enable=YES 
RedHat9 的默认值是有上面这行的?nbsp;
接着Q在各目录之中,新增名ؓ.message 的档案,再这边假设有一个用者test1Q且此用者的根目录下有个目录名ؓabcQ那首先我们?home/test1 
之下新增.messageQ内容如下: 
Hello~ Welcome to the home directory 
This is for test only... 
接着Q在/home/test1/abc 的目录下新增.messageQ内容如下: 
Welcome to abc's directory 
This is subdir... 
那么Q当使用者test1 dӞ会看C下讯息: 
230- Hello~ Welcome to the home directory 
230- 
230- This is for test only... 
230- 
若是切换到abc 的目录,则会出现以下讯息Q?nbsp;
250- Welcome to abc's directory 
250- 
250- This is subdir ... 

3.2.6. 对于每一个联机,以独立的process 来运?br>一般启动vsftp Ӟ我们只会看到一个名为vsftpd 的process 在运作,但若是读者希望每一个联机,都能以独立的process 来呈玎ͼ则可执行以下步骤?br>Step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下一?nbsp;
setproctitle_enable=YES 
Step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
使用ps -ef 的指令,可以看告不同使用者联机的情ŞQ如下图所C: 
[root@home vsftpd]# ps -ef|grep ftp 
root 2090 1 0 16:41 pts/0 00:00:00 vsftpd: LISTENER 
nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244: 
connected 
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1: 
IDLE 
nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244: 
connected 
test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2: 
IDLE 
root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp 
[root@home vsftpd]#

3.2.7. 限制传输案的速度Q?br>本机的用者最高速度?00KBytes/sQ匿名登入者所能用的最高速度?0KBytes/s
Step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下两行 
anon_max_rate=50000 
local_max_rate=200000 
Step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
在这辚w度的单位ؓBytes/sQ其中anon_max_rate 所限制的是匿名d?nbsp;
使用者,而local_max_rate 所限制的是本机的用者。VSFTPD 对于速度的限 
Ӟ范围大概?0%?20%之间Q也是我们限制最高速度?00KBytes/sQ?nbsp;
但实际的速度可能?0KBytes/s ?20KBytes/s 之间Q当Ӟ若是频宽不 
Ӟ数g低于此限制?br>
3.2.8. 针对不同的用者限制不同的速度Q?br>假设test1 所能用的最高速度?50KBytes/sQtest2 所能用的最高速度?00KBytes/s?nbsp;
Step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下一?nbsp;
user_config_dir=/etc/vsftpd/userconf 
Step2. 新增一个目录:/etc/vsftpd/userconf 
mkdir /etc/vsftpd/userconf 
Step3. ?etc/vsftpd/userconf 之下新增一个名为test1 的?nbsp;
内容增加一行: 
local_max_rate=250000 
Step4. ?etc/vsftpd/userconf 之下新增一个名为test2 的?nbsp;
内容增加一行: 
local_max_rate=500000 
Step5. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ]

3.2.9-1. 建置一个防火墙下的ftp serverQ用PORT FTP modeQ?br>预设的ftp port:21 以及ftp data port:20 
启动VSFTPD 之后执行以下两行指oQ只允许port 21 以及port 20 开放,其它关闭?nbsp;
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT 
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

3.2.9-2. 建置一个防火墙下的ftp serverQ用PORT FTP modeQ?br>ftp port:2121 以及ftp data port:2020 
Step1. 执行以下两行指oQ只允许port 2121 以及port 2020 开放,其它关闭?nbsp;
iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT 
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset 
Step2. 修改/etc/vsftpd/vsftpd.conf 
新增底下两行 
listen_port=2121 
ftp_data_port=2020 
Step3. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
在这边要注意Q?? 两个例子中,ftp clientQ如cuteftpQ的联机方式不能够选择passive modeQ否则无法徏立数据的联机。也是读者可以连上ftp 
serverQ但是执行ls、get {等的指令时Q便无法q作?br>
3.2.10. 建置一个防火墙下的ftp serverQ用PASS FTP modeQ?br>ftp port:2121 以及ftp data port ?981 ?986?nbsp;
Step1. 执行以下两行指oQ只允许port 2121 以及port 9981-9990 开放,其它关闭?nbsp;
iptables -A INPUT -p tcp -m multiport --dport 
2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT 
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset 
Step2. 修改/etc/vsftpd/vsftpd.conf 
新增底下四行 
listen_port=2121 
pasv_enable=YES 
pasv_min_port=9981 
pasv_max_port=9986 
Step3. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
在这边要注意Q在10 q个例子中,ftp clientQ如cuteftpQ的联机方式必须选择passive modeQ否则无法徏立数据的联机。也是读者可以连上ftp serverQ但是执行ls,get {等的指令时Q便无法q作?br>
3.2.11. vsftpd 与TCP_wrapper l合
若是读者希望直接在/etc/hosts.allow 之中定义允许或是拒绝的来源地址Q可执行以下步骤。这是简易的防火墙设定?nbsp;
Step1. 定/etc/vsftpd/vsftpd.conf 之中tcp_wrappers 的设定ؓYESQ如下图所 
C: 
tcp_wrappers=YES 
q是RedHat9 的默认|基本上不需修改?nbsp;
Step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
Step3. 讑֮/etc/hosts.allowQ譬如提?11.22.33.4 以及10.1.1.1 ?0.1.1.254 q?nbsp;
U,则可做下图之讑֮Q?nbsp;
vsftpd : 111.22.33.4 10.1.1. : allow 
ALL : ALL : DENY

3.2.12. vsftpd q入XINETD 
若是读者希望将vsftpd q入XINETD 之中Q也是7.x 版的预设讑֮Q那 
么读者可以执行以下步骤?nbsp;
Step1. 修改/etc/vsftpd/vsftpd.conf 
?nbsp;
listen=YES 
改ؓ 
listen=NO 
Step2. 新增一个档案: /etc/xinetd.d/vsftpd 
内容如下Q?nbsp;
service vsftpd 

disable = no 
socket_type = stream 
wait = no 
user = root 
server = /usr/sbin/vsftpd 
port = 21 
log_on_success += PID HOST DURATION 
log_on_failure += HOST 

Step3. 重新启动xinetd 
[root@home vsftpd]# /sbin/service xinetd restart 
Stopping xinetd: OK ] 
Starting xinetd: OK ] 

3.2.3 讑֮档说?br>在范例中Q有些省略的讑֮可以在这Ҏ刎ͼ譬如联机的L、同一个位址的联机数、显C档案拥有者的名称{等Q希望读者细dQ可以做出最适合自己的设定?br>格式
vsftpd.conf 的内定w常单U,每一行即Z设定。若是空白行或是开头ؓ#的一行,会被忽略。内容的格式只有一U,如下所C?nbsp;
option=value 
要注意的是,{号两边不能加空白,不然是不正确的设定?nbsp;
Q=Qascii 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
ascii_download_enable 
控是否可用ASCII 模式下蝲。默认gؓNO?nbsp;
ascii_upload_enable 
控是否可用ASCII 模式上传。默认gؓNO?nbsp;
Q=Q个别用者设定=Q=Q=Q=Q=Q=Q=Q=Q=Q= 
chroot_list_enable 
如果启动q项功能Q则所有的本机使用者登入均可进到根目录之外的数据夹Q除了列 
?etc/vsftpd.chroot_list 之中的用者之外。默认gؓNO?nbsp;
userlist_enable 
用法QYES/NO 
若是启动此功能,则会d/etc/vsftpd.user_list 当中的用者名U。此功能可以在询问密码前就出现p|讯息Q而不需要检验密码的E序。默认gؓ关闭?nbsp;
userlist_deny 
用法QYES/NO 
q个选项只有在userlist_enable 启动时才会被验。如果将q个选项设ؓYESQ则?etc/vsftpd.user_list 中的使用者将无法d 若设为NO Q?nbsp;则只有在 
/etc/vsftpd.user_list 中的使用者才能登入。而且此项功能可以在询问密码前出现错误讯息,而不需要检验密码的E序?nbsp;
user_config_dir 
定义个别使用者设定文件所在的目录Q例如定义user_config_dir=/etc/vsftpd/userconfQ且L上有使用者test1,test2Q那我们可以在user_config_dir 的目录新增文件名为test1 以及test2。若是test1 dQ则会读取user_config_dir 下的test1 q个案内的讑֮。默认gؓ无?nbsp;
Q=Q欢q语讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
dirmessage_enable 
如果启动q个选项Q用者第一ơ进入一个目录时Q会查该目录下是否有.messageq个案Q若是有Q则会出现此案的内容,通常q个档案会放|欢q话语,或是对该目录的说明。默认gؓ开启?nbsp;
banner_file 
当用者登入时Q会昄此设定所在的案内容Q通常为欢q话语或是说明。默认gؓ无?nbsp;
ftpd_banner 
q边可定义欢q话语的字符Ԍ相较于banner_file 是档案的形式Q而ftpd_banner 是字串的格式。预设ؓ无?nbsp;
Q=Q特D安全设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
chroot_local_user 
如果讑֮为YESQ那么所有的本机的用者都可以切换到根目录以外的数据夹。预讑րgؓNO?nbsp;
hide_ids 
如果启动q项功能Q所有档案的拥有者与组都ؓftpQ也是使用者登入用ls -al之类的指令,所看到的案拥有者跟组均ؓftp。默认gؓ关闭?nbsp;
ls_recurse_enable 
若是启动此功能,则允许登入者用ls -R q个指o。默认gؓNO?nbsp;
write_enable 
用法QYES/NO 
q个选项可以控制FTP 的指令是否允许更改file systemQ譬如STOR、DELE?nbsp;
RNFR、RNTO、MKD、RMD、APPE 以及SITE。预设是关闭?nbsp;
setproctitle_enable 
用法QYES/NO 
启动q项功能Qvsftpd 会将所有联机的状况已不同的process 呈现出来Q换句话_使用ps -ef q类的指令就可以看到联机的状态。默认gؓ关闭?nbsp;
tcp_wrappers 
用法QYES/NO 
如果启动Q则会将vsftpd 与tcp wrapper l合Q也是可以?etc/hosts.allow ?etc/hosts.deny 中定义可联机或是拒绝的来源地址?nbsp;
pam_service_name 
q边定义PAM 所使用的名Uͼ预设为vsftpd?nbsp;
secure_chroot_dir 
q个选项必须指定一个空的数据夹且Q何登入者都不能有写入的权限Q当vsftpd 不需要file system 的权限时Q就会将使用者限制在此数据夹中。默认gؓ/usr/share/empty 

Q=Q纪录文件设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 
xferlog_enable 
用法QYES/NO 
如果启动Q上传与下蝲的信息将被完整纪录在底下xferlog_file 所定义的案中。预设ؓ开启?nbsp;
xferlog_file 
q个选项可设定纪录文件所在的位置Q默认gؓ/var/log/vsftpd.log?nbsp;
xferlog_std_format 
如果启动Q则U录文g会写ؓxferlog 的标准格式,如同wu-ftpd 一般。默认gؓ关闭?nbsp;

Q=Q逾时讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 
accept_timeout 
接受建立联机的逾时讑֮Q单位ؓU。默认gؓ60?nbsp;
connect_timeout 
响应PORT 方式的数据联机的逾时讑֮Q单位ؓU。默认gؓ60?nbsp;
data_connection_timeout 
建立数据联机的逾时讑֮。默认gؓ300 U?nbsp;
idle_session_timeout 
发呆的逾时讑֮Q若是超旉没有数据的传送或是指令的输入Q则会强q断U,单位为秒。默认gؓ300?nbsp;
Q=Q速率限制Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 
anon_max_rate 
匿名d所能用的最大传输速度Q单位ؓ每秒多少bytesQ? 表示不限速度。默认gؓ0?nbsp;
local_max_rate 
本机使用者所能用的最大传输速度Q单位ؓ每秒多少bytesQ? 表示不限速度。预讑րgؓ0?nbsp;
Q=Q新增档案权限设定=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
anon_umask 
匿名d者新增档案时的umask 数倹{默认gؓ077?nbsp;
file_open_mode 
上传案的权限,与chmod 所使用的数值相同。默认gؓ0666?nbsp;
local_umask 
本机d者新增案时的umask 数倹{默认gؓ077?nbsp;
Q=Qport 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 
connect_from_port_20 
用法QYES/NO 
若设为YESQ则ftp-data 的数据传送用port 20。默认gؓYES?nbsp;
ftp_data_port 
讑֮ftp 数据联机所使用的port。默认gؓ20?nbsp;
listen_port 
FTP server 所使用的port。默认gؓ21?nbsp;
pasv_max_port 
建立资料联机所可以使用port 范围的上界,0 表示L。默认gؓ0?nbsp;
pasv_min_port 
建立资料联机所可以使用port 范围的下界,0 表示L。默认gؓ0?nbsp;
Q=Q其它=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
anon_root 
使用匿名dӞ所d的目录。默认gؓ无?nbsp;
local_enable 
用法QYES/NO 
启动此功能则允许本机使用者登入。默认gؓYES?nbsp;
local_root 
本机使用者登入时Q将被更换到定义的目录下。默认gؓ无?nbsp;
text_userdb_names 
用法QYES/NO 
当用者登入后使用ls -al 之类的指令查询该案的管理权Ӟ预设会出现拥有者的UIDQ而不是该档案拥有者的名称。若是希望出现拥有者的名称Q则此功能开启。默认gؓNO?nbsp;
pasv_enable 
若是设ؓNOQ则不允怋用PASV 的模式徏立数据的联机。默认gؓ开启?nbsp;
Q=Q更换案所有权Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
chown_uploads 
用法QYES/NO 
若是启动Q所有匿名上传数据的拥有者将被更换ؓchown_username 当中所讑֮的用者。这L选项对于安全及管理,是很有用的。默认gؓNO?nbsp;
chown_username 
q里可以定义当匿名登入者上传案时Q该案的拥有者将被置换的使用者名U。预讑րgؓroot?nbsp;
Q=Qguest 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;
guest_enable 
用法QYES/NO 
若是启动q项功能Q所有的非匿名登入者都视ؓguest。默认gؓ关闭?nbsp;
guest_username 
q里定义guest 的用者名U。默认gؓftp?nbsp;
Q=Qanonymous 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q= 
anonymous_enable 
用法QYES/NO 
控使否允许匿名dQYES 为允许匿名登入,NO Z允许。默认gؓYES?nbsp;
no_anon_password 
若是启动q项功能Q则使用匿名dӞ不会询问密码。默认gؓNO?nbsp;
anon_mkdir_write_enable 
用法QYES/NO 
如果设ؓYESQ匿名登入者会被允许新增目录,当然Q匿名用者必要有对上层目录的写入权。默认gؓNO?nbsp;
anon_other_write_enable 
用法QYES/NO 
如果设ؓYESQ匿名登入者会被允许更多于上传与徏立目录之外的权限Q譬如删除或是更名。默认gؓNO?nbsp;
anon_upload_enable 
用法QYES/NO 
如果设ؓYESQ匿名登入者会被允怸传目录的权限Q当Ӟ匿名使用者必要有对上层目录的写入权。默认gؓNO?nbsp;
anon_world_readable_only 
用法QYES/NO 
如果设ؓYESQ匿名登入者会被允怸载可阅读的档案。默认gؓYES?nbsp;
ftp_username 
定义匿名d的用者名U。默认gؓftp?nbsp;
deny_email_enable 
若是启动q项功能Q则必须提供一个档?etc/vsftpd.banner_emailsQ内容ؓemail 
address。若是用匿名登入,则会要求输入email addressQ若输入的email address 在此案内,则不允许联机。默认gؓNO?nbsp;
Q=QStandalone 选项Q=Q=Q=Q=Q=Q=Q=Q=Q= 
listen 
用法QYES/NO 
若是启动Q则vsftpd 会以独立运作的方式执行Q若是vsftpd 独立执行Q如RedHat9的默认|则必d?nbsp;若是vsftpd 包含在xinetd 之中Q则必须关闭此功能,如RedHat8。在RedHat9 的默认gؓYES?nbsp;
listen_address 
若是vsftpd 使用standalone 的模式,可用这个参数定义用哪个IP address 提供q项服务Q若是主Z只有定义一个IP addressQ则此选项不需使用Q若是有多个IP addressQ可定义在哪个IP address 上提供ftp 服务。若是不讑֮Q则所有的IP address均会提供此服务。默认gؓ无?nbsp;
max_clients 
若是vsftpd 使用standalone 的模式,可用这个参数定义最大的总联机数。超q这个数目将会拒l联机,0 表示不限。默认gؓ0?nbsp;
max_per_ip 
若是vsftpd 使用standalone 的模式,可用这个参数定义每个ip address 所可以联机的数目。超q这个数目将会拒l联机,0 表示不限。默认gؓ0?nbsp;
Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?nbsp;

3.2.4 FTP 数字代码的意?nbsp;
110 重新启动标记应答?nbsp;
120 服务在多久时间内ready?nbsp;
125 数据链\埠开启,准备传送?nbsp;
150 文g状态正常,开启数据连接端口?nbsp;
200 命o执行成功?nbsp;
202 命o执行p|?nbsp;
211 pȝ状态或是系l求助响应?nbsp;
212 目录的状态?nbsp;
213 文g的状态?nbsp;
214 求助的讯息?nbsp;
215 名称pȝcd?nbsp;
220 新的联机服务ready?nbsp;
221 服务的控制连接埠关闭Q可以注销?nbsp;
225 数据q结开启,但无传输动作?nbsp;
226 关闭数据q接端口Q请求的文g操作成功?nbsp;
227 q入passive mode?nbsp;
230 使用者登入?nbsp;
250 h的文件操作完成?nbsp;
257 昄目前的\径名U?nbsp;
331 用户名称正确Q需要密码?nbsp;
332 d旉要̎号信息?nbsp;
350 h的操作需要进一部的命o?nbsp;
421 无法提供服务Q关闭控制连l?nbsp;
425 无法开启数据链路?nbsp;
426 关闭联机Q终止传输?nbsp;
450 h的操作未执行?nbsp;
451 命ol止Q有本地的错误?nbsp;
452 未执行命令:盘I间不?nbsp;
500 格式错误Q无法识别命令?nbsp;
501 参数语法错误?nbsp;
502 命o执行p|?nbsp;
503 命o序错误?nbsp;
504 命o所接的参数不正?nbsp;
530 未登入?nbsp;
532 储存文g需要̎L入?nbsp;
550 未执行请求的操作?nbsp;
551 h的命令终止,cd未知?nbsp;
552 h的文件终止,储存位溢出?nbsp;
553 未执行请求的的命令,名称不正?img src ="http://www.shnenglu.com/mydriverc/aggbug/109709.html" width = "1" height = "1" />

]]>
快速徏立简单vsftp http://www.shnenglu.com/mydriverc/archive/2010/03/14/109694.html旅?/dc:creator>旅?/author>Sun, 14 Mar 2010 12:37:00 GMThttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109694.htmlhttp://www.shnenglu.com/mydriverc/comments/109694.htmlhttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109694.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/109694.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/109694.html今天一公司合作家伙说要传文件给我们q,׃文本文g非要求俺l他开个ftp,都没则了Q只能给开个,从来没开q,在网l上搜烦了下linux下开ftp可以用自带的vsftp也可以用软gZ个,而且听说vsftp也挺不错Q就按网l教E一步步来了Q这里主要是ȝ下自q做法Q毕竟不是每个h在要急用时候还ȝ一些文章的详解?br>1.先用q几个命令看看是不是vsftpd安装正常
#service vsftpd start 启动
#service vsftpd stop 停止
#service vsftpd restart 重启
2.以上没有问题的话~辑vsftpd的配|文?br>[root@localhost /]#
vi /etc/vsftpd/vsftpd.conf   //q个文g的具体内容解释可以看下面“参考文?#8221;W一个链?br>3.anonymous_enable=YES ҎNO #止匿名讉K
4.?vsftpd.conf 中找?chroot_list_file=/etc/vsftpd.chroot_list把注释去掉然后徏?br>
/etc/vsftpd.chroot_list文gQ在文g中输入linuxpȝ中的一个或多个用户?一行一??br>
注:q个用户名是linuxpȝ中root用户d的?br>[root@localhost /]# useradd -s /sbin/nologin             //q样限制用户不能使用sshd

5.更改ftp端口仍然在vsftpd.conf文g中:
tcp_wrappers=YES
listen_port=2121   //自定义端口号Q记得不要与已有端口冲突
local_root=/server/apache/htdocs  //讑֮用户explorerq接ftp时候显C的目录
保存退出编辑?br>
6.
#service vsftpd restart 重启.然后一个利用系l已有用户名d的ftp开通了Q?br>注:#service vsftpd start 命o只是在linux开启后手动开启vsftpd的命令,如果linux重启Q还要用该命o重新启动?br>要想开机启动vsftp服务Q执行chkconfig --level 35 vsftpd on  (|络查询的未实践q?

后记Q?br>如果有时间研I就多看看徏立虚拟用户那部分Q虚拟用L比系l用户也怼更安全些Q也E微复杂些?br>
引用建立虚拟用户Q?br>=====================================================

[root@server root]# useradd vuser #新徏一个虚拟登陆指定的?
[root@server root]# vi users.txt  #虚拟可本一行用户名下一行密?br>[root@server root]# db_load -T -t hash -f users.txt /etc/vsftpd.login.db #把users.txt的内容加拟用L帐号和密?br>[root@server root]# chmod 600 /etc/vsftpd.login.db #Z安全修改里面的内?br>[root@server root]# vi /etc/pam.d/ftp  #修改里面的内?使之与下面的相同
[root@server root]# more /etc/pam.d/ftp
#%PAM-1.0
#auth       required    /lib/security/pam_listfile.so item=user sense=allow file
=/etc/ftpusers onerr=succeed
#auth       required    /lib/security/pam_pwdb.so shadow nullok
#auth       required    /lib/security/pam_shells.so
#account    required    /lib/security/pam_pwdb.so
#session    required    /lib/security/pam_pwdb.so
auth        required    pam_userdb.so db=/etc/vsftpd.login
account     required    pam_userdb.so db=/etc/vsftpd.login
再次修改/etc/vsftpd.conf,使其内容与anonymous有关的全部禁?q有刚才的chroot也被列ؓ用,如果想用的话保证虚拟可常的前提下再另行试,q在最后加入二句话:

guest_enable=YES

guest_username=vuser  接下来就是重启vsftpd

[root@server root]# killall -HUP vsftpd  #!
[root@server root]# ftp localhost  #试
Connected to server.redhat.org.cn.
220 Welcome to linfeng's ftp server.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): tom   #虚拟?br>331 Please specify the password.
Password:   #虚拟号tom的密?br>230 Login successful.  #成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,136,56)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).   #怎么会禁止了?想一下上面的,,呵呵,q就是因为vuser用户的权限啊,只需"chmod o+r /home/vuser"那可览,但不可上?因ؓ没有"w"?br>

=====================================

|络参考文章:
http://www.bianceng.cn/OS/Linux/200706/3020.htm
http://www.shineblog.com/user2/24790/archives/2005/175940.shtml
q两都比较详细?/p>

]]>
wu -ftp 安装和配|?/title><link>http://www.shnenglu.com/mydriverc/archive/2010/03/14/109686.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Sun, 14 Mar 2010 08:58:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2010/03/14/109686.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/109686.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2010/03/14/109686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/109686.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/109686.html</trackback:ping><description><![CDATA[如何配置WU-FTP服务?<br>本文: 作? (2001-06-27 08:10:01) <br>    在众多的|络应用中,FTPQFile Transfer porotocolQ有着非常重要的地位。在Internet中一 <br>    个十分重要的资源是软g资源。而各U各L软g资源大多数都是放在FTP服务器中的。可以说Q?<br>    FTP与WEB服务几乎占据了整个Internet应用?0%以上?<br>    FTP服务可以Ҏ服务对象的不同分Zc:一cLpȝFTP服务器,它只允许pȝ上的合法用户使用Q?<br>    另一cL匿名FTP服务器,Anonymous FTP ServerQ它使用M人都可以d到FTP服务器上去获取文件?<br>一、选择和安装FTP服务器Y?<br>    如果你在安装LINUXpȝ的时候,在选择启动q程的时候选择?#8220;ftpd”q一的话,安装完LINUXpȝ后, <br>    它已l将一个默认的FTP服务器安装到pȝ中去了。我们已l可以利用它来实现系lFTP服务器的功能了?<br>    我们只需在此基础上根据我们的需要进行一些个性化讑֮可以了?<br>    在绝大多数的LINUX发行版本中都选用的是WashingtonUniversity FTPQ它是一个著名的FTP服务器YӞ <br>    一般简UCؓwu-ftp。它功能强大Q能够很好地q行于众多的UNIX操作pȝQ例如:IBM AIX、FreeBSD?<br>    HP-UX、NeXTstep、Dynix、SunOS、Solaris{。所以Internet上的FTP服务器,一大半以上采用了它?<br>    wu-ftp拥有许多强大的功能,很适于吞吐量较大的FTP服务器的理要求Q?<br>    1Q?可以在用户下载文件的同时Ҏ件做自动?<br>        压羃或解压羃操作Q?<br>    2Q?可以对不同网l上的机器做不同的存取限Ӟ <br>    3Q?可以记录文g上蝲和下载时_ <br>    4Q?可以昄传输时的相关信息Q方便用户及时了 <br>        解目前的传输动态; <br>    5Q?可以讄最大连接数Q提高了效率Q有效地? <br>        制了负蝲?<br>二、wu-ftp的组?<br>    安装了wu-ftp后,你将?bin目录下看C下五个可执行文gQ? <br>ftpd       FTP服务器程?<br>ftpshut    用于关闭FTP服务器程?<br>ftpcount   昄目前在线人数  <br>ftpwho    查看目前FTP服务器的q接情况 <br>ckconfig   查FTP服务器的讄是否正确 <br>    除了q些可执行文件以外,它还?etc?var目录下生成了七个配置文gQ?<br>/etc/ftpusers <br>/etc/ftpaccess <br>/var/run/ftp.pids <br>/etc/ftpconversions <br>/var/log/xferlog <br>/etc/ftpgroups <br>/etc/ftphosts <br>    pȝ安装了wu-ftp后,会徏立一个特D的用户ftpQƈ?home目录下徏立了一个ftpd目录Q当用户以匿?<br>    d上来Ӟ会自动定位于这个目录下。在q个目录下一般会建立几个子目录?<br>/home/ftpd/bin    存放一些供FTP用户使用的可 <br>                  执行文g <br>/home/ftpd/etc    存放一些供FTP用户使用的配|?<br>                  文g <br>/home/ftpd/pub    存放供下载的信息 <br>/home/ftpd/incoming    存放供上载信息的I间 <br>三、wu-ftp的配|?<br>1. 查看、修?etc/inetd.conf文g <br>    /etc/inetd.conf文g是LINUXpȝ的超U服务器inetd的配|文件。它负责监听多个TCP/IP端口。当它收?<br>    hQ就Ҏ配置文gz一个相应的服务器。通过使用服务器,其他服务可以只在需要时才派生, <br>    从而大大节省了pȝ资源。而wu-ftp是利用极服务器inetd来监听请求的。当服务器inetd收到了客 <br>    L的FTPhӞ根据配|文件打开一个FTP服务q程。所以我们如果要使用wu-ftpQ就必须认在超U?<br>    服务器inetd的配|文件inetd.conf中有q样一句: <br>ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd <br>以便当超U服务器收到FTPh的时候,能够z一个wu-ftp的FTP服务q程。(注:要确认是否有q样一行时Q? <br>可以使用文g内容查找命o来确认: <br>cat /etc/inetd.conf | grep ftp  <br>如果没有Q则用手工加入或手工修改? <br>2. wu-ftpd的命令选项 <br>    wu-ftpd是wu-ftp的服务进E。它可以不带参数执行Q也可以带参数执行。下面简单介l一下wu-ftpd的执 <br>    行参数? <br>-d  当FTP服务器出错时Q将错误入系l的syslog中; <br>-l  每ơFTP客户端进行连接的入系l的syslog中; <br>-t  讄FTP客户端连接几分钟无操作就切断q接Q?<br>-a  使wu-ftp使用/etc/ftpaccess的设定; <br>-A  使wu-ftp不?etc/ftpaccess的设定; <br>-L  FTP客户端连U后所执行的程序记录在pȝ?<br>    syslog中; <br>-I  FTP客户端上载文件的日志记录?usr/adm.xferlog文g中; <br>-o  FTP客户端下载文件的日志记录 <br>    ?usr/adm/xferlog文g中?<br>    通过对以上参数的理解Q我们徏议,上面系l安装时的那条默认配|改为: <br>ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd –a –I  <br>3.提供自动压羃、解压羃的功?<br>    如果惌FTP服务器有自动压羃、解压羃的功能,必须先将一些压~、解压羃的命令文件如tar、gzip?<br>    gunzip、compress、uncompress{命令文件拷贝到/home/ftpd/bin目录下?<br>4. 关于/etc/ftpaccess的设|? <br>    q个配置文g是FTP服务器上最重要的配|文Ӟ它直接关pd你的FTP服务器能否正常工作,q有许多?<br>    限上的设|。下面是一个典型的配置实例?<br>loginfails 3 <br>class  local    real        * <br>class  remote  anonymous guest  * <br>limit  remote  100  Any  /etc/ftpd/toomany.msg <br>message  /etc/ftpd/welcome.msg  login <br>compress  yes  local remote <br>tar  yes  local remote <br>private  yes <br>passwd-check  rfc822  warn <br>log commands  real <br>log transfer  anonymous guest  inbound outbound <br>log transfer  real  inbound <br>shutdown  /etc/ftpd/shut.msg <br>delete  no  anonymous,guest <br>overwrite  no  anonymous,guest <br>rename  no  anonymous <br>chmod  no  anonymous,guest <br>umask  no  anonymous <br>upload  /home/ftpd  *  no <br>upload  /home/ftpd  /bin  no <br>upload  /home/ftpd  /etc  no <br>upload  /home/ftpd  /pub  yes  real  0644 dirs <br>upload  /home/ftpd  /incoming  yes  real guest anonymous 0644 dirs <br>alias  in  /incoming <br>email  <br><a href="mailto:guest@xxx.net">guest@xxx.net</a><br><br>email  <br><a href="mailto:guest@yyy.net">guest@yyy.net</a><br><br>deny  *.com.tw  /etc/ftpd/deny.msg <br>    下面我们逐句q行讲解Qƈl出每条讄的含义,以便大家触类旁通,以便Ҏ自己FTP服务器的具体 <br>    情况q行合理的设|?<br>1Q? 格式Qloginfails  [ơ数] <br>   功能Q设定当用户d到FTP服务器时Q允许用戯错密码的ơ数?<br>   实例Qloginfails 3Q密码输入错误三ơ就切断q接?<br>2Q?格式Qclass  [cd]  [real/guest/anonymous]  [IP地址] <br>   功能Q这个指令的功能讑֮FTP服务器上用户的类别。ƈ可对客户端的IP地址q行限制Q允许某部分?<br>   IP地址或全部的IP地址讉K。而在FTP服务器上的用户基本上可以分ؓ以下三类Q?<br>         real  在该FTP服务器有合法帐号的用P <br>         guest  有记录的匿名用户Q?<br>         anonymous  权限最低的匿名用户 <br>   实例Qclass  local  real  *Q定义一个名为local的类Q它包含了在M地方d(*代表所有IP地址Q?<br>   的real用户? <br>      class  remote  anonymous guest  *:定义一个名为remote的类Q它包含了在M地方d的anonymous <br>      用户和guest用户?<br>3Q?格式Qlimit  [cd]  [人数]  [旉]  [文g名] <br>   功能Q这个指令的功能|指定的旉内指定的cd允许q接的指定hC限。当辑ֈ人数上限的时候, <br>   昄指定文g的内宏V?<br>       实例Qlimit  remote  100  Any  /etc/ftpd/toomany.msgQ在M旉内,remotecȝ讉K用户?<br>       ?00人时Q将不再允许无法产生新的q接Q当W?01位客戯q接Ӟq接失败,q象用户出示?<br>       ?etc/ftpd/toomany.msg的内宏V?<br>4Q?格式Qmessage  [文g名称]  [指o]  <br>   功能Q当用户执行所指定的指令时Q系l将指定的文件内ҎC出来? <br>实例Qmessage  /etc/ftpd/welcome.msg  loginQ当用户执行login命oӞ也就是登录到FTP服务器上的时候, <br>pȝ显C文?etc/ftpd/welcome.msg的内宏V?<br>5Q?格式Qcompress  [yes/no]  [cd]  <br>   功能Q设|哪一个类别的用户可以使用compressQ压~)功能?<br>  实例Qcompress  yes  local remoteQ允许local和remote两个cd的用户都能?nbsp;     compress(压羃)功能?<br>6Q? 格式Qtar  [yes/no]  [cd]  <br>   功能Q设|哪一个类别的用户可以使用tarQ归)功能?<br>       实例Qtar  yes  local remoteQ允许local和remote两类的用户都能用tar功能?<br>7Q? 格式Qprivate  [yes/no]  <br>   功能Q设定是否支持群l对文g的取用?<br>   实例Qprivate  yesQ支持群l对文g的取用?<br>8Q? 格式Qpasswd-check  [none/trivial/rfc822]  [enforce/warn] <br>   功能Q设定对匿名用户anonymous的密码用方式?<br>  none   表示不做密码验证QQ何密码都可以dQ?<br>trival   表示只要输入的密码中含有字符“@”可以登录; <br>rfc822  表示密码一定要W合RFC822中所规定的E-Mail格式才能dQ? <br>enfore  表示输入的密码不W合以上指定的格式就不让dQ?<br>warn   表示密码不符合规定时只出现警告信息,仍然能够d? <br>  实例Qpasswd-check  rfc822  warnQ希望能够得到符合规定的E-Mail作ؓ密码Q但如果不是Q也允许d?<br>9Q? 格式Qlog command [real/guest/anonymous]  <br>    功能Q设|哪些用L录后的操作记录在文g/usr/adm/xferlog中?<br>    实例Qlog command realQ当real用户d后,他的操作记录下来。由于其它用h限较低,所以操作不 <br>    会引起太大的安全隐患Q所以一般只需Creal? <br>L操作可以了?<br>10Q?格式Qlog transfers  [real/guest/anonymous]  [inbound/outbound] <br>   功能Q设|哪些用L上蝲QinboundQ和下蝲QoutboundQ操作做日志?<br>   实例Qlog transfer  anonymous guest  inbound outboundQ对于匿名用戯更加的关注它们的文g操作Q?<br>   所以无Z载、下载都q行记录?<br>  log transfer  real  inboundQ对于合法用户则只记录他的上载记录?<br>11Q?格式Qshutdown  [文g名] <br>   功能QFTP服务器关闭的旉可以讄在后面所指定的文件中Q当讄的时间一刎ͼ便无法登录FTP服务器了Q?<br>   要恢复的话只有将q个文g删掉。而这个文件必 ȝ指o/bin/ftpshut来生成?<br>       实例Qshutdown  /etc/ftpd/shut.msg <br>12Q? 格式Qdelete  [yes/no]  [real/anonymous/guest] <br>   功能Q设|是否允许指定用户用delete命o删除文g。默认是允许?<br>   实例Qdelete  no  anonymous,guestQؓ了更好地理FTP服务器,一般情况下Q我们不允许匿名用户执行 <br>   delete命o? <br>13Q?格式Qoverwrite  [yes/no]  [real/anonymous/guest] <br>   功能Q设|是否允许指定用戯盖同名文件。默认是允许?<br>   实例Qoverwrite  no  anonymous,guestQؓ了更好地理FTP服务器,一般情况下Q我们不允许匿名用户?<br>   盖同名文件? <br>14Q?格式Qrename  [yes/no]  [real/anonymous/guest] <br>   功能Q设|是否允许指定用户用rename命o来ؓ文g改名。默认是允许?<br>   实例Qdelete  no  anonymousQؓ了更好地理FTP服务器,一般情况下Q我们不允许匿名用户执行rename?<br>   令改变文件名。而对有记录的匿名用户则适当的放宽,允许他们使用改名命o?<br>15Q? 格式Qchmod  [yes/no]  [real/anonymous/guest] <br>   功能Q设|是否允许指定用户用chmod命o更改文g权限。默认是允许?<br>   实例Qdelete  no  anonymousQguestQؓ了更好地理FTP服务器,一般情况下Q我们不允许匿名用户执行 <br>   chmod命o更改文g权限?<br>16Q?格式Qumask  [yes/no]  [real/anonymous/guest] <br>   功能Q设|是否允许指定用户用umask命o。默认是允许?<br>   实例Qdelete  no  anonymousQؓ了更好地理FTP服务器,一般情况下Q我们不允许匿名用户执行umask命o?<br>17Q? 格式Qupload  [根目录]  [上蝲目录]  [yes/no]  [用户]  [权限]  [dirs/nodirs] <br>   功能Q对可以上蝲的目录进行更加详l的讄?<br>   实例Qupload  /home/ftpd  *  noQ表C在子目?home/ftpd下不允许上蝲Q?<br>   upload  /home/ftpd  /bin  noQ表C在子目?home/ftpd/bin下不允许上蝲Q?<br>   upload  /home/ftpd  /etc  noQ表C在子目?home/ftpd/etc下不允许上蝲Q?<br>   upload  /home/ftpd  /pub  yes  real  0644 dirsQ允许用服务器上的合法用户在子目?home/ftpd/pub目录 <br>   下能上蝲权限?644(也就?rw-r--r--)的文Ӟ而且在这个目录下可以新徏子目录? <br>  upload  /home/ftpd  /incoming  yes  real guest anonymous 0644 dirsQ允许所有的用户在子目录 <br>  /home/ftpd/incoming下能上蝲权限?644的文Ӟ而且在这个目录下可以新徏子目录? <br>18Q?格式Qalias  [目录别名]  [目录名] <br>   功能Q给指定目录讄一个别名,在切换目录时可以用较短的目录别名?<br>   实例Qalias  incQ?/incomingQؓ子目录incoming讄一个别名incQ?<br>19Q? 格式Qemail  [guest的E-Mail地址] <br>   功能Q只要将某些E-Mail地址讄在这个地方,那么q些用户d到FTP服务器时Q他的n份将为guestQ一般权 <br>   限比real低一些,比anonymous高?<br>   实例Qemail <br><a href="mailto:guest@xxx.net">guest@xxx.net</a><br>   email <br><a href="mailto:guest@yyy.net">guest@yyy.net</a><br>Q这里仅是一个示例,实际上可     以包含多个符合规? <br>   的E-Mail地址?<br>20Q?格式Qdeny  [IP地址/域名]  [说明文g] <br>   功能Q这个设|可以限制哪一些IP地址或域名的用户无法dFTP服务器?<br>   实例Qdeny  *.com.tw  /etc/ftpd/deny.msgQ设|凡是域名是?#8220;.com.tw”l束的域名,都禁止其讉K?<br>   而将/etc/ftpd/deny.msg的内ҎC给用户看?<br>5. 讄/etc/ftpuser,止某些用户d <br>    有时我们需要禁止一些用户用FTP服务。其实这个设|是十分单的Q只需要将要禁止的用户帐号写入文g <br>    /etc/ftpuser中。由于从pȝ的安全考虑Q一般我们是不希望权限过大的用户和一些与命o名相同的用户q入 <br>    FTP服务器。所以在~省的配|中Q一般以下用户已l被列入?#8220;黑名?#8221;?<br>  root   <br>  uucp <br>  news <br>  bin <br>  adm <br>  nobody <br>  lp <br>  sync <br>  shutdown <br>  halt <br>  mail   <br>6. 讄/etc/ftphosts,止某些来自指定机器上的d如果你需要拒l来自某些主机的dQ一U方法就是在 <br>/etc/ftpaccess中设|deny命oQ另一U更加简单的Ҏ是?etc/ftphosts中写入你要禁止的L的IP地址或域名?<br>7. 使新的配|生?<br>到此为止Q我们已l能够根据自q需要对FTP服务器配|进行必要的修改和调整。而让我们重新配置后,必M? <br>生效。一般的Q对/etc/ftpaccess的配|是直接作用于设|后的下一ơFTP服务q程。而其它的则要对inetdq程重新 <br>启动? <br>5.4 wu-ftp相关的其他一些命令的使用 <br>5.4.1 q接数统计命令ftpcount <br>我们可以使用ftpcount命o十分清楚地统计出当前q接到FTP服务器上的用h目,q且同时列出上限。命令输?<br>如下所C: <br>Service class local         0           Users(20maximum) <br>Service class remote       5           Users(100maximum) <br>5.4.2 在线用户查看命oftpwho <br>我们可以使用ftpwho命o十分清楚地列出当前连接的用户的详l情c?<br>5.4.2 FTP关闭文g生成命oftpshut <br>我们可以使用ftpshut命o生成一个在/etc/ftpaccess中设|的shut.msg文gQ用于关定。ftpshut命o的格式ؓQ? <br>Ftpshut      time   <br>-l   q个参数讑֮在关闭FTP服务器功能前多少分钟时停止用Lq接Q?<br>-d   q个参数讑֮在关闭FTP服务器功能前多少分钟时切断用戯接; <br>time 指定关闭FTP服务器的旉。例?Q?0分则写ؓ0620Q?nbsp; <br>(<br><a target="_blank">http://www.fanqiang.com</a><br>)     q入【UNIX论坛?nbsp; <br><img src ="http://www.shnenglu.com/mydriverc/aggbug/109686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2010-03-14 16:58 <a href="http://www.shnenglu.com/mydriverc/archive/2010/03/14/109686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VSFTPD官方资料译版(不完整版Q?--http://www.shnenglu.com/mydriverc/archive/2010/03/14/109685.html旅?/dc:creator>旅?/author>Sun, 14 Mar 2010 08:55:00 GMThttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109685.htmlhttp://www.shnenglu.com/mydriverc/comments/109685.htmlhttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109685.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/109685.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/109685.html译了部分VSFTPD的官方资料?br>有些知道是什么意思,但难于翻译。有些涉及专业的知识Q我自己也不懂,只好按字面翻译。有些我自己看不懂,只好量译?br>如果看了其中一部分觉得p涂Q请参阅官方文挡?br>安装?
===============
q个文g详细介绍了如何从VSFTPD?tar.gz分发包开始,建立和安装ƈq行VSFTPD?

1Q徏立VSFTPD
先进入解?tar.gz文g后生的目录内。如下:
cd vsftpd-2.0.1

~辑"builddefs.h"以操作compile-time讑֮。(tcp_wrappers build,{)
输入make,回RQ如果它不工作请发邮仉知?.
q将产生一个二q制文gQ你可以验证一下。如下:
[chris@localhost vsftpd]$ ls -l vsftpd
-rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd

2Q满VSFTPD安装所需的一些条?
VSFTPD默认讄需要一?nobody"用户Q如果这个用户不存在Q那么添加它。如下:
[root@localhost root]# useradd nobody
useradd: user nobody exists

VSFTPD默认讄需要一个空目录Q?usr/share/empty.增加q个目录Q如果它q不存在的话。如下:
[root@localhost root]# mkdir /usr/share/empty/
mkdir: cannot create directory `/usr/share/empty': File exists

如果容许匿名用户Qanonymous)Q那么你需要一?ftp"用户和其home目录Q这个home目录不属?#8220;ftp”用户Q而且“ftp"用户也对其没有写权限Q在你的pȝ中存在?br>以下命o用来创徏一?ftp"用户Q如果它q不存在的话?
[root@localhost root]# mkdir /var/ftp/
[root@localhost root]# useradd -d /var/ftp ftp

Q即使你?ftp"用户已经存在Q完成以下这两步也是很有好处的:Q?
[root@localhost root]# chown root.root /var/ftp
[root@localhost root]# chmod og-w /var/ftp

3Q安装VSFTPD的配|、执行和帮助文g?br>输入"make install"后会二q制文g和帮助文件拷贝到适当的目录?br>你也可以手工拯q些文gQ?
cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8

"make install"不会拯默认的配|文Ӟ所以徏议你手工拯Q?
cp vsftpd.conf /etc
daidong注:Ҏ你系l版本的不同Q也可能?cp vsftpd.conf /etc/vsftpd

4)试 Q无inetd影响Q?
VSFTPD能运行在独立模式Qstandalone)或者通过inetd(xinetd)来启动?br>你能通过inetd来运行vsftpd以更好地控制它。但我们在首ơ运行时不这么做Q以便检查系l是否现在配|正常?br>~辑/etc/vsftpd.confQdaidong注:也可能是/etc/vsftpd/vsftpd.conf)Qƈ在最下面加入以下q一行:
listen=YES

q将告诉VSFTPD不要从inetd启动?
OKQ现在试着启动FTP?br>以ROOTd?br>定你没有运行其他FTP服务Q否则VSFTPD不能占用FTP所需?1端口Q?br>q行那个二进制文Ӟ如下Q?
[root@localhost root]# /usr/local/sbin/vsftpd &
[1] 2104

如果一切正常,那么你将q上FTP服务器,如下Q?
[chris@localhost chris]$ ftp localhost
Connected to localhost (127.0.0.1).
220 (vsFTPd 1.1.1)
Name (localhost:chris): ftp
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,229,133)
150 Here comes the directory listing.
d--x--x--x 2 0 0 4096 Jan 14 2002 bin
d--x--x--x 2 0 0 4096 Apr 21 20:52 etc
drwxr-xr-x 2 0 0 4096 Apr 21 20:52 lib
drwxr-sr-x 2 0 50 4096 Jul 26 22:58 pub
226 Directory send OK.
ftp>

5Q从inetd或者类似方式启动(官方推荐使用standalone方式Q?br>你也许想通过inetd或者类似方式启动VSFTPDQ因能给你更多的感受。例如xinetd有很多的设|?br>Q注意:VSFTPD的内在机制屏蔽了xinetd的大多数的有用的讄Q?br>如果使用标准?inetd",你需要编?etc/inetd.conf,在其中加入以下一行:
ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd

Q确定你删除或者注释掉一些已存在的FTP服务配置行。如果你没有安装tcp_wrappers,或者不想用它们,那么请去?usr/sbin/tcpd part).

inetd需要指定ƈ重新载入它的配置文gQ?
kill -SIGHUP `pidof inetd`

如果你想使用"xinetd",请参阅我们提供的范例 /EXAMPLE/INTERNET_SITE/README. 而其他范例文件将告诉你如何调配出更强大的xinetd功能?

6Qؓ本地d配置PAM文gQ可选)
如果你在一台激zMPAM的设备上q行VSFTPDQ你需要提供一?/etc/pam.d/ftp 文g。否则非匿名用户无法登录服务器?br>Q注Q如果你的PAM版本比较老,那么q个文g也许?/etc/pam.conf).

做ؓ一个标准设|,你可以拷贝一个已提供的范例文Ӟ如下Q?
cp RedHat/vsftpd.pam /etc/pam.d/ftp

7Q自定义你的配置文g
完成以上的配|后Q徏议你安装一个配|文件。默认的配置文g位置?etc/vsftpd.conf. 在VSFTPD软g分发包内有一个范例配|文件?br>你可以拷贝其?etc/vsftpd.conf以做q一步修攏V?
cp vsftpd.conf /etc
Qdaidong注:也可能是 cp vsftpd.conf /etc/vsftpd ).

q个默认配置即不容许本地d也不容许匿名用户上传Q也怽希望更改q个配置?br>其它
===================
试q_ Q已通过Q?
-行的,功能完善的^台都能测试通过。在以下q_的较新版本,VSFTPD工作得很好。在其大部分较早的版本下Q也q行正常?
- RedHat Linux
- RedHat Enterprise Linux
- Solaris / GNU tools (Solaris 8 or newer)
- SuSE Linux
- Debian Linux
- OpenBSD
- FreeBSD
- NetBSD
- HP-UX / GNU tools
- IRIX / GNU tools
- Mac OS X (note; older versions have setgroups() problem. 10.3.4 reported OK)
虚拟用户1
=============
q个例子C了如何ؓ虚拟用户讄VSFTPD/PAM?br>虚拟用户是一个在pȝ中ƈ不作Z个登录实体而存在的用户。用虚拟用h使用真实的用h安全Q因个̎号只能用于FTP服务器?br>虚拟用户l常用来提供l不大可信Q的用戯问某些资源,而这些资源通常是其他普通用户不能访问的?

1Q创拟用h据库
我们用pam_userdb来认证虚拟用戗这需要提供一?#8220;db"格式Q一U通用数据库格式)的用户名/密码文g?br>创徏一?db"格式的文Ӟ首先要创Z个标准文本文Ӟq把用户名,密码以竖直排列方式输入。如logins.txtQ?
tom
foo
fired
bar
q个例子?tom用户的密码是foo.fired用户的密码是bar.
以ROOTdQ创Z个数据库文gQ如下:
db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
Q这要求berkeley dbE序已经安装Q?
(注:一些系l也许安装了多个版本?db",所以某些情况下你可能?db3_load"才是正确的。对于一? Debianpȝ是q样?br>关键在于要让pam_userdb怿它的d数据库是哪一个db版本所产生Q一般都是db3Q尽你的系l里可能安装的是db4).Q?br>q将创徏/etc/vsftpd_login.db文g。显Ӟ你希望设定这个文件的权限Q?
chmod 600 /etc/vsftpd_login.db

要了解更多关于维护你的登录数据库的信息,请在"berkeley DB"察看相关文档Q?
http://www.sleepycat.com/docs/utility/index.html

2Q用你的新数据库创徏一个PAM文g
请参考范例vsftpd.pamQ它包含2行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

q是告诉PAM用新的数据库去验证用戗把q个PAM文g拯到PAM目录Q一般是/etc/pam.d
cp vsftpd.pam /etc/pam.d/ftp

3)拟用戯|home目录
useradd -d /home/ftpsite virtual
ls -ld /home/ftpsite
(which should give):
drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

我们已经创徏了一个名?virtual"的用Phome目录?/home/ftpsite".
我们拯一些东西到q个下蝲目录Q?
cp /etc/hosts /home/ftpsite
chown virtual.virtual /home/ftpsite/hosts

4Q创Z的vsftpd.conf配置文g
请参考这个目录下的例子。让我们一行行地看一看这些配|:
anonymous_enable=NO
local_enable=YES

安全赯Q屏蔽了匿名用户Q只启用了非匿名用户Q即虚拟用户使用的̎P

write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

Z安全L认这几个配置Q这关闭写的权限?

chroot_local_user=YES

q将把虚拟用户锁定在我们在以上设|的/home/ftpsite目录内?

guest_enable=YES
guest_username=virtual

guest_enable非常重要-它激zM虚拟用户Q而guest_username说明所有的虚拟用户都对应我们在上面讄的真实用P“virtual".
q同时确定了虚拟用户在文件系l中的位|,也就是说Q虚拟用Lhome目录?virtual"用户的home目录Q?home/ftpsite?

listen=YES
listen_port=10021

q让VSFTPD以独立模?standalone)q行Q而不是从inetd方式启动。也是_你运行VSFTPD可执行文件就启动了FTP服务?br>同时也让VSFTPD启用非标准端?0021来监听FTPhQFTP一般?1端口Q?

pasv_min_port=30000
pasv_max_port=30999

q设定了被动模式的FTPh端口。当你配|了一个防火墙的时候,q个配置很好用?br>拯范例配置文g?etc
cp vsftpd.conf /etc/
(daidong注:也可能是/etc/vsftpd)

5)启动VSFTPD
到VSFTPD二进制文件所在的目录Q输入:
./vsftpd

如果一切正常,q个命o生效。否则,你将会看C些错误信息的反馈?

6Q测?br>启动另一个会话。(或者ctrl-zQ再输入"bg",让VSFTPD在后台运行)?br>q是一个FTP会话的例子:

ftp localhost 10021
Connected to localhost (127.0.0.1).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (localhost:chris): tom
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (127,0,0,1,117,135)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp> size hosts
213 147
ftp>

注释Q?br>密码?foo"
出现”failed to open directory“的话Q别担心。这是因?home/ftpsite目录不容许被L览?br>Q我们可以更改anon_world_readable_only=NO以消除告警,但ؓ了安全,q是保留q个配置Q?br>我们能通过size命o看到我们已经讉K了被我们拯到这里的"hosts"文g?

vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=10021
pasv_min_port=30000
pasv_max_port=30999
虚拟用户2
===============
q个例子演C如何扩?#8220;VIRTUAL_USERS”那个范例Q从而实现更复杂一点的配置?br>让我们假定我们需?U不同的虚拟用户Q一U只能浏览ƈ下蝲资源Q另一U能上传文gq浏览站内资源?br>要激z这个设|,我们用VSFTPD的强大的“单个用户配置”功能Q是V1.1.0后出现的新功能)?br>在前一个虚拟用戯例中Q我们创Z2个用?tom和fred.
我们实现fred有写权限以上传新文gQ同时tom只能下蝲文g?

1Q激zd个用户配|功能?br>要激z这个功能,需要增加以下配|行到配|文Ӟ

user_config_dir=/etc/vsftpd_user_conf

q且创徏目录Q?

mkdir /etc/vsftpd_user_conf

2Q授予tomd所有文件和目录的权?br>在上一个例子的最后,我们注意到虚拟用户只能浏览所有的完全可读属性的目录和文件。我们/home/ftpsite完全可读Q而且被上传的文g?br>赋予了完全可ȝ权限Qdaidong注:意思是说这栯拟用户就能读取所有的文g了)。但实现q个目的的另一个方法是授权tom能下载那些非完全可读的文件?br>对于tom,他的配置文g中需要修改一个设|:
anon_world_readable_only:

设ؓ"anon_world_readable_only=NO" > /etc/vsftpd_user_conf/tom
(daidong注:既把默认配置修改了anon_world_readable_only后,复制?etc/vsftpd_user_conf下,名字为tom)

验证一下结?以tomdQ?#8220;ls”返回一个目录列表。如果以fredd不会如此?br>注意Q重启VSFTPD以启用配|文?etc/vsftpd.conf(高用户也可以发送SIGHUPlVSFTPD的监听进E?.

3)授予fregd所有文?目录q创建新文g/目录的权?但让他不能对已存在的文g/目录q行操作.

echo "anon_world_readable_only=NO" > /etc/vsftpd_user_conf/fred
echo "write_enable=YES" >> /etc/vsftpd_user_conf/fred
echo "anon_upload_enable=YES" >> /etc/vsftpd_user_conf/fred

验证一?以tomd,不能上?而fred可?
试图删除一个文?-?你们俩都不行!


]]>
LINUX下FTP的搭?wuftphttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109675.html旅?/dc:creator>旅?/author>Sun, 14 Mar 2010 06:27:00 GMThttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109675.htmlhttp://www.shnenglu.com/mydriverc/comments/109675.htmlhttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109675.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/109675.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/109675.htmlFTP服务器的安装及管?wuftp

说明Q?/strong>
Linux下一般最常用的工具wu-ftpd.

wu-ftpd的安装非常容易,大多数版本的Linux中都包含了wu-ftpd的rpm软g包,你可以在安装Linux时指定装入。如果你惌行编译源代码Q也可以到ftp://ftp.wu-ftpd.org下蝲最新版本的源代码包?

安装好以后,可以用ckconfig命o来检查是否已l正安装。在/etc/passwd中可以指定ftp用户的登入目录?

wu-ftpd主要有以?个配|文Ӟ

ftpaccess(主要配置文gQ控制存取权?

ftpconvertions(配置文g压羃/解压~{?

ftpgroups(讑֮ftp自己定义的群l?

ftphosts(讑֮个别的用h?

ftpservers(讑֮不同IP/Domain Name以对应到不同的虚拟主?

ftpusers(讑֮哪些帐号不能用ftpq线)


一. ftp服务?br>1. inetd配置文g或xinetd.conf配置文g
/etc/inetd.conf文g内容如下:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a

/etc/xinetd.conf文g内容如下:
service ftp
{
socket_type = stream
protocol = tcp
wait = no
user = root
#only_from = 202.118.66.0
#only_from += 192.168.1.2
#only_from += localhost
server = /usr/sbin/in.ftpd
server_args = -l -a
}


相关文g:/etc/services
ftp-data 20/tcp
ftp 21/tcp

2. ftp用户(Anonymous FTP服务器需要用?
文g:/etc/passwd?etc/shadow

/etc/passwd:
ftp:x:500:50:Anonymous FTP User:/home/ftp:/bin/false

/etc/shadow:
ftp:*:10689:0:99999:7:::

$finger ftp
Login: ftp Name: FTP User
Directory: /home/ftp Shell: /bin/false
Never logged in.
No mail.
No Plan.

3. DNS配置
ftp IN CNAME officail.domain.name.

4. 理员邮件别?br> 文g: /etc/mail/aliases (Solairs)
/etc/aliases (Linux)
(egrep aliases /etc/mail/sendmail.cf )

ftp-admin: real-user-name@domain.name

相关命o: newaliases, 建立邮g别名


? 文gpȝl构
1. Anonymous FTP 目录l构
如下子目?
bin(ls,gzip,tar{anonymous ftp用户所要用的二进制可执行文g)
etc(passwd,group)
lib(动态连接库,ld-2.0.7.so, ld-linux.so.2, ldd ../bin/ls {?
pub(可下载文?

2. passwd及group文g
不要使用pȝ的passwd及group文g,最好只放所需的用户及l信?br> passwd文g:
ftpadm:x:0:0:Anonymous FTP:/home/ftp:/bin/false
ftp:x:60000:60000:Anonymous FTP:/home/ftp:/bin/false
group文g:
ftpadmin:x:0:
ftp:x:60000:

3. 文g及目录属?br> ȝ?home/ftp 属主root, 属?55
bin 属主root lwheel或other, 属?11
etc 同上
lib 属主root, 属?55
pub 属主为root或ftp理?属?55

认不要用ftp作Q何文件或目录的属?

[hbwork@helius /etc]$ cd /home/ftp/
[hbwork@helius ftp]$ ls -l
total 4
d--x--x--x 2 root root 1024 Apr 8 17:57 bin
d--x--x--x 2 root root 1024 Jun 4 15:12 etc
drwxr-xr-x 2 root root 1024 Apr 8 17:57 lib
dr-xr-sr-x 2 root ftp 1024 Apr 8 11:18 pub

$ls -l bin
[root@helius ftp]# ls -l bin/
total 250
---x--x--x 1 root root 15236 Apr 28 1998 compress
---x--x--x 1 root root 46356 Sep 11 1998 cpio
---x--x--x 1 root root 45436 Sep 11 1998 gzip
---x--x--x 1 root root 29980 Sep 11 1998 ls
---x--x--x 1 root root 110668 Sep 11 1998 tar
lrwxrwxrwx 1 root root 4 May 19 16:48 zcat -> gzip

$ls -l etc
total 19
-r--r--r-- 1 root root 57 Jun 4 15:12 group
-r--r--r-- 1 root root 16372 Sep 11 1998 ld.so.cache
-r--r--r-- 1 root root 83 Jun 4 15:12 passwd

(在Solaris上徏立anonymouse FTPҎ一?请参考Wu-ftpd-faq)


4. 可选目?br> incoming Owner: root Mode:1733 (chmod 1733 incoming)

? 试及调?br> egrep ftp /etc/inetd.conf
ps ax |egrep inetd
kill -HUP $PID

$ftp localhost (or ftp 0)
执行ls cd get {指令看一下结果如?br>

? wu-ftpd FTP服务器进E?br>
增强功能:
. 允许Ҏ用户的ip地址或主?用户名设|不同的c?br> . Ҏ讄的类,理员可以控制其讉K权限,如防止anonymous用户
删除文g或覆盖已有的文g
. 可以实现自动执行uncompress,compress,tar,gzip{功?br> . 可以记蝲所有的upload/download,及ftp client所发送的每个命o.
. 允许qxxftp服务?br>
相关配置文g:
ftpaccess
ftpconversions
ftphosts
ftpuser

相关命o:
strings /usr/sbin/in.ftpd |egrep ftpaccess

1. ~译 wu-ftpd

最新版? wu-ftpd-2.5.0
ftp://ftp.dlut.edu.cn/pub/unix/ftp/servers/

$tar -zxvf wu-ftpd-2.5.0.tar.gz
$cd wu-ftpd-2.5.0
在编译安装之前参考文件INSTALL,README,upload.configuration.HOWTO
如想定制自己的wu-ftpd,可编辑文件src/pathnames.h
$build help
查看~译帮助

$./build lnx
$su
#./build install

2. 命o行选项
-d Sends debugging information to syslog
-a Enable the use of the ftpaccess file(This is the default)
-A Disable the use of the ftpaccess file
-L Cause ftpd to log all USER commands.
-i Causes ftpd to log all incoming(upload) file in the xferlog
file( See pathnames.h )
-o Causes ftpd to log all outgoing(download) files in the xferlog file

3. 文gftpconversions
doc/examples/, 用于指定get时的实时压羃或展开(on-the-fly).

此文件不般情况下不用作修?br>
4. ftpaccess
(1)定义c?br> 三种用户cd: real anonymous
guest(需要提供相应的口o)
格式:
class classname type[,type,...] address [ address ...]

CZ:
class local real *.dlut.edu.cn 202.118.66 localhost
class anonymous anonymous *


(2)拒绝讉K
deny *.net.cn /etc/ftpmsgs/msg.denied

(3)限制讉K
limit class number times messages

limit anonymous 200 SaSu
limit anonymous 100 Any /etc/ftpmsgs/msg.toomany


loginfails 2
tar no anonymous
compress no anonymous

chmod yes|no type [type ...]
delete yes|no type [type ...]
overwrite yes|no type [type ...]
rename yes|no type [type ...]
umask yes|no type [type ...]

passwd-check none|trivial|rfc822 enforce|warn

(5)banner
昄在用户login之前的信?br> banner /etc/ftpmsg/banner.msg

其中banner.msg文g中可以引用如下变?
%C Current working directory
%E Email address of the administrator( email ftpadm@dlut.edu.cn)
%F 可当目录下可用空?br> %L hostname
%M 最大允许连接数
%N 同一cM当前q接?br> %R The client host'name or ip address
%T Current local time
%U The name the user specified at login

CZ文g:
Welcome to this test FTP Archive, running on %L.

Please contact %E with any technical problems you may have
accessing this archive.

You are currently user %N out of a maximum %M users. It's
%T in PRC.

(6)message命o
message pathname login
message pathname cwd=dir
message .conents cwd=*
每改变目录均昄,cwd=dir只在W一ơ更Ҏ昄

(7)readme命o
readme pathname [login|cwd=dir] [class] [class]

readme README* cwd=*

(8)shutdown命o (2.5.0上不正常)
shutdown pathname

(9)log命o

log commands type [ type ...]

log transfer type [type ...] direction[,direction]

(10)alias
alias source: /pub/local/sw/source

(11)cdpath
cdpath /pub /pub1

上蝲控制
upload hierarchy directory yes|no owner group mode [dirs|nodirs]

下面的wu-ftpd-2.5.0 /etc/ftpaccess文g中的upload配置(大家可以试一下大工FTP
服务器的upload,但别传没用的q大的文?

# FTP-home-dir archiv-dir allow? owner group mode dirs?
# (as in /etc/passwd)

upload /home/ftp * no
upload /home/ftp /pub3/incoming/windows yes ftpadmin ftp 0664 dirs
upload /home/ftp /pub3/incoming/windows/* yes ftpadmin ftp 0664 dirs
upload /home/ftp /pub3/incoming/unix yes ftpadmin ftp 0666 dirs
upload /home/ftp /pub3/incoming/unix/* yes ftpadmin ftp 0666 dirs
upload /home/ftp /pub3/incoming/other yes ftpadmin ftp 0666 dirs
upload /home/ftp /pub3/incoming/other/* yes ftpadmin ftp 0666 dirs
upload /home/ftp /pub3/incoming/WDI yes ftpadmin ftp 0666 dirs
upload /home/ftp /pub3/incoming/WDI/* yes ftpadmin ftp 0666 dirs


5. ftphosts文g
allow ftp *.dlut.edu.cn
allow anonymous *.dlut.edu.cn
deny ftp *.dlmu.edu.cn
deny ftp *.dlmu.edu.cn 202.118.80.*


6.实用E序

ftpcount
ftpwho
ftushut

l护:
建立q接时最好用相对\径?br> Ҏ软gcd建立不同的子目录?br> 最好在每个目录中徏立相应的说明文g或index文gQ方便用h找?/pre>

]]>
iptables 下开放ftphttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109674.html旅?/dc:creator>旅?/author>Sun, 14 Mar 2010 06:24:00 GMThttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109674.htmlhttp://www.shnenglu.com/mydriverc/comments/109674.htmlhttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109674.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/109674.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/109674.htmliptables 的filter表的INPUT铄默认{略设ؓ了DROPQ其余的铑֝为ACCEPT? 该服务器卌作ftp服务器,也要q上别的ftp服务器。即是说要把源端口和目的端口都开?1才行Q?br>iptables -A INPUT -p tcp –sport 21 -j ACCEPT
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
开?1端口p了吗Q不是的。先说说ftp协议。ftp协议是一个简单、保密性差Q明码)的tcp协议Q它的工作原理是客户端先q服务器? ?1端口Q然后经q?步的握手以后建立了一条连接。要注意的是Q这条连接只可以用来传输ftp的命令,只有q条q接的话是什么都传不了的Q就是? “ls”命o来查看文件也不行?br>建立了命令的q接以后Q服务器端就要徏立一条数据的q接。数据的q接又分Z动模式(portQ和被动模式QpassiveQ。ftp默认是被? 模式Q主动和被动之间使用”pass”命o切换。主动模式通过20端口与客L相连Q而被动模式却使用1024以后的端口与客户端相q。由?024以后 的端口是随机分配的,所以在被动模式下我们是不知道服务端是用什么端口与客户端连接的。也是_我们是不知道iptables要开放什么端口?br>开始我使用的是
iptables -A input -p tcp –sport 1024: –dport 1024: -j ACCEPT
来让ftp建立被动q接的。但觉得如果q样的话Q那q于把所以p2p的连接都开放了Q不安全?br>于是在CU上问人,l于扑ֈ了解决的Ҏ:
1、加载模块?br>
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp

2,加上一条规则:
处于server
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

处于client
iptables -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

允许q接保持的被动访问?br>其实q样在重启iptables的时候所需的模块又不见了,通过不懈的努力终于找C最l的解决ҎQ编?etc/sysconfig/iptables-configQ?br>IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"
把需要加载的模块加入Q无论重启系l还是iptables但ftp模块始终q是加蝲的?br>搞定p样哈哈哈Q希望能在以后帮助大家来解决ftp上的问题?br>

本文来自ChinaUnix博客Q如果查看原文请点:http://blog.chinaunix.net/u1/51714/showart_423414.html

]]>
Linux iptables配置FTP的主动和被动模式http://www.shnenglu.com/mydriverc/archive/2010/03/14/109670.html旅?/dc:creator>旅?/author>Sun, 14 Mar 2010 06:18:00 GMThttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109670.htmlhttp://www.shnenglu.com/mydriverc/comments/109670.htmlhttp://www.shnenglu.com/mydriverc/archive/2010/03/14/109670.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/109670.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/109670.html

先理解主被动的联接方式:

FTP协议有两U工作方式:PORT方式和PASV方式Q中文意思ؓd式和被动式?/p>

Port模式Q?/font>ftp server:tcp 21 <------client:dynamic    ftp server:tcp 20 ------>client:dynamic

Pasv模式Q?/font>ftp server:tcp 21 <----client:dynamic     ftp server:tcp dynamic <----client:dynamic
PORTQ主动)方式?a >q接q程是:客户端向服务器的FTP端口Q默认是21Q发?a >q接? 求,服务器接受连接,建立一条命令链路。当需要传送数据时Q客? 端在命o链\上用PORT命o告诉服务器:“我打开了XXXX端口Q你q来q接?#8221;。于是服务器?0端口向客L的XXXX端口发送连接请求,建立一? 数据链\来传送数据?br>PASVQ被动)方式的连接过E是Q客L向服务器的FTP端口Q默认是21Q发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时Q服? 器在命o链\上用PASV命o告诉客户端:“我打开了XXXX端口Q你q来q接?#8221;。于是客L向服务器的XXXX端口发送连接请求,建立一条数据链路来 传送数据?/p>


#allow all ftp incoming connections
iptables -A INPUT -p tcp --dport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

# Enable active ftp transfers
iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT

# Enable passive ftp transfers
iptables -A INPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT



]]>
查看某组的所有用?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/11/11/100744.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Wed, 11 Nov 2009 14:30:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/11/11/100744.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/100744.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/11/11/100744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/100744.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/100744.html</trackback:ping><description><![CDATA[gawk 'BEGIN {FS=":"} $4=="504" {print $1}' /etc/passwd<br><br>504是组的ID<br><br><img src ="http://www.shnenglu.com/mydriverc/aggbug/100744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-11-11 22:30 <a href="http://www.shnenglu.com/mydriverc/archive/2009/11/11/100744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Linux命o]格式化mkfshttp://www.shnenglu.com/mydriverc/archive/2009/10/22/99244.html旅?/dc:creator>旅?/author>Thu, 22 Oct 2009 15:19:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/22/99244.htmlhttp://www.shnenglu.com/mydriverc/comments/99244.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/22/99244.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/99244.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/99244.html
使用权限 : 使用?

使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

说明 Q?建立 linux 案pȝ在特定的 partition ?


参数 Q?

device Q?预备查的盘 partitionQ例如:/dev/sda1
-V : 详细昄模式
-t : l定案pȝ的型式,Linux 的预讑րgؓ ext2
-c : 在制做案系l前Q检查该partition 是否有坏?
-l bad_blocks_file : 有坏轨的block资料加到 bad_blocks_file 里面
block : l定 block 的大?

例:
1.?/dev/hda5 上徏一?msdos 的档案系l,同时查是否有坏轨存在Qƈ且将q程详细列出?:
mkfs -V -t msdos -c /dev/hda5
2.
mkfs.ext3 /dev/sda1
3.
mkfs.ext3 /dev/sda2

]]>
深入Linux的LILOhttp://www.shnenglu.com/mydriverc/archive/2009/10/15/98735.html旅?/dc:creator>旅?/author>Thu, 15 Oct 2009 15:34:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/15/98735.htmlhttp://www.shnenglu.com/mydriverc/comments/98735.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/15/98735.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98735.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98735.html 是一个灵zȝ引导加蝲E序Q与其他常用的引导加载程序相比,LILO 引导方式昑־更具有艺术性,对其深入的理解,有助于我们方便?处理多重pȝ、网l引对{大盘及大内存{诸多棘手的问题?

一、LILO的引导机?

众所周知Q计机的最初启动是由BIOS控制的,在对一些硬?Q如Q内存、键盘等Q初始化之后Q它会试囑֊载硬盘的dD?QMBRQ或软盘的引导扇区?

MBR可通过两种方式q行Q其一是定位到zd分区q加载相应的 引导扇区Q然后由引导扇区完成该分区内操作pȝ的基本组件的加蝲 Q其二是直接从一指定分区中加载信息,q过它装入Q一分区的操 作系l,诸如LILO、OS/2 boot loader及Partition Magic{引导加?E序都可以配|成q种方式?

软盘的引导扇区相当于盘zd分区的引导扇区,它通常用于?入Y盘上的操作系l?

由此可见Q只要把LILO安装在MBR、活动分区或者引DY盘上Q?p接管计算机的控制权,然后由LILO完成后的引DE。LILO? 建有一个引D地址~码Q借此它的引导E序p定位到Linux的内 核文Ӟq种地址~码既可以按照柱?头/扇区(CHS)模式Q又? 以采用LBA的线性块h式,因此Q即使对某些SCSI控制E序LILO?能运转良好?

当LILO定位到配|文件后Q经q预引导q程Q就昄提示W: LILO boot:

此时Q系l答应选择引导不同的操作系l或者不同的内核配置Q?按Tab键显C可选项列表Q然后输入可选项或者直接回车选择~省?|,假如选择了引导LinuxQ还可以直接传递参数到pȝ内核?

和其他系l的引导加蝲E序相比QLILOh更大的灵zL,其引 导方式也更丰富多彩?

●当LILO被安装在盘的MBR、活动分区或引导软盘上时Q作?原引导程序的替nQ它能引gQ一盘M分区上的Linux和其他操 作系l;

●除了引导扇区,它没有Q何隐含文Ӟ也不需要用特定的?区,它的配置文g可以在Q何分区、甚x存放在与Linux毫不相干 的DOS分区的某个子目录下;

●它能引导几个不同的内核配置Q甚x几个不同的内核;

●它能引导同一机程序上的多个Linux版本Q?

●它能从|络上引导Linux?

LILO的灵zL得其配置变得相当复杂Q当有多个系l共存时Q?先安装其他操作系l,最后再装LinuxQ这P讄LILO对其?pȝ的引g相对单一些?

二、几个重要的LILO引导参数

LILO的引导参数有很多Q在此只对一些比较重要的参数作一介绍 ?
1.“boot=”

此参数指明包含引导扇区的讑֤名(如:/dev/hadQ,若此忽 略,则从当前的根分区中读取引导扇区?

2.“root=”

此参数告诉内核启动时以哪个设备作为根文gpȝ使用Q其讑֮ gؓ构造内核时Ҏ件系l的讑֤名,可用的设备名有:

(1)/dev/hdaN~/dev/hddNQST-506兼容盘Qa到d上的N个分?
(2)/dev/sdaN~/dev/sdeNQSCSI兼容盘Qa到e上的N个分?
(3)/dev/xdaN~/dev/xdbNQXT兼容盘Qa到b上的N个分?
(4)/dev/fdNQY盘,AQ(N=0Q或BQ(N=1Q?
(5)/dev/nfsQ由|络取得Ҏ件系l的标志

3.“nfsroot=”
若需通过NFS提供Ҏ件系l来引导无盘工作站,此参Cؓ内核 指定了网l根文gpȝ所在的机程序、目录及NFSQ其格式为:nfsroot= Q〈server_ip?Q〈root_dir〉(,nfs_options〉)

4.“nfsaddrs=”
讑֮|络通讯所需的各U网l界面地址Q如无此参数Q则内核?试图用反向地址解析协定(RARP)或启动协?BOOTP)扑ևq些参数Q?
其格式ؓQ?

nfsaddrs=〈客LIP?〈服务端IP?〈网关IP?〈子|屏蔽? 〈客L名称??a class="channel_keylink" target="_blank">|络讑֤名 ?〈auto?

5.“image=”
指定Linux的内核文件?

6.“delay=”
讑֮引导W一个映像前的等待时间?

7.“disk=”
此参Cؓ某一非凡的硬盘定义非标准参数?

8.“append=”
为内怼递一个可选的参数行,其典型的应用是ؓ不能完全q l自动识别的盘指定参数Q如Qappend = "hd=64,32,202"

9.“label=”
此参Cؓ每个映像指定一个名字,以供引导旉择?

10.“read-only”
讑֮以只L式挂入根文gpȝQ用于文件系l一致性检查(fsckQ?
?

11.“install=”
安装一个指定文件作为新的引导扇区,~省?boot/boot.b?

12.“loader=”
说明所使用的链加蝲E序(chain loader)Q缺省ؓ/boot/chain.bQ? 假如不是从首盘或Y盘启动,那么Q此选项必须说明?

13.“table=”
说明包含分区表的讑֤名,假如此参数忽略,引导加蝲E序不 能传递分Z息到已引导的操作pȝ。当此参数指向的分区表被修改 Ӟ必须重新q行/sbin/lilo?

14.“init=”
内核初始化时执行的程序,通常q程为init、getty、rc和shQ? 版本1.3.43以来的Linux内核能够执行/sbin/init说明的命令行Q若 在引DE中出现问题Q则可设|init=/bin/sh直接跛_Shell?

15.“ramdisk_start=”
׃内核不能攑֜压羃的内存文件系l映像内Qؓ使内核映像能 够和压羃的内存映像放在一张Y盘内Q加?#8220;ramdisk_start=〈offset?#8221;Q这样内核才? 开始执行?

16.“mem=”
此参数的目的之一是ؓLinux指定使用的内存数量:如mem=96MBQ?目的之二是指定mem=nopentium告诉内核不要使用QMB分页表?

17.“vga=”
讄昄模式Q如80×50?32×44{?

三、LILO典型配置Ҏ

通常情况下,Linux的安装程序自w就可以完成LILO的安装配|, 从而较好地解决多重pȝ的引导问题,假如pȝ不能自动完成q种?|,则可以通过手工修改配置文g/etc/lilo.conf来实C同条件下 的引对{?

1.当系l能自动完成配置?

对于q种情况只有一个徏议:LILO安装到Linux分区的根上, 而不是MBRq个多事地带。假讑ֽ前hda1中装有DOS/WindowsQhda2?安装了LinuxQ则/etc/lilo.conf的内容大致如下:

boot=/dev/hda2Q指定引g|compact delay=50QgӞUroot=current
Q根在当前分区image=/boot/vmlinuzQ指?a class="channel_keylink" target="_blank">linux的内核文件  label=linux
Q用linuxZ表名U other=/dev/hda1Q其他操作系l所在的分区table=/dev/had
Q指定包含分的硬盘label=dosQ用dosZ表名U?

2.当系l无法自动完成配|时

pȝ无法自动完成配置的情况不外乎两种Q?
Q?QBIOS不能直接看到Linux的根分区Q?
Q?QBIOS只能d标准IDE盘的前504MB?

q时Q必遵循一个最基本的原则:建立一个BIOS能存取的较小 的Linux分区Q其中包含内核文件、映文件及铑֊载程序等必要?容,而根则可以是另外一个独立的分区。至于配|上的其他细节,?们通过以下实例来进行说明?


例1Q主盘为IDE接口Q第二硬盘ؓSCSI接口Q根文g在SCSI 上?

对策Q在IDE盘上划分一个较的Linux分区Q?dev/hda2Q,  其中包含基本文gQ挂接到/u2下,光|文?etc/lilo.conf的主 要内容ؓQ?

boot=/dev/hadQlilo装在主ide的mbr
install=/u2/etc/lilo/boot.bQ从boot.b安装lilo引导记录
map=/u2/etc/lilo/mapQ安装程序徏立此映射文gQ告诉引D入程序内核块的位|?
compact
timeout=50
image=/u2/vmlinuz Q内核文件应事先拯?u2?
label=linux
root=/dev/sda1Q告诉内核根pȝ在scsi盘上read-only
other=/dev/hda1
loader=/u2/etc/lilo/chain.b Q指明加载程序label=dos

例2Q一个标准的IDE大硬盘需安装Linux和DOS/Windows?
对于大硬盘问题,很多人只知道低于1024个柱面的限制Q而不?Z么标准的IDE盘只能认前504MB?

其实QBIOS的int13调用是采用三个位元组的CHS~码Q?0位ؓ?面号Q?位ؓ头P6位ؓ扇区受可能的柱面L??023Q可 能的头L??55Q而磁道上可能的扇区号码是1?3Q以q?4 位最多可以定址8455716864个位元组(7.87

]]>
Linux LVM http://www.shnenglu.com/mydriverc/archive/2009/10/14/98631.html旅?/dc:creator>旅?/author>Wed, 14 Oct 2009 15:24:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/14/98631.htmlhttp://www.shnenglu.com/mydriverc/comments/98631.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/14/98631.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98631.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98631.html 原创  Linux LVM document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length>300) { text = text + "\r\n\n本文来自CSDN博客Q{载请标明出处Q? + location.href; clipboardData.setData("text", text); } }, 100); } }

? 于Linux用户而言Q在安装一台Linux机器的时候,遇到的问题之一是l各分区估计和分z够的盘I间。无论对一个正在ؓ服务器寻扄间的pȝ? 理员Q还是一个磁盘即用的普通用h_q都是一个非常常见的问题。解决的Ҏ通常是用符号链接,或者一些调整分区大的工具(比如 parted)。但是,q只是一个暂时性的解决办法Q不久,我们又会面同样的问题?

  如果你是一个站点的pȝ理员,理着数量众多的、连接在Internet之上的服务器Q那么你每关Z分钟Q都会给公司带来很大损失。此外,使用q种ҎQ在修改了分之后Q每一ơ都得重新启动系l。LVM(逻辑L理程?可以帮助我们解决q些问题?

LVM?/p>

  Linux LVM可以使管理工作更加轻松。相对于盘和分区,LVM是从更高的层ơ来看待存储I间的。在使用LVM之前Q先来看一些将要用到的相xc?

物理?

  物理h指硬盘分区或者从逻辑上看h和硬盘分区类似的讑֤(比如RAID讑֤)?

逻辑?

  一个或者多个物理卷l成一个逻辑南对于LVM而言Q逻辑Lg非LVMpȝ中的盘分区。逻辑卷可以包含一个文件系l?比如/home或?usr)?

L

  一个或者多个逻辑L成一个卷l。对于LVM而言Q卷l类g非LVMpȝ中的物理盘。卷l把多个逻辑L合在一P形成一个可理的单元?


LVM工作方式

  下面来看一看LVM到底是怎样工作的。每一个物理卷都被分成几个基本单元Q即所谓的PE(Physical Extents)。PE的大是可变的,但是必须和其所属卷l的物理L同。在每一个物理卷里,每一个PE都有一个惟一的编受PE是一个物理存储里可以 被LVMd的最单元?

  每一个逻辑卷也被分成一些可被寻址的基本单位,x谓的LE(Logical Extents)。在同一个卷l中QLE的大和PE是相同的Q很昄QLE的大对于一个卷l中的所有逻辑h说都是相同的?

  在一个物理卷中,每一个PE都有一个惟一的编P但是对于逻辑卯q不一定是必需的。这是因为当q些PE ID号不能用时Q逻辑卷可以由一些物理卷l成。因此,LE IDh用于识别LE以及与之相关的特定PE的。正如前面所提到的,LE和PE之间是一一对应的。每一ơ存储区域被d讉K或者LE的ID被用,都会? 数据写在物理存储讑֤之上?

  你可能会觉得奇怪,有关逻辑卷和逻辑L的所有元数据都存到哪儿去了。类似的在非LVMpȝ中,有关分区的数据是存储在分中,而分被存储在了每一个物理卷的v始位|。VGDA(L描述W区?功能好象是LVM的分Q它存储在每一个物理卷的v始处?

  VGDA׃下信息组成:

  ?一个PV描述W?
  ?一个VG描述W?
  ?LV描述W?
  ?一些PE描述W?/p>

  当系l启动LVӞVG被激z,q且VGDA被加载至内存。VGDA帮助识别LV的实际存储位|。当pȝ惌讉K存储讑֤Ӟ由VGDA建立h的映机制就用于讉K实际的物理位|来执行I/O操作?

开始工?/p>

  下面具体看一看如何用LVM?

  W一步:配置内核。在安装LVM之前Q内怹中应该有LVM模块Q可以用以下的步骤来完成:


  #cd /usr/src/linux
  #make menuconfig

 

  选择Multi-device Support (RAID and LVM)子菜单,选中以下两个选项Q?


  [*] Multiple devices driver support (RAID and LVM)
  <*> Logical volume manager (LVM) Support.

 

  W二步:查驱动器上空闲硬盘空间的总量。这可以通过以下命o来未完成Q?


  # df -h
  Filesystem Size Used Avail Use% Mounted on
  /dev/hda1 3.1G 2.7G 398M 87% /
  /dev/hda2 4.0G 3.2G 806M 80% /home
  /dev/hda5 2.1G 1.0G 1.1G 48% /var

 

  W三步:在硬盘上创徏一个LVM分区。用fdisk或者其它的分区工具来创Z个LVM分区。Linux LVM的分区类型ؓ8e?


  # fdisk /dev/hda
  press p (to print the partition table) and n (to create a new partition)

 

  W四步:创徏一个物理卷。下q命令将在分区的起始处创Z个卷l描q符Q?


  # pvcreate /dev/hda6
  pvcreate -- -physical volume "/dev/hda6" successfully created
  # pvcreate /dev/hda7
  pvcreate- -- physical volume "/dev/hda7" successfully created

 

  W五步:创徏一个卷l。通过下面的方法创Z个新的卷l,q且d两个物理P


  # vgcreate test_lvm /dev/hda6 /dev/hda7
  vgcreate- -- INFO: using default physical extent size 4 MB
  vgcreate- -- INFO: maximum logical volume size is 255.99 Gigabyte
  vgcreate- -- doing automatic backup of volume group "test_lvm"
  vgcreate- -- volume group "test_lvm" successfully created and activated

 

  上述命o创Z个名为test_lvmQ包含有/dev/hda6?dev/hda7两个物理LL。用下面命令来Ȁzdl:


  # vgchange -ay test_lvm

 

  使用“vgdisplay”命o来查看所建立L的细节信息?


  # vgdisplay
  --- Volume group ---
  VG Name test_lvm
  VG Access read/write
  VG Status available/resizable
  VG # 0
  MAX LV 256
  Cur LV 1
  Open LV 0
  MAX LV Size 255.99 GB
  Max PV 256
  Cur PV 2
  Act PV 2
  VG Size 3.91 GB
  PE Size 4 MB
  Total PE 1000
  Alloc PE / Size 256 / 1 GB
  Free PE / Size 744 / 2.91 GB
  VG UUID T34zIt-HDPs-uo6r-cBDT-UjEq-EEPB-GF435E

 

  W六步:创徏一个逻辑南用lvcreate命o在卷l中创徏一个逻辑P


  # lvcreate -L2G -nlogvol1 test_lvm

 

  W七步:创徏文gpȝ。在该逻辑卷上选择使用reiserfs日志文gpȝQ?


  # mkreiserfs /dev/test_lvm/logvol1

 

  使用mount命o来加载新创徏的文件系l?


  # mount -t reiserfs /dev/test_lvm/logvol1 /mnt/lv1

 

  W八步:?etc/fstab?etc/lilo.conf中添加一个入口。在/etc/fstab中加入以下入口,在启动时加蝲文gpȝQ?


  /dev/test_lvm/logvol1 /mnt/lv1 reiserfs defaults 1 1

 

  如果没有覆盖原来的内核,那么拯一份重新编译后的内核,q且在启动时选择是否使用LVM。下面是LILO文g的内容:


  image = /boot/lvm_kernel_image
  label = linux-lvm
  root = /dev/hda1
  initrd = /boot/init_image
  ramdisk = 8192

 

  d以上内容后,使用以下命o重新加蝲LILOQ?


  #/sbin/lilo

 

  W九步:修改逻辑L大小。可以用lvextend命o方便C攚w辑L大小Q增加逻辑卷大的Ҏ如下Q?


  # lvextend -L+1G /dev/test_lvm/logvol1
  lvextend -- extending logical volume "/dev/test_lvm/logvol1" to 3GB
  lvextend -- doing automatic backup of volume group "test_lvm"
  lvextend -- logical volume "/dev/test_lvm/logvol1" successfully extended


  
  cM的,减小逻辑卷大的Ҏ如下Q?


  # lvreduce -L-1G /dev/test_lvm/lv1
  lvreduce -- -Warning: reducing active logical volume to 2GB
  lvreduce- -- This may destroy your data (filesystem etc.)
  lvreduce -- -do you really want to reduce "/dev/test_lvm/lv1"? [y/n]: y
  lvreduce- -- doing automatic backup of volume group "test_lvm"
  lvreduce- -- logical volume "/dev/test_lvm/lv1" successfully reduced



]]>
Linux中的dmesg了解http://www.shnenglu.com/mydriverc/archive/2009/10/13/98534.html旅?/dc:creator>旅?/author>Tue, 13 Oct 2009 15:16:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/13/98534.htmlhttp://www.shnenglu.com/mydriverc/comments/98534.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/13/98534.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98534.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98534.html
?dmesg 工具q不是专门用来查看硬件芯片组标识的工P但通过q个工具能让我们知道机器中的g的一些参?因ؓpȝ在启动的时候,会写一些硬件相关的日志?/var/log/message* ?br> /var/log/boot* 文g?

如果我们用这个工h查看一些硬件的信息;q个工具信息量太大,的确需要耐心;

[root@panda ~]# dmesg
[root@panda ~]# dmesg -c ?清理掉缓冲区Q下ơ开机的时候还会自动生?



功能说明Q?/strong>昄开Z息?br>
语  法:dmesg [-cn][-s <~冲区大?gt;]

补充说明Q?/strong>kernel会将开Z?a class="channel_keylink" target="_blank">存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开Z息亦保存?var/log目录中,名称为dmesg的文仉?br>
参  敎ͼ
 -c  昄信息后,清除ring buffer中的内容?nbsp;
 -s<~冲区大?gt;  预设|ؓ8196Q刚好等于ring buffer的大?nbsp;
 -n  讄记录信息的层U?


]]>
查看ghttp://www.shnenglu.com/mydriverc/archive/2009/10/13/98533.html旅?/dc:creator>旅?/author>Tue, 13 Oct 2009 15:14:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/13/98533.htmlhttp://www.shnenglu.com/mydriverc/comments/98533.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/13/98533.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98533.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98533.html lsusb
fdisk -l
df
dmesg
UNE2FS;PARTED


]]>
Linux查看g信息及驱动设?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/13/98532.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Tue, 13 Oct 2009 15:10:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/13/98532.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98532.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/13/98532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98532.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98532.html</trackback:ping><description><![CDATA[<div id="nrr7zj7" class="g_blog_list"> <div id="drrn7hj" class="g_t_center g_c_pdin g_p_center c07 content" id="blogtext_fks_082065086082089065083084085095085084080074081086083"> <div id="xz9th9h" class="ns_content"> <p style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 9pt; font-family: 宋体;">用硬件检?/span><span style="font-size: 9pt; font-family: 宋体;">E序</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">kudzu</span><span style="font-size: 9pt; font-family: 宋体;">探测新硬Ӟ</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">service kudzu start ( or restart)<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">CPU</span><span style="font-size: 9pt; font-family: 宋体;">信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/cpuinfo<br></span><span style="font-size: 9pt; font-family: 宋体;">查看板卡信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/pci<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">PCI</span><span style="font-size: 9pt; font-family: 宋体;">信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">lspci (</span><span style="font-size: 9pt; font-family: 宋体;">相比</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/pci</span><span style="font-size: 9pt; font-family: 宋体;">更直观)</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: 宋体;">内存</span><span style="font-size: 9pt; font-family: 宋体;">信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/meminfo<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">USB</span><span style="font-size: 9pt; font-family: 宋体;">讑֤Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/bus/</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">usb</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">/devices<br></span><span style="font-size: 9pt; font-family: 宋体;">查看键盘和鼠?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">:cat /proc/bus/input/devices<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: 宋体;">pȝ盘</span><span style="font-size: 9pt; font-family: 宋体;">信息和用情况:</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">fdisk & disk - l & df<br></span><span style="font-size: 9pt; font-family: 宋体;">查看各设备的中断h</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">(IRQ):cat /proc/interrupts<br></span><span style="font-size: 9pt; font-family: 宋体;">查看pȝ体系l构Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">uname -a<br></span><span style="font-size: 9pt; font-family: 宋体;">?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">LINUX</span><span style="font-size: 9pt; font-family: 宋体;">环境开发驱动程序,首先要探到新硬Ӟ接下来就是开发驱动程序?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br></span><span style="font-size: 9pt; font-family: 宋体;">常用命o整理如下Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br></span><span style="font-size: 9pt; font-family: 宋体;">用硬件检程?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">kudzu</span><span style="font-size: 9pt; font-family: 宋体;">探测新硬Ӟ</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">service kudzu start ( or restart)<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">CPU</span><span style="font-size: 9pt; font-family: 宋体;">信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/cpuinfo<br></span><span style="font-size: 9pt; font-family: 宋体;">查看板卡信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/pci<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">PCI</span><span style="font-size: 9pt; font-family: 宋体;">信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">lspci (</span><span style="font-size: 9pt; font-family: 宋体;">相比</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/pci</span><span style="font-size: 9pt; font-family: 宋体;">更直观)</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br></span><span style="font-size: 9pt; font-family: 宋体;">查看内存信息Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/meminfo<br></span><span style="font-size: 9pt; font-family: 宋体;">查看</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">USB</span><span style="font-size: 9pt; font-family: 宋体;">讑֤Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cat /proc/bus/usb/devices<br></span><span style="font-size: 9pt; font-family: 宋体;">查看键盘和鼠?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">:cat /proc/bus/input/devices<br></span><span style="font-size: 9pt; font-family: 宋体;">查看pȝ盘信息和用情况:</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">fdisk & disk - l & df<br></span><span style="font-size: 9pt; font-family: 宋体;">查看各设备的中断h</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">(IRQ):cat /proc/interrupts<br></span><span style="font-size: 9pt; font-family: 宋体;">查看pȝ体系l构Q?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">uname –a</span></p> <p style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 9pt; font-family: 宋体;">看看pȝ认出的盘先:</span><span style="font-size: 9pt; font-family: arial;" lang="EN-US"> cat /proc/partitions</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>dmidecode</span><span style="font-size: 9pt; font-family: 宋体;">查看g信息Q包?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">bios</span><span style="font-size: 9pt; font-family: 宋体;">?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">cpu</span><span style="font-size: 9pt; font-family: 宋体;">、内存等信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>dmesg | more </span><span style="font-size: 9pt; font-family: 宋体;">查看g信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br></span><span style="font-size: 9pt; font-family: 宋体;">对于</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">“/proc”</span><span style="font-size: 9pt; font-family: 宋体;">中文件可使用文g查看命o览其内容,文g中包含系l特定信息:</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Cpuinfo       </span><span style="font-size: 9pt; font-family: 宋体;">L</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">CPU</span><span style="font-size: 9pt; font-family: 宋体;">信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Dma          </span><span style="font-size: 9pt; font-family: 宋体;">L</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">DMA</span><span style="font-size: 9pt; font-family: 宋体;">通道信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Filesystems    </span><span style="font-size: 9pt; font-family: 宋体;">文gpȝ信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Interrupts       </span><span style="font-size: 9pt; font-family: 宋体;">L中断信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Ioprots           </span><span style="font-size: 9pt; font-family: 宋体;">L</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US">I/O</span><span style="font-size: 9pt; font-family: 宋体;">端口号信?/span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Meninfo       </span><span style="font-size: 9pt; font-family: 宋体;">L内存信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"><br>Version           Linux</span><span style="font-size: 9pt; font-family: 宋体;">内存版本信息</span><span style="font-size: 9pt; font-family: verdana;" lang="EN-US"></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman"> </font></span></p> </div> </div> </div><img src ="http://www.shnenglu.com/mydriverc/aggbug/98532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-13 23:10 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/13/98532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux讑֤理文gpȝ-devfs与sysfshttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98444.html旅?/dc:creator>旅?/author>Mon, 12 Oct 2009 15:35:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98444.htmlhttp://www.shnenglu.com/mydriverc/comments/98444.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98444.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98444.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98444.htmllinux下有专门的文件系l用来对讑֤q行理Qdevfs和sysfs是其中2U?/font>

?.6 内核以前一直用的是devfsQdevfs挂蝲?dev目录下,提供了一U类g文g的方法来理位于/dev目录下的所有设备,我们知道/dev? 录下的每一个文仉对应的是一个设备,至于当前该设备存在与否先且不论,而且q些Ҏ文g是位于根文gpȝ上的Q在制作文gpȝ的时候我们就已经建立了这 些设备文Ӟ因此通过操作q些Ҏ文gQ可以实C内核q行交互。但是devfs文gpȝ有一些缺点,例如Q不定的设备映,有时一个设备映的讑֤? 件可能不同,例如我的U盘可能对应sda有可能对应sdbQ没有够的?辅设备号Q当讑֤q多的时候,昄q会成ؓ一个问题;/dev目录下文件太多? 且不能表C当前系l上的实际设备;命名不够灉|Q不能Q意指定等{?/font>

正因Zq这些问题的存在Q在linux2.6内核以后Q引入了一 个新 的文件系lsysfsQ它挂蝲?sys目录下,跟devfs一样它也是一个虚拟文件系l,也是用来对系l的讑֤q行理的,它把实际q接到系l上的设? 和ȝl织成一个分U的文gQ用L间的E序同样可以利用q些信息以实现和内核的交互,该文件系l是当前pȝ上实际设备树的一个直观反应,它是通过 kobject子系l来建立q个信息的,当一个kobject被创建的时候,对应的文件和目录也就被创ZQ位?sys下的相关目录下,既然每个讑֤? sysfs中都有唯一对应的目录,那么也就可以被用L间读写了。用L间的工具udev是利用了sysfs提供的信息来实现所有devfs的功能的Q? 但不同的是udevq行在用L间中Q而devfs却运行在内核I间Q而且udev不存在devfs那些先天的缺陗很昄Qsysfs是未来发展的方 向?/font>

]]>
Linuxpȝ讑֤理 http://www.shnenglu.com/mydriverc/archive/2009/10/12/98443.html旅?/dc:creator>旅?/author>Mon, 12 Oct 2009 15:34:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98443.htmlhttp://www.shnenglu.com/mydriverc/comments/98443.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98443.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98443.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98443.html讑֤理是操作系l五大管理中最复杂的部分。与Unixpȝ一PLinuxpȝ采用讑֤文gl一理g讑֤Q从而将g讑֤的特性及理l节对用户隐藏v来,实现用户E序与设备无x。在Linuxpȝ中,g讑֤分ؓ两种Q即块设备和字符讑֤?br>
1.特别文g

用户是通过文gpȝ与设备接口的Q所有设备都作ؓ特别文gQ从而在理上就h一些共性?(1)每个讑֤都对应文件系l中的一个烦引节点,都有一个文件名。设备的文g名一般由两部分构成,W一部分是主讑֤PW二部分是次讑֤受?br>
主设备号代表讑֤的类型,可以惟一地确定设备的驱动E序和界面,如hd表示IDE盘Qsd表示SCSI盘Qtty表示l端讑֤{;ơ设备号代表同类讑֤中的序号Q如hda表示IDEȝ盘,hdb表示IDE从硬盘等?br>
Q?Q应用程序通常可以通过pȝ调用open( )打开讑֤文gQ徏立v与目标设备的q接?br>
Q?Q对讑֤的用类gҎ件的存取。打开讑֤文g以后Q就可以通过read( )、write( )、ioctl( ){文件操作对目标讑֤q行操作?br>
Q?Q? 讑֤驱动E序都是pȝ内核的一部分Q它们必Mؓpȝ内核或它们的子系l提供一个标准的接口。例如,一个终端驱动程序必MؓLinux内核提供一个文? I/O接口Q一个SCSI讑֤驱动E序应该为SCSI子系l提供一个SCSI讑֤接口Q同时SCSI子系l也应ؓ内核提供文gI/O和缓冲区?br>
Q?Q设备驱动程序利用一些标准的内核服务Q如内存分配{。另外,大多数Linux讑֤驱动E序都可以在需要时装入内核Q不需要时可以卸蝲下来?br>


? 讑֤驱动分层l构C意?/center>
?C出讑֤驱动的分层结构,从中可以看出Q处于应用层的进E通过文g描述字fd与已打开文g的filel构相联pR在文gpȝ层,按照文gpȝ的操作规则对该文件进行相应处理?br>
对于一般文?即磁盘文?Q要q行I间的映—从普通文件的逻辑I间映射到设备的逻辑I间Q然后在讑֤驱动层做q一步映—从讑֤的逻辑I间映射到物理空?卌备的物理地址I间)Q进而驱动底层物理设备工作?br>
对于讑֤文gQ则文g的逻辑I间通常q价于讑֤的逻辑I间Q然后从讑֤的逻辑I间映射到设备的物理I间Q再驱动底层的物理设备工作?br>
2.讑֤驱动E序和内怹间的接口

Linuxpȝ和设备驱动程序之间用标准的交互接口。无论是字符讑֤、块讑֤q是|络讑֤的驱动程序,当内核请求它们提供服务时Q都使用同样的接口?br>
Linux 提供了一U全新的机制Q就?#8220;可安装模?#8221;。可安装模块是可以在pȝq行时动态地安装和拆卸的内核模块。利用这个机Ӟ可以Ҏ需要在不必对内栔R新编? q接的条件下Q将可安装模块动态插入运行中的内核,成ؓ其中一个有机组成部分,或者从内核卸蝲已安装的模块。设备驱动程序或与设备驱动紧密相关的部分(? 文gpȝ) 都是利用可安装模块实现的?br>
在应用程序界面上Q利用内核提供的pȝ调用来实现可安装模块的动态安装和拆卸。但通常情况下,用户是利用系l提供的插入模块工具和移走模块工h装卸可安装模块。插入模块的工作主要如下Q?br>
(1) 打开要安装的模块Q把它读到用L间。这U?#8220;模块”是l过~译但尚未连接的.o文g?br>
(2) 必须把模块内涉及对外讉K的符?函数名或变量?q接到内核,xq些W号在内核映像中的地址填入该模块需要访问这些符L指o及数据结构中?br>
(3) 在内核创Z个module数据l构Qƈ甌所需的系l空间?br>
(4) 最后,把用L间中完成了连接的模块映像装入内核I间Qƈ在内怸“登记”本模块的有关数据l构(如file_operationsl构)Q其中有指向执行相关操作函数的指针?br>
如前所qͼLinuxpȝ是一个动态的操作pȝ。用h据工作中的需要,会对pȝ中设备重新配|,如安装新的打印机、卸载老式l端{。这P每当Linuxpȝ内核初启Ӟ它都要对g配置q行,很有可能会检到不同的物理设备,需要不同的驱动E序?br>
在构建系l内核时Q可以用配|脚本将讑֤驱动E序包含在系l内怸。在pȝ启动时对q些驱动E序初始化,它们可能未找到所控制的设备,而另外的讑֤驱动E序可以在需要时作ؓ内核模块装入到系l内怸?br>Z适应讑֤驱动E序动态连接的Ҏ,讑֤驱动E序在其初始化时在pȝ内核中进行登记。Linuxpȝ利用讑֤驱动E序的登记表作ؓ内核与驱动程序接口的一部分Q这些表中包括指向有兛_理程序的指针和其它信息?br>
3.字符讑֤

在Linux pȝ中,打印机、终端等字符讑֤都作为字W特别文件出现在用户面前。用户对字符讑֤的用就和存取普通文件一栗在应用E序中,使用标准的系l调用来? 开、关闭、读写字W设备。当字符讑֤初始化时Q其讑֤驱动E序被添加到由device_structl构l成的chrdevsl构数组中?br>
device_struct l构׃Ҏ成,一个是指向已登记的讑֤驱动E序名的指针Q另一个是指向file_operationsl构的指针。而file_operationsl? 构的成分几乎全是函数指针Q分别指向实现文件操作的入口函数。设备的主设备号用来对chrdevs数组q行索引Q如?所C?br>


? 字符讑֤驱动E序C意?/center>

前面讲过Q每个VFS索引节点都和一pd文g操作相联p,q且q些文g操作随烦引节Ҏ代表的文件类型不同而不同。每当一个VFS索引节点所代表的字W设备文件创建时Q它的有x件的操作p|ؓ默认的字W设备操作?br>
默认的文件操作只包含一个打开文g的操作。当打开一个代表字W设备的特别文g以后Q就得到相应的VFS索引节点Q其中包括该讑֤的主讑֤号和ơ设备号?br>
利用主设备号可以检索chrdevs数组Q进而可以找到有x讑֤的各U文件操作。这P应用E序中的文g操作׃映射到字W设备的文g操作调用中?br>
4.块设?br>
对块讑֤的存取和Ҏ件的存取方式一P其实现机制也和字W设备用的机制相同。Linuxpȝ中有一个名为blkdevs的结构数l,它描qC一pd在系l中登记的块讑֤?/div>
数组blkdevs也用设备的主设备号作ؓ索引Q其元素cd是device_structl构。该l构中包括指向已登记的设备驱动程序名的指针和指向block_device_operationsl构的指针?br>
在block_device_operationsl构中包含指向有x作的函数指针。所以,该结构就是连接抽象的块设备操作与具体块设备类型的操作之间的枢U?br>
与字W设备不一P块设备有几种cdQ例如SCSI讑֤和IDE讑֤。每cd讑֤都在Linuxpȝ内核中登讎ͼq向内核提供自己的文件操作?br>
Z把各U块讑֤的操作请求队列有效地l织hQ内怸讄了一个结构数lblk_devQ该数组中的元素cd是blk_dev_structl构。这个结构由三个成分l成Q其M是执行操作的h队列request_queueQ还有一个函数指针queue?br>
? q个指针不ؓ0Ӟp用这个函数来扑ֈ具体讑֤的请求队列。这是考虑到多个设备可能具有同一主设备号Q该指针在设备初始化时被讄好。通常当它不ؓ0 Ӟq要使用该结构中的另一个指针dataQ用来提供辅助性信息,帮助该函数找到特定设备的h队列。每一个请求数据结构都代表一个来自缓冲区的请求?br>
每当~冲和一个登记过的块讑֤交换数据Q它都会在blk_dev_struct中添加一个请求数据结构,如图8所C?br>


? 块设备驱动程序数据结构示意图


? 一个请求都有一个指针指向一个或多个buffer_head? 据结构,而该l构都是一个读写数据块的请求。每一个请求结构都在一个静态链表all_requests中。若q请求是dC个空的请求链表中Q则调用? 备驱动程序的h函数Q开始处理该h队列。否则,讑֤驱动E序q单地处理h队列中的每一个请求?br>
当设备驱动程序完成了一个请求后Q就把buffer_headl构从requestl构中移赎ͼq标记buffer_headl构已更斎ͼ同时解锁Q这P可以唤醒相应的{待q程?/div>


]]>/etc/inittab详解http://www.shnenglu.com/mydriverc/archive/2009/10/12/98439.html旅?/dc:creator>旅?/author>Mon, 12 Oct 2009 15:19:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98439.htmlhttp://www.shnenglu.com/mydriverc/comments/98439.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98439.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98439.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98439.htmlinitE式需 要读取设|文?etc/inittab。inittab是个不可执行的文本文Ӟ他有若干行指令所l成。在Redhatpȝ中,inittab的内?如下所C??#8220;###"开始的中注释ؓW者增加的)Q?br>  
  #
  # inittab    This file describes how the INIT process should set up
  #        the system in a certain run-level.
  #
  # Author:    Miquel van Smoorenburg,
  #        Modified for RHS Linux by Marc Ewing and Donnie Barnes
  #
  
  # Default runlevel. The runlevels used by RHS are:
  #  0 - halt (Do NOT set initdefault to this)
  #  1 - Single user mode
  #  2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)
  #  3 - Full multiuser mode
  #  4 - unused
  #  5 - X11
  #  6 - reboot (Do NOT set initdefault to this)
  #
/*
理解Runlevel
runlevel用来表示在initq程l束之后的系l状态,在系l的g中没有固定的信息来表CrunlevelQ他Ua是一UY件结构。init? inittab是runlevel影响pȝ状态的唯一原因。在上述例子中inittab文g起始阶段的注释主要用来描qrunlevelQ?br> Runlevel 0是让init关闭所有进Eƈl止pȝ?br> Runlevel 1是用来将pȝ转到单用h式,单用h式只能有pȝ理员进入,在该模式下处理那些在有登录用L情况下不能进行更改的文gQ改runlevel的编?也能用S代替?br> Runlevel 2是允许系l进入多用户的模式,但ƈ不支持文件共享,q种模式非常应用?br> Runlevel 3是最常用的运行模式,主要用来提供真正的多用户模式Q也是多数服务器的缺省模式?br> Runlevel 4一般不被系l用,用户能设计自qpȝ状态ƈ其应用到runlevel 4阶段Q尽非常少使用Q但使用该系l能实现一些特定的dh?br> Runlevel 5是将pȝ初始化ؓ专用的X Windowl端。对功能强大的Linuxpȝ来说Q这q不是好的选择Q但用户如果需要这P也能通过在runlevel启动来实现该Ҏ?br> Runlevel 6是关闭所有运行的q程q新启动系l?/
  ###表示当前~省q行U别?(initdefault)Q?br>  id:5:initdefault: /*启动后进入图像界?设ؓ3则进入字W终端界?/
  
  ###启动时自动执?etc/rc.d/rc.sysinit脚本(sysinit)
/*
在inittab文g中以#开头的所有行都是注释行。注释行有助于用L解inittab文gQinittab文g中的值都是如下格式:
label:runlevel:action:process
label?~4个字W的标签Q用来标C入的倹{一些系l只支持2个字W的标签。鉴于此原因Q多Ch都将标签字符的个数限制在2个以内。该标签能是L字符构成的字W串Q但实际上,某些特定的标{是常用的,在Red Hat Linux中用的标签是:
代码:
id 用来定义~省的initq行的?br> si 是系l初始化的进E?br> ln 其中的n?~6,指明该进E能使用的runlevel的?br> ud 是升U进E?br> ca 指明当按下Ctrl+Alt+Del时运行的q程
pf 指当UPS表明断电时运行的q程
pr 是在pȝ真正关闭之前QUPS发出甉|恢复的信h需要运行的q程
x 是将pȝ转入Xl端旉要运行的q程
runlevel字段指定runlevel的别。能指定多个runlevelU别Q也能不为runlevel字段指定特定的倹{?br> action字段定义了该q程应该q行在何U状态下Q?br> 代码:
boot 在系l启动时q行Q忽略runlevel
bootwait 在系l启动时q行Qinit{待q程完成。忽略runlevel
ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时q行Q把SIGINT信号发送给init。忽? runlevel
initdefault 不要执行q个q程Q他用于讄默认runlevel
kbrequest 当init从键盘中收到信号时运行。这里需求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘l合的文?
off 止q入Q因此该q程不运?br> on
ce 每一个runlevelU别q行一?br> ondemand 当系l指定特定的q行U别A、B、C时运?br> powerfail 当init收到SIGPWR信号时运?br> powerokwait 当收到SIGPWD信号?etc/文g中的甉|状态包含OK时运?br> powerwait 当收到SIGPWD信号Qƈ且init{待q程l束时运?br> respawn 不管何时l止都重新启动进E?br> sysinit 在运行boot或bootwaitq程之前q行
wait q行q程{待输入q行模式
process字段包含init执行的进E,该进E采用的格式和在命o行下q行该进E的格式相同Q因此process字段都以该进E的名字开_紧跟着? q行Ӟ紧跟着是运行时要传递给该进E的参数。比?sbin/shutdown -t3 -r nowQ该q程在按下Ctrl+Alt+Del时执行,在命令行下也能直接输入来重新启动pȝ?br> 特别目的的记?br> 仔细学习例子文gQ学习应用其中关于inittab的语法格式。该文g的大多数内容都能忽略Q因q一半的内容都是注释Q剩余的一些文件内容主要是用来实现某些特别的功能:
id 的D明缺省的runlevel??br> ud 的D唤醒/sbin/updateq程Q该q程Z持磁盘的完整性,在对磁盘进行I/O操作之前清空整个I/O~冲区?br> pf、pr和ca的值只被特定的中断所调用?br> 如果pȝ是专用的Xl端Q则只需x的输入倹{?br> gettyq程来提供虚拟终端设备的服务Q例如:
3:2345:respawn:/sbin/mingetty tty3
标签字段的值是3,3是设备tty3的数字后~,tty3和相应的q程相关联,该gettyq程能启动的runlevel????,当该q程l? 止时Qinit马上重新启动他。启动进E的路径名是/sbin/mingettyQ该q程是实现虚拟终端支持的最版本的gettyQؓtty3提供? 动虚拟设备的q程?br> si::sysinit:/etc/rc.d/rc.sysinit
该值告诉initE式q行/etc/rc.d/rc.sysinit脚本文g来初始化pȝQ该脚本文g和所有启动的脚本cMQ他只是个包含Linux? shell命o的可执行文gQ注意输入的字符串必d括该脚本的完整\径。不同版本的Linux存放该脚本的位置也不相同Q但不用L去记忆这些位|,? 需查看/etc/inittab文g卛_Q该文g中包含启动脚本文件的切位置?/
  # System initialization.
  si::sysinit:/etc/rc.d/rc.sysinit
  
  l0:0:wait:/etc/rc.d/rc 0
  l1:1:wait:/etc/rc.d/rc 1
  l2:2:wait:/etc/rc.d/rc 2
  l3:3:wait:/etc/rc.d/rc 3
  l4:4:wait:/etc/rc.d/rc 4
  ###当运行别ؓ5Ӟ?为参数运?etc/rc.d/rc脚本Qinit等待其q回(wait)
  l5:5:wait:/etc/rc.d/rc 5
  l6:6:wait:/etc/rc.d/rc 6
  
  ###在启动过E中允许按CTRL-ALT-DELETE重启pȝ
  # Trap CTRL-ALT-DELETE
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  # When our UPS tells us power has failed, assume we have a few minutes
  # of power left. Schedule a shutdown for 2 minutes from now.
  # This does, of course, assume you have powerd installed and your
  # UPS connected and working correctly.
  pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
  
  # If power was restored before the shutdown kicked in, cancel it.
  pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
  
  ###????U别上以ttyX为参数执?sbin/mingettyE式Q打开ttyXl端用于用户dQ?br>  ###如果q程退出则再次q行mingettyE式(respawn)
  # Run gettys in standard runlevels
  1:2345:respawn:/sbin/mingetty tty1
  2:2345:respawn:/sbin/mingetty tty2
  3:2345:respawn:/sbin/mingetty tty3
  4:2345:respawn:/sbin/mingetty tty4
  5:2345:respawn:/sbin/mingetty tty5
  6:2345:respawn:/sbin/mingetty tty6
  
  ###?U别上运行xdmE式Q提供xdm囑փ方式d界面Qƈ在退出时重新执行(respawn)
  # Run xdm in runlevel 5
  x:5:respawn:/etc/X11/prefdm -nodaemon
  
  以上面的inittab文gZQ来说明一下inittab的格式。其中以#开始的行是注释行,除了注释行之外,每一行都有以下格式:
  
  id:runlevel:action:process
  
  对上面各的周详解释如下Q?br>  
  1. id
  
  id是指入口标识W,他是个字W串Q对于getty或mingetty{其他loginE式,需求id和tty的编L同,否则gettyE式不能正常工作?br>  
  2. runlevel
  
runlevel是init所处于的运行别的标识Q一般?Q?及S或s???q行U别被系l保留:其中0作ؓshutdown动作Q?? 为重启至单用h式,6为重启;S和s意义相同Q表C单用户模式Q且无需inittab文gQ因此也不在inittab中出玎ͼ实际上,q入单用h? Ӟinit直接在控制台Q?dev/consoleQ上q行/sbin/sulogin。在一般的pȝ实现中,都用了2???几个U别Q在 Redhatpȝ中,2表示无NFS支持的多用户模式Q?表示完全多用h式(也是最常用的别)Q?保留l用戯定义Q?表示XDM囑փd方式?Q? 9U别也是能用的Q传l的Unixpȝ没有定义q几个别。runlevel能是q列的多个|以匹配多个运行别,对大多数action来说Q仅 当runlevel和当前运行别匹配成功才会执行?br>  
  3. action
  
  action是描q其后的process的运行方式的。action可取的值包括:initdefault、sysinit、boot、bootwait{:
  
initdefault是个特别的action|用于标识~省的启动别;当init由核心激zM后,他将dinittab中的 initdefault,取得其中的runlevelQƈ作ؓ当前的运行别。如果没有inittab文gQ或其中没有initdefault, init在控制Ch输入runlevel?br>  
  sysinit、boot、bootwait{action在pȝ启动时无条gq行Q而忽略其中的runlevel?br>  
  其余的actionQ不含initdefaultQ都和某个runlevel相关。各个action的定义在inittab的man手册中有周详的描q?br>  
  4. process
  
  process为具体的执行E式。程式后面能带参数?br>  
  W三部分Q系l初始化
  
  在init的设|文件中有这么一行:
  
  si::sysinit:/etc/rc.d/rc.sysinit
  
  他调用执行了/etc/rc.d/rc.sysinitQ而rc.sysinit是个bash shell的脚本,他主?br>在init的设|文件中有这么一行:
si::sysinit:/etc/rc.d/rc.sysinit
? 调用执行?etc/rc.d/rc.sysinitQ而rc.sysinit是个bash shell的脚本,他主要是完成一些系l初始化的工作,rc.sysinit是每一个运行别都要首先运行的重要脚本。他主要完成的工作有Q激zM换分 区,查磁盘,加蝲g模块及其他一些需要优先执行Q务?br>rc.sysinitU有850多行Q不q每个单一的功能还是比较简单,而且带有注释Q徏议有兴趣的用戯自行阅读自己机器上的该文Ӟ以了解系l初始化所周详情况。由于此文g较长Q所以不在本文中列出来,也不做具体的介绍?br>当rc.sysinitE式执行完毕后,返回initl箋下一步?br>W四部分Q启动对应运行别的守护q程
在rc.sysinit执行后,返回initl箋其他的动作,通常接下来会执行?etc/rc.d/rcE式。以q行U别5ZQinit执行设|文件inittab中的以下q行Q?br>l5:5:wait:/etc/rc.d/rc 5
q? 一行表CZ5为参数运?etc/rc.d/rcQ?etc/rc.d/rc是个Shell脚本Q他接受5作ؓ参数Q去执行/etc/rc.d /rc5.d/目录下的所有的rc启动脚本Q?etc/rc.d/rc5.d/目录中的q些启动脚本实际上都是一些链接文Ӟ而不是真正的rc启动脚本Q? 真正的rc启动脚本实际上都是放?etc/rc.d/init.d/目录下。而这些rc启动脚本有着cM的用法,他们一般能接受start、stop? restart、status{参数?br>/etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的链接文gQ对于以以S开头的启动? 本,以start参数来运行。而如果发现存在相应的脚本也存在K打头的链接,而且已处于运行态了(?var/lock/subsys/下的文g作ؓ? ?Q则首先以stop为参数停止这些已启动了的守护q程Q然后再重新q行。这样做是ؓ了确保是当init改动q行U别Ӟ所有相关的守护q程都将? 启?br>至于在每个运行中将q行哪些守护q程Q用戯通过chkconfig或setup中的"System Services"来自行设定。常见的守护q程有:
amdQ自动安装NFS守护q程
  apmd:高甉|理守护q程
  arpwatchQ记录日志ƈ构徏一个在LAN接口上看到的以太|地址和IP地址Ҏ据库
  autofsQ自动安装管理进EautomountQ和NFS相关Q依赖于NIS
  crondQLinux下的计划d的守护进E?br>  namedQDNS服务?br>  netfsQ安装NFS、Samba和NetWare|络文gpȝ
  networkQ激zd讄|络接口的脚本程?br>  nfsQ打开NFS服务
  portmapQRPC portmap理器,他管理基于RPC服务的连?br>  sendmailQ邮件服务器sendmail
  smbQSamba文g׃n/打印服务
  syslogQ一个让pȝ引导时v动syslog和klogdpȝ日志守候进E的脚本
  xfsQX Window字型服务器,为本地和q程X服务器提供字型集
  XinetdQ支持多U网l服务的核心守护q程Q能理wuftp、sshd、telnet{服?br>q些守护q程也启动完成了QrcE式也就执行完了Q然后又返回initl箋下一步?br>W五部分Q徏立终?br>rc执行完毕后,q回init。这时基本系l环境已讄好了Q各U守护进E也已启动了。init接下来会打开6个终端,以便用户dpȝ。通过按Alt+Fn(n对应1-6)能在q?个终端中转换。在inittab中的以下6行就是定义了6个终端:
1:2345:respawn:/sbin/mingetty tty1
  2:2345:respawn:/sbin/mingetty tty2
  3:2345:respawn:/sbin/mingetty tty3
  4:2345:respawn:/sbin/mingetty tty4
  5:2345:respawn:/sbin/mingetty tty5
  6:2345:respawn:/sbin/mingetty tty6
? 上面能看出在2???的运行别中都将以respawn方式q行mingettyE式QmingettyE式能打开l端、设|模式。同时他会显CZ 个文本登录界面,q个界面是我们l常看到的登录界面,在这个登录界面中会提C用戯入用户名Q而用戯入的用户作为参ClloginE式来验证用? 的n份?br>W六部分Q登录系l,启动完成
对于q行U别?的图像方式用h_他们的登录是通过一个图像化的登录界面。登录成功后能直接进入KDE、Gnome{窗口管理器。而本文主要讲的还是文本方式登录的情况Q?br>当我们看到mingetty的登录界面时Q我们就能输入用户名和密码来dpȝ了?br> Linux的̎号验证程式是loginQlogin会接收mingetty传来的用户名作ؓ用户名参数。然后login会对用户名进行分析:如果用户? 不是rootQ且存在/etc/nologin文gQlogin输出nologin文g的内容,然后退出。这通常用来pȝl护旉止非root用户? 录。只?etc/securetty中登C的终端才允许root用户dQ如果不存在q个文gQ则root能在所有终端上d?etc /usertty文g用于对用户作出附加访问限Ӟ如果不存在这个文Ӟ则没有其他限制?br>在分析完用户名后Qlogin搜?etc/passwd?etc/shadow来验证密码及讄账户的其他信息,比如Q主目录是什么、用何Ushell。如果没有指定主目录Q将默认为根目录Q如果没有指定shellQ将默认?bin/bash?br>login E式成功后,会向对应的终端在输出最q一ơ登录的信息(?var/log/lastlog中有记录)Qƈ查用h否有新邮??usr/spool /mail/的对应用户名目录?。然后开始设|各U环境变量:对于bash来说Q系l首先寻?etc/profile脚本文gQƈ执行他;然后如果? Lȝ录中存在.bash_profile文gQ就执行他,在这些文件中又可能调用了其他讄文gQ所有的讄文g执行后后Q各U环境变量也讑֥了,q? 时会出现大家熟悉的命令行提示W,到此整个启动q程q束了?br>希望通过上面对Linux启动q程的剖析能帮助那些x入学习Linux用户建立一个相关Linux启动q程的清晰概念,q而能q一步研ILinux接下来是怎么工作的?/div>

]]>linuxq入pȝ直接是x界面Q怎么才能q入命o行模式? http://www.shnenglu.com/mydriverc/archive/2009/10/12/98437.html旅?/dc:creator>旅?/author>Mon, 12 Oct 2009 15:09:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98437.htmlhttp://www.shnenglu.com/mydriverc/comments/98437.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/12/98437.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98437.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98437.html$gedit   /etc/inittab   
 把id:5:initdefault中的5改ؓ3

        0Q停机(C不要把initdefault 讄?Q因样会使Linux无法启动 Q?br>  1Q单用户模式Q就像Win9X下的安全模式?br>  2Q多用户Q但是没?NFS ?br>  3Q完全多用户模式Q标准的q行U?br>  4Q一般不用,在一些特D情况下可以用它来做一些事情?br>  5QX11Q即q到 X-Window pȝ?br>  6Q重新启?Q记住不要把initdefault 讄?Q因样会使Linux不断地重新启动)?/font>

  其中q行U?是我们要进入的标准Console字符界面模式



]]>initq程及inittab文ghttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98208.html旅?/dc:creator>旅?/author>Fri, 09 Oct 2009 15:27:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98208.htmlhttp://www.shnenglu.com/mydriverc/comments/98208.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98208.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98208.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98208.html initq程

init的进E号?,是所有进E的父进E,内核初始化完毕之后,initE序开始运行。其他Y件也同时开始运行。initE序通过/etc/inittab文gq行配置。inittab文g的内容如下:
代码:

#
# inittab      This file describes how the INIT process should set up
#              the system in a certain run-level.
#
# Author:      Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#              Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
                                                                                                                           
# Default runlevel. The runlevels used by RHS are:
#  0 - halt (Do NOT set initdefault to this)
#  1 - Single user mode
#  2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#  3 - Full multiuser mode
#  4 - unused
#  5 - X11
#  6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
                                                                                                                           
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
                                                                                                                           
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel
ud::once:/sbin/update
                                                                                                                           
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
                                                                                                                           
# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
                                                                                                                           
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
                                                                                                                           
                                                                                                                           
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
                                                                                                                           
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon


注意Q案例文件的注释是经q编辑的Qؓ的是保持书面的一致性?br>
理解Runlevel

runlevel用来表示在initq程l束之后的系l状态,在系l的g中没有固定的信息来表CrunlevelQ它Ua是一UY件结构。init? inittab是runlevel影响pȝ状态的唯一原因。在上述例子中inittab文g起始阶段的注释主要用来描qrunlevelQ?br>
Runlevel 0是让init关闭所有进Eƈl止pȝ?br> Runlevel 1是用来将pȝ转到单用h式,单用h式只能有pȝ理员进入,在该模式下处理那些在有登录用L情况下不能进行更改的文gQ改runlevel的编?也可以用S代替?br> Runlevel 2是允许系l进入多用户的模式,但ƈ不支持文件共享,q种模式很少应用?br> Runlevel 3是最常用的运行模式,主要用来提供真正的多用户模式Q也是多数服务器的缺省模式?br> Runlevel 4一般不被系l用,用户可以设计自己的系l状态ƈ其应用到runlevel 4阶段Q尽很用,但用该pȝ可以实现一些特定的dh?br> Runlevel 5是将pȝ初始化ؓ专用的X Windowl端。对功能强大的Linuxpȝ来说Q这q不是好的选择Q但用户如果需要这P也可以通过在runlevel启动来实现该Ҏ?br> Runlevel 6是关闭所有运行的q程q新启动系l?br>
在inittab文g中以#开头的所有行都是注释行。注释行有助于用L解inittab文gQinittab文g中的值都是如下格式:

label:runlevel:action:process

label?~4个字W的标签Q用来标C入的倹{一些系l只支持2个字W的标签。鉴于此原因Q多Ch都将标签字符的个数限制在2个以内。该标签可以是Q意字W构成的字符Ԍ但实际上Q某些特定的标签是常用的Q在Red Hat Linux中用的标签是:
代码:

id 用来定义~省的initq行的?br> si 是系l初始化的进E?br> ln 其中的n?~6,指明该进E可以用的runlevel的?br> ud 是升U进E?br> ca 指明当按下Ctrl+Alt+Del是运行的q程
pf 指当UPS表明断电时运行的q程
pr 是在pȝ真正关闭之前QUPS发出甉|恢复的信h需要运行的q程
x  是将pȝ转入Xl端旉要运行的q程

runlevel字段指定runlevel的别。可以指定多个runlevelU别Q也可以不ؓrunlevel字段指定特定的倹{?br>
action字段定义了该q程应该q行在何U状态下Q?br>
代码:

boot                在系l启动时q行Q忽略runlevel
bootwait        在系l启动时q行Qinit{待q程完成。忽略runlevel
ctrlaltdel        当Ctrl+Alt+Del三个键同时按下时q行Q把SIGINT信号发送给init。忽略runlevel
initdefault        不要执行q个q程Q它用于讄默认runlevel
kbrequest        当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘l合的文?
off                止q入Q因此该q程不运?br> once                每一个runlevelU别q行一?br> ondemand        当系l指定特定的q行U别A、B、C时运?br> powerfail        当init收到SIGPWR信号时运?br> powerokwait        当收到SIGPWD信号?etc/文g中的甉|状态包含OK时运?br> powerwait        当收到SIGPWD信号Qƈ且init{待q程l束时运?br> respawn                不管何时l止都重新启动进E?br> sysinit                在运行boot或bootwaitq程之前q行
wait                q行q程{待输入q行模式

process字段包含init执行的进E,该进E采用的格式与在命o行下q行该进E的 格式一P因此process字段都以该进E的名字开_紧跟着是运行时Q紧跟着是运行时要传递给该进E的参数。比?sbin/shutdown -t3 -r nowQ该q程在按下Ctrl+Alt+Del时执行,在命令行下也可以直接输入来重新启动系l?br>
Ҏ目的的记?br>

仔细学习例子文gQ学习应用其中关于inittab的语法格式。该文g的大多数内容都可以忽略,因ؓ过一半的内容都是注释Q剩余的一些文件内容主要是用来实现某些Ҏ的功能:

id 的D明缺省的runlevel??br> ud 的值可以唤?sbin/updateq程Q该q程Z持磁盘的完整性,在对磁盘进行I/O操作之前清空整个I/O~冲区?br> pf、pr和ca的值只被特定的中断所调用?br> 如果pȝ是专用的Xl端Q则只需x的输入倹{?br>
gettyq程来提供虚拟终端设备的服务Q例如:

3:2345:respawn:/sbin/mingetty tty3

标签字段的值是3,3是设备tty3的数字后~,tty3与相应的q程相关联,该gettyq程可以启动的runlevel????,当该q程l? 止时Qinit马上重新启动它。启动进E的路径名是/sbin/mingettyQ该q程是实现虚拟终端支持的最版本的gettyQؓtty3提供? 动虚拟设备的q程?br>
si::sysinit:/etc/rc.d/rc.sysinit

该值告诉initE序q行/etc/rc.d/rc.sysinit脚本文g来初始化pȝQ该脚本文g与所有启动的脚本cMQ它只是一个包含Linux? shell命o的可执行文gQ注意输入的字符串必d括该脚本的完整\径。不同版本的Linux存放该脚本的位置也不相同Q但不用L去记忆这些位|,? 需查看/etc/inittab文g卛_Q该文g中包含启动脚本文件的切位置?br>
l3:3:wait:/etc/rc.d/rc 3

该行表示要启动所有由runlevel 3定义的支持多用户的进E的服务Q标{l3是?的标志,在与q行level3相关的inittab文g之前initE序一直处于等待状态,直到启动 脚本l止Qinit执?etc/rc.d/rcQƈ向该脚本传递命令行的参Cؓ3?img src ="http://www.shnenglu.com/mydriverc/aggbug/98208.html" width = "1" height = "1" />

]]>
/etc/inputrchttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98204.html旅?/dc:creator>旅?/author>Fri, 09 Oct 2009 14:48:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98204.htmlhttp://www.shnenglu.com/mydriverc/comments/98204.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98204.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98204.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98204.htmlInputrc 用来处理键盘映射表。这个文件在启动的时候被一个bash和其他shell使用的库QreadlineQ调用?/p>

阅读

# /etc/inputrc的开?br>
# 认我们不会在同一行中输出所有的东西?br>set horizontal-scroll-mode Off

# 开?比特输入
set meta-flag On
set input-meta On

# 止对第8个比特过?br>set convert-meta Off

# 在显C时保存W?个比?br>set output-meta On

# 关闭可视和声xC?br>set bell-style none

# 下面的内容给Z在readline
# 函数W一部分中包括的换码W序列的?br>
"\eOd": backward-word
"\eOc": forward-word

# 在控制台使用
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# xterm使用
"\eOH": beginning-of-line
"\eOF": end-of-line

# /etc/inputrcl束

全局的设定值包含在   "\M-H ; \C-H" : "cd $HOME"
  "\M-H + \C-H" : "cd $HOME"
  "\M-H & \C-H" : "cd $HOME"
  ....
  
  Any idea is greatly appreciated! 3KU very much !
  
  先用cat查看l合热键的ASCII字符Q?
  # cat
  <按下热键Q如QCtrl-Alt-H>
  看到了什么? ^[^H 对不对?
  ?lt;Ctrl-D>退?
  同理可以得知其他l合热键对应的ASCII字符Q?有一些组合热键像CtrlQAltQD/Q/Z/C/S/M/J/U/I/E好像不能使用Q不q没关系Q可用的热键?5个左?
  
  然后修改/etc/inputrc ?~/.inputrcQ向里面dl合热键的宏定义Q偶的如下:
  
  "^[^G":"gaim & &>/dev/null && disown\C-M"
#按Ctrl-Alt-g在当前shell打开gaim, q脱该shell独立q行Q即Q即使你退Z该shellQ? gaim也不会关闭字W输入方? 在vi的插入模式下Q?^[是先按Ctrl-V, 然后按ESCQ[^G是先按Ctrl-v, 然后按Ctrl-HQ其他的与此cM
  
  "^[^H":"vi /etc/httpd/conf/httpd.conf\C-M"
  # Ctrl-Alt-h 打开vi~辑器编辑apache的配|文?
  
  "^[^L":"stardict & &>/dev/null && disown\C-M"
  # Ctrl-Alt-l ->> q行星际译王(l->look up查询的意思)
  
  "^[^O":"soffice & &>/dev/null && disown\C-M"
  # Ctrl-Alt-o ->> 打开Openoffice
  
  "^[^P":"opera & &>/dev/null && disown\C-M"
  # Ctrl-Alt-p ->> 大名鼎鼎的浏览器Opera
  
  "^[^X":"xmms & &>/dev/null && disown\C-M"
  
  一下:
  su -
  <Press Ctrl-Alt-X>



]]>
新手看招 Linuxpȝ下设|用L录环?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98203.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Fri, 09 Oct 2009 14:39:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98203.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98203.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98203.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98203.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98203.html</trackback:ping><description><![CDATA[<span id="nrz799h" class="a14c"> <p style="text-indent: 2em;">用户在用Linuxpȝ的时候,q需要相关的工作环境。ؓ此,理员应为用戯|登录环境?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">当用L录Linuxpȝ后,通常接触的第一个Y件环境就是bash命o解释E序Q这是除了系l核心之外最重要的Y件环境。在Linuxpȝ中,软g环境的配|信息通常都存攑֜一些配|文件中?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">以下是一些较为重要的Shell环境配置文gQ?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">?etc/bashrc 包含pȝ定义的命令别名和bash的环境变量定义?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">?etc/profile 包含pȝ的环境定义,q指定启动时必须q行的程序?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">?etc/inputrc 包含pȝ的键盘设定,以及针对不同l端E序的键位配|信息?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">?HOME/.bashrc 包含为用户定义的命o别名和bash的环境变量定义?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">?HOME/bash_profile 包含为用户定义的环境变量Qƈ指定用户d旉要启动的E序?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">?HOME/.inputrc 包含用户的键盘设定,以及针对用户l端的键位配|信息?</p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">q些文g都是采用Shell语言~写的系l脚本文Ӟ通常用户目录下的配置文g?etc目录中相对应的文件大致相同?</p> </span><img src ="http://www.shnenglu.com/mydriverc/aggbug/98203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-09 22:39 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/09/98203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux中忘Croot密码的解x?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98200.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Fri, 09 Oct 2009 14:29:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98200.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98200.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98200.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98200.html</trackback:ping><description><![CDATA[忘记了root密码只需以单用户方式q入pȝQ修改root的密码然后再重新启动卛_。过E如下所C?<br>  <strong><wbr>q入单用h?/strong> <div id="v1lbb1z" class="ns_content"><wbr> <br>  pȝ自检后,q入 GRUB 的引D?<br>     利用方向键选择"Red Flag Desktop "q一,然后按键盘上?E"键,q入~辑模式?<br>     利用方向键选择"kernel /boot/vmlinux-2.6.9-5.34DT ro root=LABEL=/ vga=785 ..."q一,然后按键盘上?E"键, <br>     利用方向键将光标U至"/vmlinuz-2.6.9-5.34DT"后,"ro root="之前Q输?I格single"Q按回R键后q回~辑模式Q再按键盘上?B"键,q几U钟后就会进入单用户模式Q?<br>    <strong><wbr>开始修改密?<br></strong><wbr>  <strong><wbr>Ҏ1Q?/strong><wbr> <br>  ?sh-3.00#"后输入: <br><font style="line-height: 1.3em;" color="#ff0000">passwd root</font><wbr> <br>Q回车; <br>  ?New password:"后输入您的新密码Q回车; <br>  ?Retype new password:"后输入确认密码,回RQ提C密码修Ҏ功; <br>  q回?sh-3.00#"后输入: <br><font style="line-height: 1.3em;" color="#ff0000">reboot</font><wbr> <br>Q回车,重启后即可用新密码进行登录?<br>  <strong><wbr>Ҏ2Q修?etc/shadow文g</strong><wbr> <br>  ׃U旗Linux5.0桌面版中/etc/shadow文g默认为只读,所以先修改其权限ؓd?<br>  ?sh-3.00#"后输入: <br><font style="line-height: 1.3em;" color="#ff0000">chmod 600 /etc/shadow</font><wbr> <br>?<br><font style="line-height: 1.3em;" color="#ff0000">chomd u+w /etc/shadow</font><wbr> <br>Q回车即可更改其权限写; <br>  <strong><wbr>使用VI~辑/etc/shadow文g</strong><wbr> <br>  ?sh-3.00#"后输入: <br><font style="line-height: 1.3em;" color="#ff0000">vi /etc/shadow</font><wbr> <br>Q打开shadow文g后,第一行,即以root开头的一行中root:后和下一?前的内容删除Q不要删除冒PcM?<br>  root::...... <br>  删好后按" <br><font style="line-height: 1.3em;" color="#ff0000">:wq</font><wbr> <br>"? <br><font style="line-height: 1.3em;" color="#ff0000">ZZ</font><wbr> <br>"卛_保存文gq回?sh-3.00#"提示W;再用命?<br><font style="line-height: 1.3em;" color="#ff0000">chmod 400 /etc/shadow</font><wbr> <br>?<br><font style="line-height: 1.3em;" color="#ff0000">chomd u-w /etc/shadow</font><wbr> <br>Q将权限设ؓ默认的只L限?<br>  最后在"sh-3.00#"后输入: <br><font style="line-height: 1.3em;" color="#ff0000">reboot</font><wbr> <br>Q回车,重启后即可用I密码进行登录,d后修改密码即可?/div><img src ="http://www.shnenglu.com/mydriverc/aggbug/98200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-09 22:29 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/09/98200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手动修改/etc/shadow中的用户密码http://www.shnenglu.com/mydriverc/archive/2009/10/09/98196.html旅?/dc:creator>旅?/author>Fri, 09 Oct 2009 14:18:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98196.htmlhttp://www.shnenglu.com/mydriverc/comments/98196.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/09/98196.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98196.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98196.html #testaccount:$1$acQMceF9$1SaCpG2qiKKA3eGolU4Fp0:13402:0:99999:7:::
彩色Dؓ加密后的密码Q?font color="#ff0000">$1$表示采用的是md5加密
Q?font color="#006666">l色D|单的字符Ԍ
蓝色Dؓ加密后的密码

以下命o可得到加密后的字W串Qzz为密?br> perl -e ’print crypt("zz","Q?1Q?acQMceF9Q?"),"Qn"’

l果如下
$1$acQMceF9$1SaCpG2qiKKA3eGolU4Fp0

用此D密码替?etc/shadow中的密码部分卛_


]]>Linux操作pȝ的口令安全问题详l解析(LINUX 启用shadow文g 口o保护Q?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98195.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Fri, 09 Oct 2009 14:16:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98195.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98195.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98195.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98195.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98195.html</trackback:ping><description><![CDATA[  几乎所有的cUnix<a class="hui14_line"><font style="color: #333333;">操作pȝ</font></a>的口令文件的格式都雷同,Linux亦不例外。口令安全是Linux操作pȝ的传l安全问题之一?<br> <br> <strong>传统口o与媄子口?<br> </strong><br> /etc/passwd是存攄L基本信息的口令文件。该口o文g的每一行都包含?个冒号分隔的7个域Q?<br> <br> username: passwd: uid: gid: comments: Directory: shell <br> <br> 以上从左到右7个域分别叙述如下Q?<br> <br> usernameQ是用户登陆使用的名字?<br> <br> passwdQ是口o密文域。密文是加密q的口o。如果口令经qshadow则口令密文域只显CZ个xQ通常Q口令都应该l过shadow以确保安全。如果口令密文域昄?Q则表明该用户名有效但不能登陆。如果口令密文域为空则表明该用户登陆不需要口令?<br> <br> uidQ系l用于唯一标识用户名的数字Quidpȝ是这样分配的Q?<br> <br> 0 用户 <br> <br> 1?0 守护E序和伪用户 <br> <br> 11?9 pȝ保留用户 <br> <br> 100?正常用户 <br> <br> gidQ表C用h在默认组受由/etc/group文g军_?<br> <br> commentsQ描q用L个h信息?<br> <br> directoryQ定义用L初始工作目录?<br> <br> shellQ就是指定用L陆到pȝ后启动的外壳E序?<br> <br> ?列出了系l在安装q程中创建的标准用户Q表中的内容?etc/passwd文g的描q是一致的?<br> <br> ?列出pȝ安装q程中创建的标准用户l,?etc/group文g是一致的Q?<br> <br> Linux使用不可逆的加密法如DES来加密口令,׃加密法是不可逆的Q所以从密文是得不到明文的。但问题在于Q?etc/passwd文g? 全局可读的,加密的算法是公开的,如果有恶意用户取得了/etc/passwd文gQ他可以穷举所有可能的明文通过相同的算法计出密文q行比较Q直? 相同Q于是他q解了口o。因此,针对q种安全问题QLinux/Unixq泛采用?#8220;shadowQ媄子)”机制Q将加密的口令{Ud/etc /shadow文g里,该文件只为root用户可读Q而同?etc/passwd文g的密文域昄Z个xQ从而最大限度减密文泄露的Z?<br> <br> /etc/shadow文g的每行是8个冒号分割的9个域Q格式如下: <br> <br> username: passwd: lastchg: min: max: warn: inactive: expire: flag <br> <br> 其中Q?<br> <br> lastchgQ表CZ1970q??日vCơ修改口令所l过的天数?<br> <br> minQ表CZơ修改口令之间至经q的天数?<br> <br> maxQ表C口令还会有效的最大天敎ͼ如果?9999则表C永不过期?<br> <br> warnQ表C口令失效前多少天内pȝ向用户发告?<br> <br> inactiveQ表C禁止登陆前用户名还有效的天数?<br> <br> expireQ表C用戯止登陆的时间? <br> <br> flagQ无意义Q未使用?<br> <br> <br> <strong> 启用影子口o <br> </strong><br> RedHat Linux~省安装shadowQ如果你发现你的pȝ?etc/passwd文g仍然可以看到密文Q就说明你没有启用shadow。可以执行pwconv来启用shadow?<br> <br> 在RedHat Linux 7.1中,影子工具包(shadow utilsQ包含了几个工具支持以下功能Q?<br> <br> 传统口o与媄子口令之间的转换工具Qpwconv、pwunconv?<br> <br> 验证口oQ组和相应的影子文gQpwck、grpck?<br> <br> 以符合工业标准的Ҏ增加、删除和修改用户帐户Quseradd、usermod、userdel?<br> <br> 以符合工业标准的Ҏ增加、删除和修改用户l:groupadd、groupmod、groupdel?<br> <br> 以符合工业标准的Ҏ理文g/etc/group?<br> <br> 无论pȝ是否启用shadow机制Q上q工具都可以正常使用?<br> <br> <strong> 更改Linux口o的最短长?<br> </strong><br> Linuxpȝ默认最短口令长度ؓ5个字W,q个长度不以保证口令的健壮性,应该改ؓ最?个字W,~辑/etc/login.defs文gQ在此文件中Q将 <br> <br> PASS_MIN_LEN  5 <br> <br> 改ؓQ?<br> <br> PASS_MIN_LEN  8 <img src ="http://www.shnenglu.com/mydriverc/aggbug/98195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-09 22:16 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/09/98195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux /etc/passwd,/etc/shadow 用户文g的说?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98193.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Fri, 09 Oct 2009 13:52:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98193.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98193.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/09/98193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98193.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98193.html</trackback:ping><description><![CDATA[linux操作pȝ的用h件的说明 <br><strong>/<span id="jjt5zrh" class="hilite1">etc/passwd</span></strong> <br>  该目录存储的是操作系l用户信息,该文件ؓ所有用户可见? <br>llinuxpȝd一个帐P <br>  useradd -g mysql -d /home/test -m testQ:新徏一个用户test, 属于mysqll,开始目录是/home/testQ? <br>  然后q入 /<span id="nffxxzh" class="hilite1">etc/passwd</span>Q可以看到如下信息,在最后一行可以看到刚加的用户的信息。如? <br>   sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin <br>   dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin <br>   webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin <br>   squid:x:23:23::/var/spool/squid:/sbin/nologin <br>   pcap:x:77:77::/var/arpwatch:/sbin/nologin <br>   haldaemon:x:68:68:HAL daemon:/:/sbin/nologin <br>   xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin <br>   hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin <br>   gdm:x:42:42::/var/gdm:/sbin/nologin <br>   hzmc:x:500:500:hzmc:/home/hzmc:/bin/bash <br>   mysql:x:501:501::/home/mysql:/bin/bash <br>   chenhua:x:503:501::/home/chenhua:/bin/bash <br>   test:x:504:501::/home/test:/bin/bash <br>可以看出/<span id="9r79fzx" class="hilite1">etc/passwd</span>文g存放的是用户的信息,?个分L成的7个信息,解释如下 <br>   Q?Q:用户名? <br>   Q?Q:密码Q已l加密) <br>   Q?Q:UIDQ用h识),操作pȝ自己用的 <br>   Q?Q:GIDl标识? <br>   Q?Q:用户全名或本地帐? <br>   Q?Q:开始目? <br>   Q?Q:d使用的ShellQ就是对d命oq行解析的工兗? <br>  下面为test用户讄密码Q执行如下命? <br>   passwd test <br>   [root@localhost etc]# passwd test <br>     Changing password for user test. <br>     New UNIX password: <br>     Retype new UNIX password: <br>     passwd: all authentication tokens updated successfully. <br>   [root@localhost etc]# <br>  然后q入/etc/shadow文g下面可以看到如下信息 <br>  gdm:!!:14302:0:99999:7::: <br>  hzmc:$1$JZMjXqxJ$bvRpGQxbuRiEa86KPLhhC1:14302:0:99999:7::: <br>  mysql:!!:14315:0:99999:7::: <br>  chenhua:$1$YBJZNyXJ$BnpKFD58vSgqzsyRO0ZeO1:14316:0:99999:7::: <br>  test:$1$hKjqUA40$OelB9h3UKOgnttKgmRpFr/:14316:0:99999:7::: <br>  可以发现Q共?个栏? <br> Q?Q:帐号名称 <br> Q?Q:密码Q这里是加密q的Q但高手也可以解密的。要主要安全问题Q代Q符h识该帐号不能用来dQ? <br> Q?Q:上次修改密码的日? <br> Q?Q:密码不可被变更的天数 <br> Q?Q:密码需要被重新变更的天敎ͼ99999表示不需要变_ <br> Q?Q:密码变更前提前几天警? <br> Q?Q:帐号失效日期 <br> Q?Q:帐号取消日期 <br> Q?Q:保留条目Q目前没? <br><img src ="http://www.shnenglu.com/mydriverc/aggbug/98193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-09 21:52 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/09/98193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>W一个visudo命ohttp://www.shnenglu.com/mydriverc/archive/2009/10/08/98061.html旅?/dc:creator>旅?/author>Wed, 07 Oct 2009 16:42:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/08/98061.htmlhttp://www.shnenglu.com/mydriverc/comments/98061.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/08/98061.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98061.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98061.htmld
usr1 ALL=/usr/bin/reboot,/usr/bin/shutdown

到新用户下执行sudo reboot
执行成功?br>



]]>
visudo~辑sudoers配置文g(?http://www.shnenglu.com/mydriverc/archive/2009/10/08/98059.html旅?/dc:creator>旅?/author>Wed, 07 Oct 2009 16:31:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/08/98059.htmlhttp://www.shnenglu.com/mydriverc/comments/98059.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/08/98059.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98059.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98059.html
visudo~辑sudoers配置文gQ不q也可以直接通过修改sudoers文g实现Q不q编辑之前最好看一下它的sample.sudoers文gQ里面有一个相当详l的例子可以参考?nbsp;   
I格部分用tab键代?br>  Q第一部分Q用户定义,用户分为FULLTIMERS、PARTTIMERS和WEBMASTERS三类?nbsp;   
  User_Alias   FULLTIMERS   =   millert,   mikef,   dowdy    
  User_Alias   PARTTIMERS   =   bostley,   jwfox,   crawl    
  User_Alias   WEBMASTERS   =   will,   wendy,   wim    
  Q第二部分,操作类型分cR?nbsp;   
  Runas_Alias   OP   =   root,   operator    
  Runas_Alias   DB   =   oracle,   sybase    
  #W三部分Q将L分类。这些都是随便分得,目的是ؓ了更好地理?nbsp;   
  Host_Alias   SPARC   =   bigtime,   eclipse,   moet,   anchor   :    
  SGI   =   grolsch,   dandelion,   black   :    
  ALPHA   =   widget,   thalamus,   foobar   :    
  HPPA   =   boa,   nag,   python    
  Host_Alias   CUNETS   =   128.138.0.0/255.255.0.0    
  Host_Alias   CSNETS   =   128.138.243.0,   128.138.204.0/24,   128.138.242.0    
  Host_Alias   SERVERS   =   master,   mail,   www,   ns    
  Host_Alias   CDROM   =   orion,   perseus,   hercules    
  Q第四部分,定义命o和命令地路径?nbsp;   
  Cmnd_Alias   DUMPS   =   /usr/bin/mt,   /usr/sbin/dump,   /usr/sbin/rdump,    
  /usr/sbin/restore,   /usr/sbin/rrestore    
  Cmnd_Alias   KILL   =   /usr/bin/kill    
  Cmnd_Alias   PRINTING   =   /usr/sbin/lpc,   /usr/bin/lprm    
  Cmnd_Alias   SHUTDOWN   =   /usr/sbin/shutdown    
  Cmnd_Alias   HALT   =   /usr/sbin/halt,   /usr/sbin/fasthalt    
  Cmnd_Alias   REBOOT   =   /usr/sbin/reboot,   /usr/sbin/fastboot    
  Cmnd_Alias   SHELLS   =   /usr/bin/sh,   /usr/bin/csh,   /usr/bin/ksh,    
  /usr/local/bin/tcsh,   /usr/bin/rsh,    
  /usr/local/bin/zsh    
  Cmnd_Alias   SU   =   /usr/bin/su    
 Q? q里是针对不同的用户采用不同地策略,比如默认所有的syslog直接通过auth   输出。FULLTIMERSl不用看到lectureQ第一ơ运行时产生的消息)Q用户millert使用sudo时不用输入密码;以及logfile? 路径?var/log/sudo.log而且每一行日志中必须包括q?nbsp;   
  Defaults   syslog=auth    
  Defaults:FULLTIMERS   !lecture    
  Defaults:millert   !authenticate    
  Defaults@SERVERS   log_year,   logfile=/var/log/sudo.log    
  Qroot和wheell的成员拥有M权利?nbsp;   
  root   ALL   =   (ALL)   ALL    
  %wheel   ALL   =   (ALL)   ALL    
 QFULLTIMERS可以q行M命o在Q何主不用输入自q密码    
  FULLTIMERS   ALL   =   NOPASSWD:   ALL    
  QPARTTIMERS可以q行M命o在Q何主机,但是必须先验证自q密码?nbsp;   
  PARTTIMERS   ALL   =   ALL    
  Qjack可以q行M命o在定义地CSNETQ?28.138.243.0,   128.138.242.0?28.138.204.0/24的子|)中,不过注意前两个不需要匹配子|掩码,而后一个必d配掩码?nbsp;   
  jack   CSNETS   =   ALL    
  Qlisa可以q行M命o在定义ؓCUNETSQ?28.138.0.0Q的子网中主Z?nbsp;   
  lisa   CUNETS   =   ALL    
  #用户operator可以q行DUMPS,KILL,PRINTING,SHUTDOWN,HALT,REBOOT以及?usr/oper/bin中的所有命令?nbsp;   
  operator   ALL   =   DUMPS,   KILL,   PRINTING,   SHUTDOWN,   HALT,   REBOOT,    
  /usr/oper/bin/    
  Qjoe可以q行su   operator命o    
  joe   ALL   =   /usr/bin/su   operator    
  Qpete可以为除root之外地用户修改密码?nbsp;   
  pete   HPPA   =   /usr/bin/passwd   [A-z]*,   !/usr/bin/passwd   root    
  Qbob可以在SPARC和SGI机器上和OP用户l中的root和operator一栯行如何命令?nbsp;   
  bob   SPARC   =   (OP)   ALL   :   SGI   =   (OP)   ALL    
 Qjim可以q行M命o在biglab|络l中。Sudo默认“Q?#8221;是一个网l组地前~?nbsp;   
  jim   +biglab   =   ALL    
  Q在secretaries中地用户帮助理打印机,q且可以q行adduser和rmuser命o?nbsp;   
  +secretaries   ALL   =   PRINTING,   /usr/bin/adduser,   /usr/bin/rmuser    
  Qfred能够直接q行oracle或者sybase数据库?nbsp;   
  fred   ALL   =   (DB)   NOPASSWD:   ALL    
  Qjohn可以在ALPHA机器上,su除了root之外地所有h?nbsp;   
  john   ALPHA   =   /usr/bin/su   [!-]*,   !/usr/bin/su   *root*    
  Qjen可以在除了SERVERSLl的机器上运行Q何命令?nbsp;   
  jen   ALL,   !SERVERS   =   ALL    
  Qjill可以在SERVERS上运?usr/bin/中的除了su和shell命o之外的所有命令?nbsp;   
  jill   SERVERS   =   /usr/bin/,   !SU,   !SHELLS    
  Qsteve可以作ؓ普通用戯行在CSNETSL上的/usr/local/op_commands/内的M命o?nbsp;   
  steve   CSNETS   =   (operator)   /usr/local/op_commands/    
 Qmatt可以在他的个人工作站上运行kill命o?nbsp;   
  matt   valkyrie   =   KILL    
  QWEBMASTERS用户l中的用户可以以www的用户名q行M命o或者可以su   www?nbsp;   
  WEBMASTERS   www   =   (www)   ALL,   (root)   /usr/bin/su   www    
  QQ何用户可以mount或者umount一个cd-rom在CDROML上,而不用输入密码?nbsp;   
  ALL   CDROM   =   NOPASSWD:   /sbin/umount   /CDROM,    
  /sbin/mount   -o   nosuid,nodev   /dev/cd0a   /CDROM    
   
  10)   我的sudoers   配置文g是这L    
  User_Alias   ADMIN   =   root,username    
  Runas_Alias   OP   =   username    
  Cmnd_Alias   IPCHAINS   =   /usr/bin/ipchains    
  Cmnd_Alias   EDIT   =   /bin/vi    
  Cmnd_Alias   SHUTDOWN   =/sbin/shutdown    
  Cmnd_Alias   HALT   =   /usr/bin/halt    
  Cmnd_Alias   DEL   =   /bin/rm    
  Cmnd_Alias   COPY=   /bin/cp    
  Cmnd_Alias   SU=/bin/su    
  Cmnd_Alias   SLEEP=   /bin/sleep    
  Cmnd_Alias   REBOOT   =   /usr/bin/reboot    
  Cmnd_Alias   CHMOD=/bin/chmod    
  Cmnd_Alias   HWCLOCK=/sbin/hwclock    
  Cmnd_Alias   TRACET=/usr/sbin/traceroute    
  Cmnd_Alias   VIPW   =   /sbin/route    
  Cmnd_Alias   PASSWD=/usr/bin/passwd    
  Cmnd_Alias   IPSEC=/usr/local/sbin/ipsec    
  Cmnd_Alias   ARP=/sbin/arp    
  Cmnd_Alias   HOSTNAME=/bin/hostname    
  root   ALL   =   (ALL)   ALL    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:HOSTNAME    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:ARP    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:HWCLOCK    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:IPCHAINS    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:HALT    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:SHUTDOWN    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:REBOOT    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:CHMOD    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:IPSEC    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:PASSWD    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:TRACET    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:DEL    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:COPY    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:SU    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:EDIT    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:SLEEP    
  ADMIN   SERVERNAME=(ALL)   NOPASSWD:ROUTE    
   
  sudo的用相对地单,只要sudo和sudoers命o拯到相应的路径卛_。Sudo命o可以rename成你所喜欢的名字,sudoers也一栗?


]]>重新启动后的裸设备的属主和权?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/07/98056.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Wed, 07 Oct 2009 15:50:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/07/98056.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98056.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/07/98056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98056.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98056.html</trackback:ping><description><![CDATA[使用chown和chmodQ执行reboot后,<br>使用ls -l /dev/raw/raw1的属L有变回root?br><br><img src ="http://www.shnenglu.com/mydriverc/aggbug/98056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-07 23:50 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/07/98056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux用户和用L理Q{Q?/title><link>http://www.shnenglu.com/mydriverc/archive/2009/10/07/98054.html</link><dc:creator>旅?/dc:creator><author>旅?/author><pubDate>Wed, 07 Oct 2009 15:39:00 GMT</pubDate><guid>http://www.shnenglu.com/mydriverc/archive/2009/10/07/98054.html</guid><wfw:comment>http://www.shnenglu.com/mydriverc/comments/98054.html</wfw:comment><comments>http://www.shnenglu.com/mydriverc/archive/2009/10/07/98054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mydriverc/comments/commentRss/98054.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mydriverc/services/trackbacks/98054.html</trackback:ping><description><![CDATA[Linuxpȝ是一个多用户多Q务的分时操作pȝQQ何一个要使用pȝ资源的用P都必首先向pȝ理员申请一个̎P然后以这个̎Lw䆾q入 pȝ。用L账号一斚w可以帮助pȝ理员对使用pȝ的用戯行跟t,q控制他们对pȝ资源的访问;另一斚w也可以帮助用Ll文Ӟqؓ用户提供安全? 保护。每个用戯̎号都拥有一个惟一的用户名和各自的口o。用户在d旉入正的用户名和口o后,p够进入系l和自己的主目录? <p>  实现用户账号的管理,要完成的工作主要有如下几个方面: <br> · 用户账号的添加、删除与修改?<br> · 用户口o的管理?<br> · 用户l的理?</p> <p><br> 一、Linuxpȝ用户账号的管?/p> <p>  用户账号的管理工作主要涉及到用户账号的添加、修改和删除?/p> <p>  d用户账号是在系l中创徏一个新账号Q然后ؓ新̎号分配用户号、用L、主目录和登录Shell{资源。刚d的̎h被锁定的Q无法用?</p> <p>1、添加新的用戯̎号用useradd命oQ其语法如下Q?/p> <p>  <br> useradd 选项 用户?/p> <p><br> 其中各选项含义如下Q?/p> <p>  -c comment 指定一D|释性描q?/p> <p>  -d 目录 指定用户ȝ录,如果此目录不存在Q则同时使用-m选项Q可以创Z目录?/p> <p>  -g 用户l?指定用户所属的用户l?/p> <p>  -G 用户l,用户l?指定用户所属的附加l?/p> <p>  -s Shell文g 指定用户的登录Shell?/p> <p>  -u 用户?指定用户的用户号Q如果同时有-o选项Q则可以重复使用其他用户的标识号?/p> <p>  用户?指定新̎Ld名?/p> <p><br> 2、例子说?/p> <p>  ?Q?/p> <p>  <br> # useradd –d /usr/sam -m sam</p> <p><br> 此命令创Z一个用户samQ?<br> 其中-d?m选项用来为登录名sam产生一个主目录/usr/samQ?usr为默认的用户ȝ录所在的父目录)?/p> <p><br> ?Q?/p> <p>  <br> # useradd -s /bin/sh -g group –G adm,root gem</p> <p><br> 此命令新Z一个用户gemQ该用户的登录Shell?bin/shQ它属于group用户l,同时又属于adm和root用户l,其中group用户l是其主l?<br> q里可能新徏l:#groupadd group及groupadd adm  <br> <br> 增加用户账号是?etc/passwd文g中ؓ新用户增加一条记录,同时更新其他pȝ文g?etc/shadow, /etc/group{?/p> <p>  Linux提供了集成的pȝ理工具userconfQ它可以用来对用戯̎可行统一理?/p> <p><br> 3、删除帐?/p> <p>  如果一个用L账号不再使用Q可以从pȝ中删除。删除用戯̎号就是要?etc/passwd{系l文件中的该用户记录删除Q必要时q删除用Lȝ录。删除一个已有的用户账号使用userdel命oQ其格式如下Q?/p> <p>  <br> userdel 选项 用户?/p> <p><br> 常用的选项?rQ它的作用是把用Lȝ录一起删除?/p> <p>  例如Q?/p> <p>  <br> # userdel sam</p> <p><br> 此命令删除用户sam在系l文件中Q主要是/etc/passwd, /etc/shadow, /etc/group{)的记录,同时删除用户的主目录?/p> <p><br> 4、修改帐?/p> <p>  修改用户账号是Ҏ实际情况更改用户的有兛_性,如用户号、主目录、用L、登录Shell{?/p> <p>  修改已有用户的信息用usermod命oQ其格式如下Q?/p> <p>  <br> usermod 选项 用户?/p> <p><br> 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o{,q些选项的意义与useradd命o中的选项一P可以为用h定新的资源倹{另外,有些pȝ可以使用如下选项Q?/p> <p>  <br> -l 新用户名</p> <p><br> q个选项指定一个新的̎P卛_原来的用户名改ؓ新的用户名?/p> <p>  例如Q?/p> <p>  <br> # usermod -s /bin/ksh -d /home/z –g developer sam</p> <p><br> 此命令将用户sam的登录Shell修改为kshQ主目录改ؓ/home/zQ用L改ؓdeveloper?/p> <p><br> 5、用户口令的理</p> <p>  用户理的一w要内Ҏ用户口o的管理。用戯̎号刚创徏时没有口令,但是被系l锁定,无法使用Q必Mؓ其指定口令后才可以用,即是指定空口o?/p> <p>  指定和修改用户口令的Shell命o是passwd。超U用户可以ؓ自己和其他用h定口令,普通用户只能用它修改自q口o。命令的格式为:</p> <p>  <br> passwd 选项 用户?/p> <p><br> 可用的选项Q?/p> <p>  -l 锁定口oQ即用账号?/p> <p>  -u 口o解锁?/p> <p>  -d 使̎h口o?/p> <p>  -f 用户下次d时修改口令?/p> <p>  如果默认用户名,则修改当前用L口o?/p> <p><br> 例如Q假讑ֽ前用hsamQ则下面的命令修改该用户自己的口令:</p> <p>  $ passwd</p> <p>  Old password:******</p> <p>  New password:*******</p> <p>  Re-enter new password:*******</p> <p><br> 如果是超U用P可以用下列Ş式指定Q何用L口oQ?/p> <p>  # passwd sam</p> <p>  New password:*******</p> <p>  Re-enter new password:*******</p> <p><br> 普通用户修改自q口oӞpasswd命o会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一_则将q个口o指定l用P而超U用户ؓ用户指定口oӞ׃需要知道原口o?</p> <p>  Zpȝ安全赯Q用户应该选择比较复杂的口令,例如最好?位长的口令,口o中包含有大写、小写字母和数字Qƈ且应该与姓名、生日等不相同?/p> <p>  为用h定空口oӞ执行下列形式的命令:</p> <p>  <br> # passwd -d sam</p> <p><br> 此命令将用户sam的口令删除,q样用户sam下一ơ登录时Q系l就不再询问口o?/p> <p>  passwd命oq可以用-l(lock)选项锁定某一用户Q其不能登录,例如Q?/p> <p>  <br> # passwd -l sam</p> <p> </p> <p> wingger 回复于:2004-11-04 13:03:40</p> <p>二、Linuxpȝ用户l的理</p> <p>  每个用户都有一个用LQ系l可以对一个用L中的所有用戯行集中管理。不同Linux pȝ对用L的规定有所不同Q如Linux下的用户属于与它同名的用LQ这个用L在创建用h同时创徏? <br> 用户l的理涉及用户l的d、删除和修改。组的增加、删除和修改实际上就是对/etc/group文g的更新?/p> <p>1、增加一个新的用L使用groupadd命o。其格式如下Q?<br> <br> groupadd 选项 用户l?/p> <p>  可以使用的选项有: <br> -g GID 指定新用L的组标识PGIDQ?/p> <p>  -o 一般与-g选项同时使用Q表C新用户l的GID可以与系l已有用L的GID相同?/p> <p>  ?Q?<br> <br> # groupadd group1</p> <p>  此命令向pȝ中增加了一个新lgroup1Q新l的l标识号是在当前已有的最大组标识L基础上加1?/p> <p>  ?Q?<br> <br> #groupadd -g 101 group2</p> <p>  此命令向pȝ中增加了一个新lgroup2Q同时指定新l的l标识号?01?/p> <p>2、如果要删除一个已有的用户l,使用groupdel命oQ其格式如下Q?<br> <br> groupdel 用户l?/p> <p>  例如Q?<br> <br> #groupdel group1</p> <p>  此命令从pȝ中删除组group1?/p> <p>3、修改用L的属性用groupmod命o。其语法如下Q?<br> <br> groupmod 选项 用户l?/p> <p>  常用的选项有: <br> -g GID 为用L指定新的l标识号?/p> <p>  -o ?g选项同时使用Q用L的新GID可以与系l已有用L的GID相同?/p> <p>  -n新用L 用L的名字改为新名字</p> <p><br> ?Q?<br> <br> # groupmod -g 102 group2</p> <p>  此命令将lgroup2的组标识号修改ؓ102?/p> <p>  ?Q?<br> <br> # groupmod –g 10000 -n group3 group2</p> <p>  此命令将lgroup2的标识号改ؓ10000Q组名修改ؓgroup3?/p> <p>4、如果一个用户同时属于多个用LQ那么用户可以在用户l之间切换,以便h其他用户l的权限。用户可以在d后,使用命onewgrp切换到其他用LQ这个命令的参数是目的用户l。例如: <br> <br> $ newgrp root</p> <p>  q条命o当前用户切换到root用户l,前提条g是root用户l确实是该用Lȝ或附加组。类g用户账号的管理,用户l的理也可以通过集成的系l管理工h完成?/p> <p> wingger 回复于:2004-11-04 13:21:16</p> <p>三、与用户账号有关的系l文?/p> <p>  完成用户理的工作有许多U方法,但是每一U方法实际上都是Ҏ关的pȝ文gq行修改。与用户和用L相关的信息都存放在一些系l文件中Q这些文件包?etc/passwd, /etc/shadow, /etc/group{。下面分别介l这些文件的内容?<br> <br> 1?etc/passwd文g是用L理工作涉及的最重要的一个文件。Linuxpȝ中的每个用户都在/etc/passwd文g中有一个对应的记录行,它记录了q个用户的一些基本属性。这个文件对所有用户都是可ȝ。它的内容类g面的例子Q?/p> <p>  Q?cat /etc/passwd</p> <p> </p> <p>  root:x:0:0:Superuser:/:</p> <p>  daemon:x:1:1:System daemons:/etc:</p> <p>  bin:x:2:2:Owner of system commands:/bin:</p> <p>  sys:x:3:3:Owner of system files:/usr/sys:</p> <p>  adm:x:4:4:System accounting:/usr/adm:</p> <p>  uucp:x:5:5:UUCP administrator:/usr/lib/uucp:</p> <p>  auth:x:7:21:Authentication administrator:/tcb/files/auth:</p> <p>  cron:x:9:16:Cron daemon:/usr/spool/cron:</p> <p>  listen:x:37:4:Network daemon:/usr/net/nls:</p> <p>  lp:x:71:18:Printer administrator:/usr/spool/lp:</p> <p>  sam:x:200:50:Sam san:/usr/sam:/bin/sh</p> <p><br> 从上面的例子我们可以看到Q?etc/passwd中一行记录对应着一个用P每行记录又被冒号(:)分隔?个字D,其格式和具体含义如下Q?/p> <p>  <br> 用户?口o:用户标识?l标识号:注释性描q?ȝ?dShell</p> <p><br> 1Q?#8220;用户?#8221;是代表用戯̎L字符丌Ӏ通常长度不超q?个字W,q且由大写字母?或数字组成。登录名中不能有冒号(:)Q因为冒号在q里是分隔符。ؓ了兼容v见,d名中最好不要包含点字符(.)Qƈ且不使用q字W?-)和加?+)打头?/p> <p>  2Q?#8220;口o”一些系l中Q存攄加密后的用户口o字。。虽然这个字D存攄只是用户口o的加密串Q不是明文,但是׃/etc/passwd? 件对所有用户都可读Q所以这仍是一个安全隐患。因此,现在许多Linux pȝQ如SVR4Q都使用了shadow技术,把真正的加密后的用户口o字存攑ֈ/etc/shadow文g中,而在/etc/passwd文g的口令字 D中只存放一个特D的字符Q例?#8220;x”或?#8220;*”?/p> <p>  3Q?#8220;用户标识?#8221;是一个整敎ͼpȝ内部用它来标识用戗一般情况下它与用户名是一一对应的。如果几个用户名对应的用h识号是一LQ系l内部将把它们视为同一个用P但是它们可以有不同的口o、不同的ȝ录以及不同的dShell{?/p> <p>  通常用户标识L取D围是0?5 535?是超U用户root的标识号Q??9ql保留,作ؓ理账号Q普通用L标识号从100开始。在Linuxpȝ中,q个界限?00?/p> <p>  4Q?#8220;l标识号”字段记录的是用户所属的用户l。它对应着/etc/group文g中的一条记录?/p> <p>  5)“注释性描q?#8221;字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址{,q个字段q没有什么实际的用途。在不同的Linux pȝ中,q个字段的格式ƈ没有l一。在许多Linuxpȝ中,q个字段存放的是一DQ意的注释性描q文字,用做finger命o的输出?/p> <p>  6)“ȝ?#8221;Q也是用户的v始工作目录,它是用户在登录到pȝ之后所处的目录。在大多数系l中Q各用户的主目录都被l织在同一个特定的目录 下,而用户主目录的名U就是该用户的登录名。各用户对自qȝ录有诅R写、执行(搜烦Q权限,其他用户Ҏ目录的访问权限则Ҏ具体情况讄?/p> <p>  7)用户d后,要启动一个进E,负责用L操作传给内核Q这个进E是用户d到系l后q行的命令解释器或某个特定的E序Q即Shell? Shell是用户与Linuxpȝ之间的接口。Linux的Shell有许多种Q每U都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell){。系l管理员可以Ҏpȝ情况和用户习惯ؓ用户指定某个Shell。如果不指定ShellQ那么系l用sh为默认的dShellQ即q? 个字D늚gؓ/bin/sh?/p> <p>  用户的登录Shell也可以指定ؓ某个特定的程序(此程序不是一个命令解释器Q。利用这一特点Q我们可以限制用户只能运行指定的应用E序Q在该应用程序运行结束后Q用户就自动退Zpȝ。有些Linux pȝ要求只有那些在系l中登记了的E序才能出现在这个字D中?/p> <p><br> 8)pȝ中有一cȝLZ用户Qpsuedo usersQ,q些用户?etc/passwd文g中也占有一条记录,但是不能dQ因为它们的dShell为空。它们的存在主要是方便系l管理,满相应的系l进E对文g属主的要求。常见的伪用户如下所C?/p> <p>? ? ?nbsp;        ?nbsp;    ?/p> <p> bin                        拥有可执行的用户命o文g</p> <p> sys                       拥有pȝ文g</p> <p> adm                     拥有帐户文g</p> <p> uucp                    UUCP使用</p> <p> lp                         lp或lpd子系l?/p> <p> nobody                 NFS使用</p> <p> 拥有帐户文g <br> <br> 除了上面列出的伪用户外,q有许多标准的伪用户Q例如:audit, cron, mail, usenet{,它们也都各自为相关的q程和文件所需要?/p> <p>  ׃/etc/passwd文g是所有用户都可读的,如果用户的密码太单或规律比较明显的话Q一台普通的计算机就能够很容易地它破解Q因? 对安全性要求较高的Linuxpȝ都把加密后的口o字分d来,单独存放在一个文件中Q这个文件是/etc/shadow文g。只有超U用h拥有该文? L限,q就保证了用户密码的安全性?/p> <p><br> 2?etc/shadow中的记录行与/etc/passwd中的一一对应Q它由pwconv命oҎ/etc/passwd中的数据自动产生。它的文件格式与/etc/passwdcMQ由若干个字D늻成,字段之间?#8220;:”隔开。这些字D|Q?/p> <p>  <br> d?加密口o:最后一ơ修Ҏ?最时间间?最大时间间?警告旉:不活动时?失效旉:标志</p> <p><br> 1Q?#8220;d?#8221;是与/etc/passwd文g中的d名相一致的用户账号 <br> 2Q?#8220;口o”字段存放的是加密后的用户口o字,长度?3个字W。如果ؓI,则对应用h有口令,d时不需要口令;如果含有不属于集?{ ./0-9A-Za-z }中的字符Q则对应的用户不能登录?<br> 3Q?#8220;最后一ơ修Ҏ?#8221;表示的是从某个时刻vQ到用户最后一ơ修改口令时的天数。时间v点对不同的系l可能不一栗例如在SCO Linux 中,q个旉L?970q??日?<br> 4Q?#8220;最时间间?#8221;指的是两ơ修改口令之间所需的最天数?<br> 5Q?#8220;最大时间间?#8221;指的是口令保持有效的最大天数?<br> 6Q?#8220;警告旉”字段表示的是从系l开始警告用户到用户密码正式失效之间的天数?<br> 7Q?#8220;不活动时?#8221;表示的是用户没有dzd但̎号仍能保持有效的最大天数?<br> 8Q?#8220;失效旉”字段l出的是一个绝对的天数Q如果用了q个字段Q那么就l出相应账号的生存期。期满后Q该账号׃再是一个合法的账号Q也׃能再用来d了?/p> <p>  下面?etc/shadow的一个例子:</p> <p>  <br> Q?cat /etc/shadow</p> <p> </p> <p>  root:Dnakfw28zf38w:8764:0:168:7:::</p> <p>  daemon:*::0:0::::</p> <p>  bin:*::0:0::::</p> <p>  sys:*::0:0::::</p> <p>  adm:*::0:0::::</p> <p>  uucp:*::0:0::::</p> <p>  nuucp:*::0:0::::</p> <p>  auth:*::0:0::::</p> <p>  cron:*::0:0::::</p> <p>  listen:*::0:0::::</p> <p>  lp:*::0:0::::</p> <p>  sam:EkdiSECLWPdSa:9740:0:0::::</p> <p> </p> <p>3、用L的所有信息都存放?etc/group文g中?/p> <p>用户分l是Linux pȝ中对用户q行理及控制访问权限的一U手Dc每个用户都属于某个用户l;一个组中可以有多个用户Q一个用户也可以属于不同的组。当一个用户同时是多个 l中的成员时Q在/etc/passwd文g中记录的是用h属的ȝQ也是d时所属的默认l,而其他组UCؓ附加l。用戯讉K属于附加l的文gӞ 必须首先使用newgrp命o使自己成为所要访问的l中的成员。用L的所有信息都存放?etc/group文g中。此文g的格式也cM?etc /passwd文gQ由冒号(:)隔开若干个字D,q些字段有:</p> <p>  <br> l名:口o:l标识号:l内用户列表</p> <p><br> 1Q?#8220;l名”是用L的名Uͼ由字母或数字构成。与/etc/passwd中的d名一Pl名不应重复?<br> 2Q?#8220;口o”字段存放的是用户l加密后的口令字。一般Linux pȝ的用L都没有口令,卌个字D一般ؓI,或者是*?<br> 3Q?#8220;l标识号”与用h识号cMQ也是一个整敎ͼ被系l内部用来标识组?<br> 4Q?#8220;l内用户列表”是属于这个组的所有用L列表/b]Q不同用户之间用逗号(,)分隔。这个用L可能是用LȝQ也可能是附加组?/p> <p>  /etc/group文g的一个例子如下:</p> <p>  # cat /etc/group</p> <p>  root::0:root</p> <p>  bin::2:root,bin</p> <p>  sys::3:root,uucp</p> <p>  adm::4:root,adm</p> <p>  daemon::5:root,daemon</p> <p>  lp::7:root,lp</p> <p>  users::20:root,sam</p> <p><br> wingger 回复于:2004-11-04 13:31:28</p> <p>四、添加量用户?/p> <p>  d和删除用户对每位Linuxpȝ理员都是轻而易丄事,比较手的是如果要添加几十个、上百个甚至上千个用hQ我们不太可能还使用 useradd一个一个地dQ必然要找一U简便的创徏大量用户的方法。Linuxpȝ提供了创建大量用L工具Q可以让您立卛_建大量用PҎ如下Q? <br> <br> Q?Q先~辑一个文本用hӞ每一列按?etc/passwd密码文g的格式书写,要注意每个用L用户名、UID、宿ȝ录都不可以相同,其中密码栏可以留做空白或输入x受一个范例文件user.txt内容如下Q?/p> <p>  user001::600:100:user:/home/user001:/bin/bash</p> <p>  user002::601:100:user:/home/user002:/bin/bash</p> <p>  user003::602:100:user:/home/user003:/bin/bash</p> <p>  user004::603:100:user:/home/user004:/bin/bash</p> <p>  user005::604:100:user:/home/user005:/bin/bash</p> <p>  user006::605:100:user:/home/user006:/bin/bash</p> <p><br> Q?Q以rootw䆾执行命o/usr/sbin/newusersQ从刚创建的用户文guser.txt中导入数据,创徏用户Q?/p> <p>  <br> # newusers < user.txt</p> <p><br> 然后可以执行命ovipw或vi /etc/passwd?etc/passwd文g是否已经出现q些用户的数据,q且用户的宿ȝ录是否已l创建?/p> <p>  Q?Q执行命?usr/sbin/pwunconvQ将/etc/shadow产生的shadow密码解码Q然后回写到/etc /passwd中,q将/etc/shadow的shadow密码栏删掉。这是ؓ了方便下一步的密码转换工作Q即先取消shadow password功能?/p> <p>  <br> # pwunconv</p> <p><br> Q?Q编辑每个用L密码对照文gQ范例文件passwd.txt内容如下Q?/p> <p>  user001:密码</p> <p>  user002:密码</p> <p>  user003:密码</p> <p>  user004:密码</p> <p>  user005:密码</p> <p>  user006:密码</p> <p><br> Q?Q以rootw䆾执行命o/usr/sbin/chpasswdQ创建用户密码,chpasswd会将l过/usr/bin/passwd命o~码q的密码写入/etc/passwd的密码栏?/p> <p>  <br> # chpasswd < passwd.txt</p> <p><br> Q?Q确定密码经~码写入/etc/passwd的密码栏后,执行命o/usr/sbin/pwconv密码编码ؓshadow passwordQƈ结果写?etc/shadow?/p> <p>  <br> # pwconv</p> <p><br> q样完成了大量用户的创ZQ之后您可以?home下检查这些用户宿ȝ录的权限讄是否都正,q登录验证用户密码是否正?/p> <p> wingger 回复于:2004-11-04 13:39:12</p> <p>五、赋予普通用LD权?/p> <p>  在Linuxpȝ中,理员往往不止一人,若每位管理员都用rootw䆾q行理工作Q根本无法弄清楚谁该做什么。所以最好的方式是:理员创Z些普通用P分配一部分pȝ理工作l他们?<br> <br> 我们不可以用su让他们直接变成rootQ因些用户都必须知道root的密码,q种Ҏ很不安全Q而且也不W合我们的分工需求。一般的做法是利 用权限的讄Q依工作性质分类Q让Ҏw䆾的用h为同一个工作组Qƈ讄工作l权限。例如:要wwwadmq位用户负责理|站数据Q一般Apache Web Server的进Ehttpd的所有者是wwwQ您可以讄用户wwwadm与www为同一工作l,q设|Apache默认存放|页目录/usr /local/httpd/htdocs的工作组权限为可诅R可写、可执行Q这样属于此工作l的每位用户可以进行网늚理了?/p> <p>  但这q不是最好的解决办法Q例如管理员x予一个普通用户关机的权限Q这时用上q的办法׃是很理想。这时您也许会想Q我只让q个用户可以? rootw䆾执行shutdown命op了。完全没错,可惜在通常的Linuxpȝ中无法实现这一功能Q不q已l有了工具可以实现这L功能—? sudo?/p> <p>  sudo通过l护一个特权到用户名映的数据库将Ҏ分配l不同的用户Q这些特权可由数据库中所列的一些不同的命o来识别。ؓ了获得某一Ҏ ,有资格的用户只需单地在命令行输入sudo与命令名之后Q按照提C再ơ输入口令(用户自己的口令,不是root用户口oQ。例如,sudo允许普? 用户格式化磁盘,但是却没有赋予其他的root用户Ҏ?/p> <p>1、sudo工具由文?etc/sudoersq行配置Q该文g包含所有可以访问sudo工具的用户列表ƈ定义了他们的Ҏ。一个典型的/etc/sudoers条目如下Q?/p> <p>  <br> liming ALL=(ALL) ALL</p> <p><br> q个条目使得用户liming作ؓ用户讉K所有应用程序,如用户liming需要作U用戯行命令,他只需单地在命令前加上前缀sudo。因此,要以root用户的n份执行命令formatQliming可以输入如下命oQ?/p> <p>  <br> # sudo /usr/sbin/useradd sam</p> <p><br> 注意Q命令要写绝对\径,/usr/sbin默认不在普通用L搜烦路径中,或者加入此路径QPATH=$PATH:/usr/sbin;export PATH。另外,不同pȝ命o的\径不相同,可以使用命o“whereis 命o?#8221;来查扑օ路径?/p> <p>  q时会显CZ面的输出l果Q?/p> <p>  We trust you have received the usual lecture from the local System</p> <p>  Administrator. It usually boils down to these two things:</p> <p>  #1) Respect the privacy of others.</p> <p>  #2) Think before you type.</p> <p>  Password:</p> <p><br> 如果liming正确地输入了口oQ命令useradd会以root用户w䆾执行?/p> <p>  注意Q配|文?etc/sudoers必须使用命o Visudo来编辑?/p> <p>  只要把相应的用户名、主机名和许可的命o列表以标准的格式加入到文?etc/sudoersQƈ保存可以生效,再看一个例子?/p> <p>2、例子:理员需要允许gem用户在主机sun上执行reboot和shutdown命oQ在/etc/sudoers中加入:</p> <p>  <br> gem sun=/usr/sbin/rebootQ?usr/sbin/shutdown</p> <p><br> 注意Q命令一定要使用l对路径Q以避免其他目录的同名命令被执行Q从而造成安全隐患?/p> <p>  然后保存退出,gem用户x行reboot命oӞ只要在提C符下运行下列命令:</p> <p>  <br> $ sudo /usr/sbin/reboot</p> <p><br> 输入正确的密码,可以重启服务器了?/p> <p>  如果您想对一l用戯行定义,可以在组名前加上%Q对其进行设|,如:</p> <p>  <br> %cuug ALL=(ALL) ALL</p> <p><br> 3、另外,q可以利用别名来化配|文件。别名类似组的概念,有用户别名、主机别名和命o别名。多个用户可以首先用一个别名来定义Q然后在规定他们可以? 行什么命令的时候用别名就可以了,q个配置Ҏ有用户都生效。主机别名和命o别名也是如此。注意用前先要?etc/sudoers中定 义:User_Alias, Host_Alias, Cmnd_Alias,在其后面加入相应的名Uͼ也以逗号分隔开可以了QD例如下:</p> <p>  Host_Alias SERVER=no1</p> <p>  User_Alias ADMINS=limingQgem</p> <p>  Cmnd_Alias SHUTDOWN=/usr/sbin/haltQ?usr/sbin/shutdownQ?usr/sbin/reboot</p> <p>  ADMINS SERVER=SHUTDOWN</p> <p><br> 4、再看这个例子:</p> <p>  <br> ADMINS ALL=(ALL) NOPASSWD: ALL</p> <p><br> 表示允许ADMINS不用口o执行一切操作,其中“NOPASSWD:”定义了用户执行操作时不需要输入口令?/p> <p>5、sudo命oq可以加上一些参敎ͼ完成一些辅助的功能Q如</p> <p>  <br> $ sudo –l</p> <p><br> 会显C出cMq样的信息:</p> <p>  User liming may run the following commands on this host:</p> <p>  (root) /usr/sbin/reboot</p> <p><br> 说明root允许用户liming执行/usr/sbin/reboot命o。这个参数可以用户查看自己目前可以在sudo中执行哪些命令?/p> <p>6、在命o提示W下键入sudo命o会列出所有参敎ͼ其他一些参数如下:</p> <p>  -V 昄版本~号?/p> <p>  -h 昄sudo命o的用参数?/p> <p>  -v 因ؓsudo在第一ơ执行时或是在N分钟内没有执行(N预设?Q会询问密码。这个参数是重新做一ơ确认,如果过N分钟Q也会问密码?/p> <p>  -k 会使用者在下一ơ执行sudo时询问密码(不论有没有超qN分钟Q?/p> <p>  -b 要执行的命令放在背景执行?/p> <p>  -p prompt 可以更改问密码的提示语,其中%u会替换ؓ使用者的账号名称Q?h会显CZ机名U?/p> <p>  -u username/#uid 不加此参敎ͼ代表要以root的n份执行命令,而加了此参数Q可以以username的n份执行命令(#uidusername的UIDQ?/p> <p>  -s 执行环境变量中的 SHELL 所指定?Shell Q或?/etc/passwd 里所指定?Shell?/p> <p>  -H 环境变量中的HOMEQ宿ȝ录)指定变更w䆾的用者的宿主目录。(如不?u参数是pȝ理者root。)</p> <p><br> 要以pȝ理者n份(或以-u更改为其他hQ执行的命o?/p><img src ="http://www.shnenglu.com/mydriverc/aggbug/98054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mydriverc/" target="_blank">旅?/a> 2009-10-07 23:39 <a href="http://www.shnenglu.com/mydriverc/archive/2009/10/07/98054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在裸讑֤上面安装oracle10ghttp://www.shnenglu.com/mydriverc/archive/2009/10/07/98052.html旅?/dc:creator>旅?/author>Wed, 07 Oct 2009 15:21:00 GMThttp://www.shnenglu.com/mydriverc/archive/2009/10/07/98052.htmlhttp://www.shnenglu.com/mydriverc/comments/98052.htmlhttp://www.shnenglu.com/mydriverc/archive/2009/10/07/98052.html#Feedback0http://www.shnenglu.com/mydriverc/comments/commentRss/98052.htmlhttp://www.shnenglu.com/mydriverc/services/trackbacks/98052.html原文Q?a >http://blog.chinaunix.net/u1/59074/showart_1095667.html

因ؓ是第一ơ在裸设备上面安装数据库Q所以有很多知识点还是没有学CQ经q自q多方琢磨Q深入思考,问题l于解决Q现ȝ安装步骤如下Q?

W一步:创徏裸设备?

按照以下步骤执行Q?

我的实验机器上存在三块硬盘,sdaQsdbQsdc。其中sda只用来安装了操作pȝQ以及应用YӞ另外两块盘准备用来做裸讑֤存储数据?

为sdb划分分区Q这块硬盘用来存放数据库pȝ文gsystemQsysaux{等

[root@pora ~]# fdisk /dev/sdb

 

Command (m for help): p    查看分区情况

 

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         652     5237158+   5  Extended

/dev/sdb5               1          13      104359+  83  Linux    control01

/dev/sdb6              14          26      104391   83  Linux    control02

/dev/sdb7              27          39      104391   83  Linux    control03

/dev/sdb8              40          52      104391   83  Linux    redo01

/dev/sdb9              53          59       56196   83  Linux     redo02

/dev/sdb10             60         182      987966   83  Linux   system

/dev/sdb11            183         305      987966   83  Linux  sysaux

/dev/sdb12            306         428      987966   83  Linux  undotbs1

/dev/sdb13            429         652     1799248+  83  Linux temp

Ҏ盘大小分别划分不同大小的区来作为每个文件的存储Q这里用U色字体标识出来的内容ؓ注释?

具体如何利用fdisk来划分区Q这里就不详l介l了Q可以参考相兌料?

[root@pora ~]# fdisk /dev/sdb

 

Command (m for help): n    创徏分区

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

q里选择 l 创徏逻辑分区

First cylinder (1-261, default 1):   

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-261, default 261): +1000M   创徏1G的分?

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.                                                       保存分区表,同步到硬?

同理使用fdisk 为sdcq块盘划分相应的分区,q块盘主要用来存放业务数据?

创徏完所有分Z后,我们使用如下命o来查看:

[root@pora ~]# fdisk -l

 

Disk /dev/sda: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1        1177     9454221   83  Linux

/dev/sda2            1178        1304     1020127+  82  Linux swap

 

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         652     5237158+   5  Extended

/dev/sdb5               1          13      104359+  83  Linux

/dev/sdb6              14          26      104391   83  Linux

/dev/sdb7              27          39      104391   83  Linux

/dev/sdb8              40          52      104391   83  Linux

/dev/sdb9              53          59       56196   83  Linux

/dev/sdb10             60         182      987966   83  Linux

/dev/sdb11            183         305      987966   83  Linux

/dev/sdb12            306         428      987966   83  Linux

/dev/sdb13            429         652     1799248+  83  Linux

 

Disk /dev/sdc: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1         652     5237158+   5  Extended

/dev/sdc5               1         123      987934+  83  Linux

/dev/sdc6             124         246      987966   83  Linux

/dev/sdc7             247         369      987966   83  Linux

/dev/sdc8             370         492      987966   83  Linux

/dev/sdc9             493         620     1028128+  83  Linux

/dev/sdc10            621         652      257008+  83  Linux

W二步:讑֤建立映射关系

#vi /etc/sysconfig/rawdevices    q个文g用来在启动的时候加载裸讑֤

内容如下Q?

/dev/raw/raw1 /dev/sdb5

/dev/raw/raw2 /dev/sdb6

/dev/raw/raw3 /dev/sdb7

/dev/raw/raw4 /dev/sdb8

/dev/raw/raw5 /dev/sdb9

/dev/raw/raw6 /dev/sdb10

/dev/raw/raw7 /dev/sdb11

/dev/raw/raw8 /dev/sdb12

/dev/raw/raw9 /dev/sdc5

/dev/raw/raw10 /dev/sdc6

/dev/raw/raw11 /dev/sdc7

/dev/raw/raw12 /dev/sdc8

/dev/raw/raw13 /dev/sdc9

/dev/raw/raw14 /dev/sdc10

建立链接关系

ln -s /dev/raw/raw1 /oracle/oradata/orcl/control01

ln -s /dev/raw/raw2 /oracle/oradata/orcl/control02

ln -s /dev/raw/raw3 /oracle/oradata/orcl/control03

ln -s /dev/raw/raw4 /oracle/oradata/orcl/redo01

ln -s /dev/raw/raw5 /oracle/oradata/orcl/redo02

ln -s /dev/raw/raw6 /oracle/oradata/orcl/system

ln -s /dev/raw/raw7 /oracle/oradata/orcl/sysaux

ln -s /dev/raw/raw8 /oracle/oradata/orcl/undotbs1

ln -s /dev/raw/raw9 /oracle/oradata/orcl/temp

ln -s /dev/raw/raw10 /oracle/oradata/orcl/users

ln -s /dev/raw/raw11 /oracle/oradata/orcl/data

ln -s /dev/raw/raw12 /oracle/oradata/orcl/spfile

加蝲裸设?

#/sbin/service rawdevices restart

W三步:安装oracle软g

1.创徏用户Q赋予权?

#groupadd dba

#useradd oracle -G dba

#passwd oracle

密码讄? oracle

#mkdir /oracle

#chown oracle:dba /oracle

#chmod -R 755 /oracle

2.配置环境变量

#vi /home/oracle/.bash_profile

内容如下Q?

ORACLE_SID=orcl

ORACLE_BASE=/oracle

ORACLE_HOME=/oracle/ora10g

PATH=$ORACLE_HOME/bin:$PATH:.

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib

 

export ORACLE_SID ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH

以oracle用户dQ执行以下操?

$mkdir /oracle/ora10g

$mkdir /oracle/arch

$su -

#xhost +

扑ֈ安装包所在目录,执行runInstaller

$./runInstaller

按照正常步骤安装oracle软gQ但是不需要创建数据库?

创徏oracle裸设备文?

#vi /home/oracle/dbca.conf

内容如下Q?

spfile = /oracle/oradata/orcl/spfile

system = /oracle/oradata/orcl/system

sysaux = /oracle/oradata/orcl/sysaux

undotbs1= /oracle/oradata/orcl/undotbs1

data =   /oracle/oradata/orcl/data

temp    = /oracle/oradata/orcl/temp

users    = /oracle/oradata/orcl/users

redo1_1   = /oracle/oradata/orcl/redo01

redo1_2   = /oracle/oradata/orcl/redo02

control1= /oracle/oradata/orcl/control01

control2= /oracle/oradata/orcl/control02

control3= /oracle/oradata/orcl/control03

W四步:创徏数据?

$dbca

在选择存储讑֤的时候,我们选择W三Raw Devices,然后选中“specify Raw Devices Mapping File”复选框Q点?#8220;Browse”按钮Q选择上一步我们创建好的裸讑֤文g/home/oracle/dbca.conf,

然后点击“next”,配置相应的参敎ͼ在配|enable archiving的时候,选择归日志的存攄录ؓ/oracle/arch?

后面的步骤不详细列D了,希望大家自己ȝ,一直到创徏数据库完成?

W五步:试数据?[oracle@pora ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 17 14:24:51 2008

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> select status from v$instance;

 

STATUS

------------

OPEN



]]>
һۺϾþ| 99þѹƷ| Ʒ99þþþƷ| ùþþۺ| 99þҹɫƷվ| þþƷAV뽿ɫ | ɫۺϾþĻ| þˬˬAV| wwwԾþþcom| ŷҹͽþþ| þҹҹ³³ƬӰ| þþƷձҰ| ϼþùƷӰԺ| ޹պŷþ| 97þþƷƷ| þþþƷ| ŷպþþƷһ| ɫۺϾþĻ| þþþAVרJN| þùƷ99þþþþ| þ| þóӰԺƷ777| ĻþþƷ| һɫþ88ձȡۺ| þ޹ƷAVϼ| ĻƷѾþ5151| 69Ʒþþþþ޾Ʒ| þ99Ʒþþþþò| þùƷ99| ˳wwwþþ| ˾ھƷþþþ| ŷһþۺ | 97Ʒ˾þô߽app| ݺɫ˾þþƷۺ| þ÷׾Ʒ | ˾þóۺӰԺ | ޹˾þһþ | þˬˬAV| ɫۺϺϾþۿ| ҹӰþ| þøݾƷԴվ |