LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 42175|回复: 31

自己在做的RHCE笔记,从RHCE标准实验和上课资料里整理。

[复制链接]
发表于 2009-3-13 11:40:28 | 显示全部楼层 |阅读模式
3/16 考虑把Word文档到最后放上来。在论坛里看还是不很方便。

每天上来看看也是我写这个笔记的动力。昨天今天写033 部分,还是比较匆忙,事情也比较多。
争取本周把初稿交出来。然后一点点再修改。

本文可以随意转载,但是大家发现里面有问题的话请马上告诉我,好修改,我自己也在准备RHCE的考试。

*********************************************************************



RH233
一、安装YUM ,可以不用考虑rpm包依赖关系。
1、本地源安装方式
2、FTP式安装源 ( YUM服务器安装见附1)
二、安装NFS Samba
安装NFS
yum install nfs
vi /etc/exportfs
exportfs -rv
       

安装samba服务
rpm -ivh samba-common-3.0.10-1.4E.9.i386.rpm
rpm -ivh samba-3.0.10-1.4E.9.i386.rpm
需要先建立一个linux用户
useradd tom
passwd tom
输入tom的密码,这里设置为tompda。
如果让这个用户不能登陆系统但可以使用smb:usermod -s /sbin/nologin tom
或者在添加到时候: useradd -s /sbin/nologin tom
关联samba和linux用户
smbpasswd –a tom
按提示输入samba用户tom的密码
       
定义samba访问目录
        1、如果开放用户的家目录提供访问,需要设定SELinux
setsebool -P samba enable home_dirs on
        2、如果添加新的目录提供访问,需要设定目录的权限
                例:将 /test 目录提供访问
                        chcon -R -t samba_share_t /test  ; -R 选项是递归,
                                                                                -t  选项 set type TYPE in the target security context

/etc/samba/samba.conf文件的一下常用设置
  writable      指定共享的路径是否可以写        writable = yes
  browseable   指定共享的路径是否可以浏览(默认允许)
  available          指定共享资源是否可以用
  public                  指定是否可以允许guest帐号访问
  
  hosts allow = 127. 192.168.12. 192.168.13. ; 允许127.0.0.0/8 192.168.12/24 192.168.13/24网段访问
  host deny = 220.110.2.0 ; 禁止220.110.2.0/24 网段访问

启动服务
/etc/init.d/smb start
       

三、安装VSFTP
#yum install vsftp
#getsebool -a |grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off
#setsebool -P ftp_home_dir on  ;修改ftp_home_dir布林值 -P选项是永久设置
;这个选项是SELinux ,默认是off,系统用户默认不能通过ftp登陆。

配置文件 /etc/vsftp/vsftp.conf  中常用的一些选项
  默认情况匿名用户不让上传文件但是可以下载
  mkdir /var/ftp/incoming
  chown root.ftp incoming
  chmod 730 incoming
  ls -ld  incoming
  修改配置文件中: anon_upload_enable = YES 和 anonymous_enable = YES
  重启vsftp服务


四、安装Apache
        yum install httpd   ; 实际安装的是apr  postgresql-libs  apr-util  httpd  这四个RPM包
                                            httpd-manual包
    使用chkconfig 来启动服务
        启动http服务使用缺省的配置 service httpd start
然后用ie看http://你的服务器地址。应该能看到 apache羽毛标志。


建立基于域名的虚拟主机
        (一)、在DNS中添加以下域名
                        cat.55jd.com                192.168.0.160
                        dog.55jd.com                192.168.0.160
                        pig.55jd.com                192.168.0.160
        (二)、在 /etc/httpd/conf/httpd.conf 文件末尾添加
        NameVirtualHost 192.168.0.160
        <VirtualHost cat.55jd.com>
        DocumentRoot /var/www/virtual/cat
        ServerName cat.55jd.com
        </VirtualHost>

        <VirtualHost dog.55jd.com>
        DocumentRoot /var/www/virtual/dog/
        ServerName dog.55jd.com
        </VirtualHost>
       
        <VirtualHost pig.55jd.com>
        DocumentRoot /var/www/virtual/pig/
        ServerName pig.55jd.com
        </VirtualHost>
        (三) 在相应目录建立index.html文件
        echo " This is cat ! " >> /var/www/virtual/cat/index.html
    echo " This is dog!" >> /var/www/virtual/dog/index.html
    echo " This is pig !  >>/var/www/virtual/pig/index.html
        (四) 重启服务 /etc/init.d/httpd restart
        ***备注****  利用webmin建立域名型虚拟目录不成功,比如建立两个虚拟目录,只会指向第一个虚拟的。目前还不知道问题在哪里。

使用CGI

五、安装sendmail
        ( 一 )  安装软件包
                        yum install sendmail
                        yum install sendmail-cf
                        yum install m4
        ( 二 )  配置MTA收取邮件
                        修改配置文件/etc/mail/sendmail.mc
                        dnl DAEMON_OPTIONS ('Port=smtp,Addr=127.0.0.1,Name=MTA') 修改成
                           DAEMON_OPTIONS ('Port=smtp,Addr=0.0.0.1,Name=MTA')
                        修改完后重新生成/etc/mail/sendmail.cf 文件
                        m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
            启动sendmail
                        service sendmail start
                        修改启动级别
                        chkconfig sendmail on
                        调试sendmail
                        sendmail -d0
        如果返回主机名称为localhost,需要配置/etc/hosts和/etc/sysconfig/network中HOSTNAME定义
        ( 三 ) 登陆本地,给本域用户发邮件,看是否能成功
                        telnet localhost 25  ;这里如果localhost写本机IP,登陆不了
                        Trying 127.0.0.1...
                        Connected to localhost.localdomain (127.0.0.1).
                        Escape character is '^]'.               ; 出现问题的时候可以按Ctrl + ] 键退出
                        220 zero.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 13 Mar 2009 00:21:33 +0800
                        ehlo  localhost ; 握手测试
                        250-zero.com Hello zero.com [127.0.0.1], pleased to meet you
                        250-ENHANCEDSTATUSCODES
                        250-PIPELINING
                        250-8BITMIME
                        250-SIZE
                        250-DSN
                        250-ETRN
                        250-DELIVERBY
                        250 HELP
                        mail from : root @zero.com  ; 设定来源地址,如果设定来源地址后没有下面的250 OK,                                                                ; 说明配置文件中dnl DAEMON_OPTIONS的dnl 没有删除。
                                                                        ; 还有一种情况是zero.com这个域名在DNS中没有,在DNS                                                                ; 服务器中添加此域名。
                        250 OK
                        rcpt to : tom @zero.com  ;设定邮件接收地址
                        data                                         ;开始写邮件
                        354 End data with <CR><LF>.<CR><LF>    ;以 "." 单独一行作为结束
                        This is a mail from root  to tom .
                        .                                                                           ;以 "." 单独一行作为结束
                        250 OK ;
                        quit
        ( 四 )  切换到tom 用户查看邮件是否收到,发现这个还是有点延迟的,不知道是怎么回事,大概                20秒多才收到邮件。可以用mail 命令查看

   (五)  实现pop和imap服务
                A 、 安装dovecot 和 cyrus-imapd ,并启动相应服务,这里用yum装,包依赖关系比较复杂
                B 、 用mutt -f imap://tom@zero.com 文本图像界面给本域其他用户发送邮件测试
               
               

六、安装Squid
七、安装NTP
八、安全   
       
        (一) tcp_wrappers
           配置文件:  /etc/hosts.allow    /etc/hosts.deny
                   格    式:  service:   客户端主机       [: action ]
                例一、 允许所有人使用sshd服务,并且对该访问进行日志记录
                        sshd:ALL spawn /bin/echo 'date' %c %d >> /var/log/tcp_wrapper
        例二、允许192.168.0.0/24网段访问FTP,拒绝192.168.0.1这台主机
                                /etc/hosts.allow
                                vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.100
                                /etc/hosts.deny
                                vsftpd:ALL

这个笔记中引用了RHCE的实验翻译,同时有上课的一些资料。
我陆续把我整理的内容写出来,也是督促自己。
 楼主| 发表于 2009-3-13 11:41:25 | 显示全部楼层
附一、YUM服务器安装
一、安装VSFTP
二、拷贝RPM安装源到/var/ftp/pub/
三、安装createrepo包
四、创建createrepo文件
五、编辑客户端vi /etc/yum.repos.d/rhel-debuginfo.repo文件
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=ftp://192.168.0.254/pub/Server/  ;YUM服务器段rpm包仓库文件地址
                enabled=1                                                  ; YUM仓库地址
                gpgcheck=0                                                  ; 是否启用签名检查
                gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ;签名文件地址
六、客户端使用YUM之前,最好运行yum clean all清楚以前的记录,否则容易出现可以看到yum list ,但是提示安装不上的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 11:42:27 | 显示全部楼层
五、安装DNS服务
yum install bind        ;使用YUM安装DNS,会默认把chroot功能安装上。初学时容易混淆,可以手 ;动安装bind的RPM包。
手动安装:
1、mount -o loop /dev/cdrom /mnt  ;挂载安装光盘
2、rpm -ivh /mnt/Server/bind-9.3.3-10.el5.i386.rpm
以下环境是没有安装chroot功能下的DNS配置
实现DNS功能需要建立四个文件,RHEL5的DNS目录下默认没有这几个文件,但是有参考文件在/usr/share/doc/bind-9.3.3/sample/
named.ca       ; DNS根文件
named.conf     ; DNS配置文件,参考文件很复杂,这里还是自己写一个简单的
55jd.com.hosts    ;  正向解析文件
192.168.0.rev   ;  反向解析文件

配置named.ca,可拷贝/usr/share/doc/bind-9.3.3/sample/var/named/中named.root到/var/named/named.ca

配置/etc/named.conf     ; 正向解析配置文件,即实现域名到IP的对应

options {
directory “/var/named”;
        };
controls{
inet 127.0.0.1 allow { 127.0.0.1;} keys {”rndckey”;};
        };

zone “.” IN {
type hint; file “named.ca”;
};

zone “55jd.com” IN {
type master; file “55jd.com.hosts”;
};

zone “0.168.192.in-addr.arpa” IN {
type master; file “192.168.0.rev”;
};
include “/etc/rndc.key”;


建立55jd.com.hosts 可参考/usr/share/doc/bind-9.3.3/sample/var/named/ localdomain.zone
$ttl 38400           ; 缺省的以秒计的生存期间,对所在该域中的记录有效
55jd.com.       IN      SOA     zero.com. root.55jd.com. (
                        1236849785
                        10800
                        3600
                        604800
                        38400 )
55jd.com.       IN      NS     192.168.0.160
160.55jd.com.   IN      A       192.168.0.160
25.55jd.com.    IN      A       192.168.0.25
2.55jd.com.     IN      A       192.168.0.2
www1                  IN         CNAME           www.55jd.com.
www2                  IN        CNAME           www.55jd.com
mail.55jd.mta.  IN      MX      10 192.168.0.25

再建立192.168.0.arpa可参考/usr/share/doc/bind-9.3.3/sample/var/named/localhost.zone
$ttl 38400
0.168.192.in-addr.arpa. IN      SOA     zero.com. root.55jd.com. (
                        1236851564
                        10800
                        3600
                        604800
                        38400 )
0.168.192.in-addr.arpa. IN      NS      zero.com.
2.0.168.192.in-addr.arpa.       IN      PTR     2.55jd.com.
25.0.168.192.in-addr.arpa.      IN      PTR     25.55jd.com.


之后重启named服务,host 2.55jd.com 测试dns服务
如果出错,可以查看日志: tail  -f  /var/log/messages

十、公钥加密体系结构
        ( 一 ) SSH 的安装
                yum install openssl
                yum install openssh
    ( 二 ) SSH 配置文件 /etc/ssh/sshd_config
                        #Port 22 #ssh预设使用22这个port
                        #Protocol 1,2#选择的SSH的协议版本                                    
                        #ListenAddress.0.0.0.0“监听的主机网网卡
                        #LoginGrace'lime 2m #连接超时设置
                        permitRootLogin yes是否允许root.登陆
                        passwordAuthentication yes#密码验证
                        #PermitEmptyPasswo,rds no#是否允许以空的密码登陆

                ssh 服务支持tcp_wrappers ,
                实例一:允许192.168.0.0/24网段访问,拒绝192.168.0.1主机和其他网段访问
                /etc/hosts.allow
                sshd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.1
                /etc/hosts.deny
                sshd:ALL
        ( 三 ) Apache的SSL设置
                当网站中搭建了SSL的apache站点后,当客户要访问你的网站的时候,web服务器就会让客户端下载它的证书,同时,在客户和服务器之间就建立了一个安全的通道。这个证书,你自己可以生成,也可以向权威的机构申请
        2下面我们把整个的安装过程说一下
        首先要让你的网站支持加密,就必须先要安装mod_ssl这个包
        #rpm -ivh mod_ssl  
        或者 yum install

        当安装了这个包以后就可以配置它的配置文件
        /etc/httpd/conf.d/ssl.conf,搭建支持加密的网站了

        因为搭建好后,默认的证书是在安装包的时候自己产生的,所以我们要创建
        匹配自己网站名的证书,当然,最好是向CA申请这个证书’
  
        下面是证书生成的步骤:

        1:保证自己进入下面的目录
        [root@server cents]# pwd
        /etc/pki/tls/cents
        2:创建私钥:
        [root.server certs]# make server.key
        umask 77 ; \
        /usr/bin/openssl genrsa -des3 1024 > server.key
        Generating RSA private key, 1024 bit long modulus
        ............++++++
        ......++++++
        e is 65537 (0x10001)
        Enter pass phrase;输入密码
        Verifying - Enter pass phrase:再次输入密码
       
        3:重写私钥,清除密码,保证httpd启动时不必输入密码
          #openssl rsa -in server.key  -out server.key
        4自己给自己创建个CA
        #make server.crt

        最后,需要调整/etc/httpd/conf.d/ssl.conf正确引用我们创建的证书。然后启动服务。
        [root@server conf.d]#cat ssl.conf
        ………..
        SSLCertificateFile /etc/pki/tls/certs/server.crt
        SSLCertificateKeyFile /etc/pki/tls/certs/server. key



十一、  Squid的基本配置
这里使用192.168.0.254 作为Squid**服务器
          ( 一 ) 安装 Squid
                yum install squid
          ( 二 )         配置  /etc/squid/squid.conf
                http_port 3128  ; 设置**服务器的端口
               
        
                   一禁止IP地址为192.168.16.200的客户机上网
            Acl badclientip src 192.168.16.200
                 http_access deny badclientip
                 二禁止子网192.168.1.0的所有客户机上网
                Acl badclientnet src 192.168.1.0/24
                  http access deny badclientnet
                三禁止用户访问IP地址为210.21.116.68的网站
                  Acl badsrcip dst 210.21.118.68
                  http_access deny badsrcip
                  四禁止用户访问域名为www.l63.com的网站
                  Acl baddomain dstdomain www.163.com
                  http access deny baddomain
                  五禁止用户访问域名含有163.com的网站
                Acl badurl url_regex一i 163.com
                http_access deny badurl
                六禁止用户访问含有sex关键字的url
                Acl badur12 url regex一i sex
                http_access deny badur12
                七禁止192.168.2.0子网内的所有客户机在周一到周五的九点到18点上网
                Acl clientnetl sre 192.168.2.0/24
                Acl worktime time MTWHF 9:00-18:00
                http access deny clientnetl worktime
                八禁止客户机下载*.mp3 *.zip类型的文件
                Acl badfile urlpath regex一i\,mp3\zip$
                httl二七access deny badfile
                九禁止QQ通过squid**上网
                Acl qq method CONNECT“tencent.com,,
                http_access deny qq
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-14 12:56:27 | 显示全部楼层
SElinux 是 RHCE考试5考试中必须打开的,总结了一些考试中可能遇到的   

一、        Vsftp
                getsebool - a |grep ftp
                ftp_home_dir --> off                ;默认不允许系统用户登录家目录,也就是不让登录 ftp
                setsebllo -P ftp_home_dir on    ; -P 永久修改该布林值
               
二、        samba
                getsebool -a |grep samba
                samba_enable_home_dirs --> off ;默认不允许系统用户登录家目录,也就是不让登录samba
                setsebool -P samba_enable_home_dir on ; -P 永久修改该布林值
        对于samba,如果新建一个目录,然后提供samba访问服务,需要将该目录的属性修改
                 chcon -R -t samba_share_t /path  ;/path是指你新建立的提供samba服务的目录 -R 是递归
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-15 22:01:31 | 显示全部楼层
3/15 今天把RH033部分,就是版主翻译的那个实验回顾了一次,笔记还没有写好。明天传上来。
刚才上来一看,wow,帖子收到版主青睐,太荣幸了。更要抓紧把笔记写出来。
这个楼回头就用RH033来换。
/etc/passwd        密码文件
        root:        x:                        0        :        0        :        root                :/root        :/bin/bash  
        用户名  密码不显示                UID           GID                                                家目录
        bin:x:1:1:bin:/bin:/sbin/nologin
       
/etc/shadow


文件权限,这个内容很重要
                        r        w        x
        修改文件权限         chmod  [-R]  权限  文件名   
       
        值                        表示的意义
             4                 表示文件或者目录的读权限
             2                      表示文件或者目录的写权限
             1                表示文件或者目录的执行权限
       
建立链接
        --硬链接
                        ln 源文件        新建链接名   
                        硬链接文件完全等同于原文件,原文件名和连接文件名都指向相同的物理地址。不可以跨文件系统,也                不可        以建立目录的硬链接。文件在磁盘中只有一个拷贝,节省硬盘空间
                        ls –il            可以查看文件的属性,包括inod值
       
        --软链接
                        ln -s 源文件        新建链接名
                        软链接文件相当于为原文件建立了一个快捷方式,可以跨文件系统,也可以为目录建立。软链接和硬链                接不同,软链接有自己的inode,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的                        路径名。类似windows下的快捷方式。

改变文件所属用户
        chown username filename
改变文件所属用户组
        chgrp username filename
文件名
        隐藏文件以 . 开头,查看用ls -a ,删除用rm -- .filename


目录权限
        目录也是文件的一种,下面列出一个实验,来验证目录权限的作用

                cd                ll                touch(1)                touch(2)                        rm
r--                       
r-x
rw-
-w-
-wx
--x
rwx

得出结论

目录权限
目录的读权限位意味着可以列出其中的内容。写权限位意味着可以在该目录中创建文件,如果不希望其他用户在你的目录中创建文件,可以取消相应的写权限位。执行权限位则意味着搜索和访问该目录。如下图所示:
____________________________________________________________________
|           r          |          w              |            x            |
-----------------------------------------------------------------------------------------------------------------------
| 可列出目录中的文件  | 可在目录中删除或建立文件  |     可搜索或进入目录     |
------------------------------------------------------------------------------------------------------------------------
如果把同组用户或其他用户针对某一目录的权限设置为- - x,那么他们将无法列出该目录中的文件。如果该目录中有一个执行位置位的脚本或程序,只要用户知道它的路径和文件名,仍然可以执行它。用户不能够进入该目录并不妨碍他执行该目录中的文件。



强制位与冒险位  ××××××××××很重要
        强制位(setuid 和setgid)
        冒险位(sticky)另外有些地方是叫粘滞位
强制位
suid 意味着如果某个用户对属于自己的程序设置了这种权限,那么其他用户在执行这程序时也会具有其文件拥有者相应权限。于是,如果超级用户( root )的某一程序设置了这样的权限,那么其他普通用户在执行它的期间也同样具有超级用户的权限。同样的原则也适用于sguid,执
行相应程序的用户将具有该文件所属用户组的权限。
强制位对目录的作用
        默认情况下,用户建立的文件属于用户当前所在的组,但是当目录上设置了GID之后,任何人在该目录建立的文件,都会属于目录所属的组。

冒险位对目录的作用
        默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件,但是当目录设置了冒险位(粘滞位)后,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。/tmp就是个例子。

设置强制位与冒险位
用户可以用chmod指令来为文件设置强制位与冒险位。
–        set uid:chmod u+s 文件名
–        set gid:chmod g+s 文件名
–        sticky:chmod o+t 文件名
强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定。
–        4(set uid)
–        2(set gid)
–        1(sticky)


设置SUID/GUID

命令                           结果                                            含义
chmod 4755            -rwsr-xr-x                 suid、文件属主具有读、写和执行的权限,所有其他用户具有读和执行的权限
chmod 6711            -rws--s--x                 suid、sgid、文件属主具有读、写和执行的权限,所有其他用户具有执行的权限
chmod 4511            -rwS--x—x               suid、文件属主具有读、写的权限,所有其他用户具有执行的权限
上面的表中有具有这样权限的文件:rwS --x -- x,其中S为大写。它表示相应的执行权限位并未被设置,这是一种没有什么用处的suid设置可以忽略它的存在。
注意,chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但 chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。

SUID/GUID/Sticy相应的作用还有写更详细些

umask
每个用户建立文件时,此文件都会有默认权限。
默认权限的值由环境中的umask值来确定
用户可以自主改动umask值,并在改动后建立的文件上得到体现。
一般用户的默认umak值为002,系统用户的默认umask值为022
修改umask值在/etc/profile文件中设置
在shell下直接输入umask,显示的是当前umask值。umask 022,则表示把umask值改为022,只在此次登录中生效。



输出与重定向
ls -l >listfile   文件原有内容将清空
ls -l >>listfile 将输出追加到文件末尾
将错误信息重定向到一个文件中
        比如 find / -type s 2>/error.txt
     或者 find / -type s 2>>/dev/null  ;将错误发送到设备黑洞

文件的查找
        1、可执行文件查找
                        #which ls
                        alias ls='ls --color=tty'
                      /bin/ls
        2、                #whereis ls
                        ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
                        #whereis fstab
                        fstab: /etc/fstab /usr/share/man/man5/fstab.5.gz
        3、slocate ,通过先将系统目录建立一个数据库,然后快速查找
        4、find                 /usr/share        -name        filename
                                路径                         参数        表达式
            find的常用参数如下:
                        -user:        文件所有者
                        -group:        文件所有组
                        -name:        文件名
                        -perm:        文件权限
                        -size:        文件大小
                        -type:        文件类型,对应参数 c  b  l  f  d
                find 的表达式使用通配符时需要 " " 标识
                        find - name " *.html "

        wc
        wc用来统计一个文件的行数、词数、字数并送到标准输出。也可以用-l(行数)、-w(词数)、-c(字数)来指定输        出内容。


        sort
        sort用来按各种需要重新排列文本,一般运用在一个管道之后。例如:
        [kevinz@stationXX kevinz] $ ls  -a | grep bash | sort
        .bash_history
        .bash_logout
        .bash_profile
        .bashrc
        [kevinz@stationXX kevinz] $ ls  -a | grep bash | sort -r
        .bashrc
        .bash_profile
        .bash_logout
        .bash_history
        默认情况下sort按照字母顺序排列文本。
        -n      按照数字排序
        -r           反向排序
        -u      将重复的行去除   ;可以配合wc -l 查找文件中不同的行有多少个

        diff
        diff用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。
        <表示是前一个文件的内容 ,>表示后一个文件的内容

        cut
        cut可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示,例如:
        [root@stationXX root] $ cut –f1 –d: /etc/shadow
        表示以:为分隔符,显示/etc/shadow的第一列

        文件压缩备份
        tar
        tar cvf backup.tar *.txt                ;将*.txt文件备份到backup.tar
        tar xvf backup.tar -C /backup        ;将backup.tar文件解压到/backup
       

VI编辑器部分要点

在提示符或者说正常模式中
dd 删除当前整行
3dd 删除3行
Ctrl+W 删除光标开始到单词末尾


撤消以前的操作,请输入∶u (小写的u)
撤消在一行中所做的改动,请输入∶U (大写的U)撤消以前的
撤消命令,恢复以前的操作结果,请输入∶CTRL-r


1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行号代表的行。

2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。

3. 如果光标当前位置是括号(、)、[、]、{、},按 % 可以将光标移动到配对的括号上。

4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc

关于RPM包管理:
rpm –qil  查某个包包含的内容  比如 rpm -qil bind
033部分的内容比较少,主要是把一些命令在使用中熟练,kissingwolf翻译中有句话引用一下
不要强行记忆。记住一点∶在使用中学习

以上是3/15日整理笔记。
发现kisswolf的实验翻译和RHCE 5的教材顺序有不同,不过没关系。按照一个都不少的原则来整理。

虚拟控制台及用户身份切换
在系统中有12个虚拟控制台,前6个可供用作本地登录
用户可以用ctrl +alt +F3来切换。在VM虚拟机6.5中,默认切换方式是长按Ctrl+Alt+Fx(Fx为F1到F6),因为Ctrl+Alt是虚拟机的默认切换到Windows系统。如果修改VM默认热键,可以在Edit>references>Hot Keys

用su可以用来切换用户身份
        su - 可以从普通用户切换到root

df磁盘的使用率
df -h        按照 1M=1024kb计算
df -H 按照 1M=1000kb计算



Linux 根目录文件

drwxr-xr-x          2 root root   4096 Mar  6   02:55 bin                        存储常用用户指令
drwxr-xr-x          4 root root   1024 Mar  6   01:17 boot                        存储核心、模块映像等启动用文件
drwxr-xr-x         12 root root  3920 Mar 15   22:31 dev                        存储设备文件
drwxr-xr-x         97 root root  12288 Mar 15 22:31 etc                        存储系统、服务的配置目录与文件
drwxr-xr-x  6 root root   1024 Mar 14   22:38 home                        存放个人主目录
drwxr-xr-x         14 root root  4096 Mar  6  02:55 lib                        存放库文件,诸如核心模块、驱动
drwx------          2 root root  16384 Mar  6  01:13 lost+found                存储fsck用的孤儿文件,存放非正常关机的碎片文件
drwxr-xr-x          2 root root  4096 Mar 12  10:47 media                       
drwxr-xr-x          2 root root     0 Mar 15  22:31 misc
drwxr-xr-x  2 root root  4096 Oct 11   2006 mnt                                系统加载文件系统时用的常用挂载点
drwxr-xr-x  2 root root     0 Mar 15   22:31 net
drwxr-xr-x  2 root root  4096 Oct 11    2006 opt                                第三方工具使用的安装目录
dr-xr-xr-x 72 root root     0 Mar 15    22:31 proc                        虚拟文件系统,包含系统讯息等资料
drwxr-x--- 20 root root  4096 Mar 15   00:52 root                                root用户的主目录
drwxr-xr-x  2 root root 12288 Mar 10   08:43 sbin                        存储系统管理用指令
drwxr-xr-x  4 root root     0 Mar 15  22:31 selinux
drwxr-xr-x  2 root root  4096 Oct 11  2006 srv
drwxr-xr-x 11 root root     0 Mar 15  22:31 sys
drwsrwsrwt  3 root root  4096 Mar 15  22:31 tmp                        临时文件的暂存点
drwxr-xr-x 14 root root  4096 Mar  6  01:16 usr                                存放与用户直接相关的文件与目录
drwxr-xr-x 23 root root  4096 Mar  8  09:35 var                                存储在系统运行中可能会更改的数据




Shell

        1、显示当前系统语言echo $LANG
        2、修改当前系统显示语言为英语 LANG=en
       
调用历史指令
        !! 重复执行上一条指令
        !$  指代上条指令的后部分
                比如先运行 rpm -ivh  /mnt/Server/bind-9.3.3-10.el5.i386.rpm
                        再运行 rpm -qlp !$ 就相当于rpm -qlp  /mnt/Server/bind-9.3.3-10.el5.i386.rpm

alias 别名
        在shell下键入alias可以查询当前alias列表
       

命令行表达式
双引号可以对引号内特殊字符转义,例如:
[kevinz@stationxx kevinz]$ echo “hello, $HOSTNAME”
hello,stationxx.example.com
单引号不对引号内特殊字符转义,例如:
[kevinz@stationxx kevinz]$ echo ‘hello, $HOSTNAME’
hello, $HOSTNAME


Ctrl + d:输入已结束。在shell下相当于一个exit
Ctrl + c:键盘中断请求。
Ctrl +s & Ctrl + q:暂停/恢复屏幕输出
Ctrl + L:清屏,相当于clear。
Tab:自动补完命令行与文件名
–        Tab键双击可以列出所有可能匹配的选择

        Ctrl+a   光标移到行首
        Ctrl+e   光标移到行尾
        Esc+f   光标移到下一个单词的开始处
        Esc+b  光标移到前一个或当前单词的开始处
        Ctrl+k   从光标所在处删除到行结尾
        Ctrl+u   删除整行

        Ctrl+z 将一个正在运行的前台进程暂停,并丢入后台
       
jobs:列出系统当前的后台进程
fg:将后台进程拉回前台
bg:激活后台暂停的进程

/proc 是系统运行的镜像
        echo 1 > /proc/sys/net/ipv4/ip_forward  打开IP转发功能


系统日志   /var/log/ 目录
        常用的系统日志
                /var/log/dmesg                                ;核心
                /var/log/messages                        ;系统报错日志
                /var/log/maillog                        ;邮件系统日志
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 00:13:27 | 显示全部楼层
RH133 部分 03/17初稿

一、按照以下分区要求新安装一个系统,如果使用VMware虚拟机安装,请在设定磁盘大小的时候设成80G (只是设置成80G,不会在磁盘上真实需要80G空间)。

        /boot 100m
        swap 512M
       
        建两个4G的RAID分区,然后将两个RAID分区合并生成一个RAID 0 模式ext3 格式的 / 分区
       
        创建一个vol 0 的逻辑卷组,大小为8192M,然后设定以下逻辑卷
        :
                Name                  Size                  Filesystem          Mount Point
                lv.home          512MB                Ext3                        /home
                Iv.srv                 2000MB         Ext3                 /usr
                lv.tmp                256MB                Ext3                        /tmp
文件系统
        一、创建和加载文件系统
                1、使用fdisk -l /dev/sda 查看分区尺寸信息

Disk /dev/sda: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device                 Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1057     8385930   8e  Linux LVM
/dev/sda3            1058        1579     4192965   fd  Linux raid autodetect
/dev/sda4            1580       10443    71200080    5  Extended
/dev/sda5            1580        2101     4192933+  fd  Linux raid autodetect
/dev/sda6            2102        2166      522081   82  Linux swap / Solaris               

使用fdisk新增一个512M的逻辑分区(使用w命令将改动写入磁盘)。
这个新分区的设备名是/dev/sda7

/dev/sda7            2167        2229      506016   83  Linux

3. 重启以确定改动后的分区表被读入,或者可以用命令:partprobe
4. 使用mke2fs,在新建的分区上创建一个新的ext2文件系统。创建时使用2k的块,每4k一个inode的设置。可能需要查看mke2fs的man page
        # mke2fs /dev/sda7  ;如果创建ext3文件系统,使用 mke2fs -j /dev/sda7

5. 创建目录/data,作为该文件系统的加载点
6. 使用mount命令把新文件系统加载到/data。把/etc/passwd复制到/data,检查确认复制成功
7. Umount /data
8. 使用e2label为新分区指定卷标:
e2label /dev/hdax /data x是新创建分区的序号
9. 在/etc/fstab文件中为加载/data加入以下行:
LABEL=/data /data ext3 defaults 1 2
或者
/dev/sda7 /data ext2 defaults 1 2
以上两行的实际效果相同。但是,如果更换了硬盘的总线或者是更改了主从的顺序,在fstab中使用卷标仍然可以定位这个设备
10. 加载新的分区
mount /data
11. 复制文件或使用touch 创建文件


步骤二:把ext2转换为ext3
1. 键入sync。这个命令把磁盘缓存信息写入磁盘。通常这个命令是定期执行的,但是以下步骤可能会先占自动同步。
2. 使用reset键重启动,或者使用电源开关关闭再打开(正常情况下不要这样)
3. 如果出现“Repair filesystem”的提示,尝试使用e2fsck /dev/sdx 修复文件系统
4. 成功启动后,通过创建journaling inode日志把ext2文件系统转换为ext3。因为ext3 的数据完整性和文件系统完整性大大增强了,所以可以 把自动预加载(pre-mount)基于时间的定期文件系统检查。
tune2fs –j –c 0 –i 0 /dev/<partition>
5. 检查文件系统的characteristics  tune2fs –l /dev/<partition>
6. 编辑/etc/fstab /data的相关行,把文件系统由etx2更改为ext3
7. 卸载并用ext3重新加载文件系统,确认使用了ext3:
umount /data ; mount /data
df –T /data
8. 观察启动过程。系统检查了哪个文件系统?在/data文件系统,是否看到了“recovering journal”提示信息?当不正常重启时,使用ext3的日志恢复是否比ext2的fsck快了?


步骤三:使用autofs自动加载系统
1. 确认iptables已经关闭
2. 编辑/etc/auto.master文件,去掉对/misc一行的注释
3. 在/etc/auto.misc文件中增加一行,用于加载server1.example.com的/var/ftp/pub目录到本机的目的/server1. 可以参考ftp.example.com行的示例.
4. 重启autofs服务 service autofs restart
5. 测试/misc/server1目录




目标: 定制系统服务的技巧
步骤一: 使用chkconfig禁用服务
1. 使用chkconfig检查系统服务的状态: chkconfig --list
2. 使用以下示例将isdn在所有runlevel关闭
chkconfig --del <service name>
3. 使用--help 查看chkconfig语法信息 chkconfig --help. 关闭runlevel3和runlevel5的kudzu服务
4. 观察 on 和 --add 的差异, off 和 --de 的差异
chkconfig isdn --list
chkconfig isdn on
chkconfig isdn --list
chkconfig isdn off
chkconfig isdn --list
chkconfig isdn --del
chkconfig isdn --list
chkconfig isdn --add
chkconfig isdn --list
5. 使用chkconfig查看系统服务的状态和改变状态




步骤三: 更改默认runlevel
1. 编辑/etc/inittab文件,将默认runlevel从5改为3,如下:
id:3:initdefault:    ;  3是字符界面,5是图形界面,1是关机,6是重启


Lab 4 用户和组管理
目标: 用户和组管理的技巧

步骤一: 创建用户和组
1. 使用useradd命令,为以下用户创建帐号:joshua, alex, dax, bryan, zak, ed, manager. 为每个用户设置一个密码.
useradd joshua
passwd joshua

2. 使用groupadd命令,增加以下组: 并使用 –g 选项设定对应的GID
group gid
sales 10000
hr 10001
web 10002
groupadd sales –g 10000

3. 使用usermod命令把joshua和alex增加到sales组, dax和bryan到hr组, zak和ed到web组. 把manager加入所有组. 使用 –G选项.
        这里需要 usermod -a -G 组 用户名 ; a选项是增加 G是一个用户属于多个组
4. 用各帐户登录,使用id命令确认组成员身份. 还有什么方法可以确认?
        可以查看/etc/group文件   



步骤二: 设置共享文件夹
1. 创建/depts目录,在目录下创建sales, hr, web文件夹
        mkdir –p /depts./{sales,hr,web}
2. 使用chgrp命令设置对应组拥有对应文件夹
        chgrp sales /depts/sales
3. 设置/depts目录的权限为755, 子文件夹的权限为770
4. 设置各部门的子文件夹的sgid, 使得创建的文件所有权为对应的组
        chmod g+s /depts/sales
5. 使用各个帐号登录,并在对应位置创建文件,检查效果.只有manager可以进入所有的目录.也可以使用su -命令,但是要加上-,并且su下一个帐户之前要退出前一个帐户.



ACL列表
ACL可以设置特定用户或者用户组对于一个文件的操作权限.命令有三个: getfacl, setfacl, chacl

ACL部分 论坛里有leonardgu的帖子,写的很好。 还有鸟哥的书第一部分也有关于acl的,讲的比leonardgu简单。



03/17备注:
ACL 部分不是很明白,明天继续重新
回复 支持 反对

使用道具 举报

发表于 2009-3-19 08:27:40 | 显示全部楼层
好东西。赞一下楼主,今年太忙,估计下半年才有空把UCP过了然后再准备RHCE。

脚打后脑勺啊^_^
回复 支持 反对

使用道具 举报

发表于 2009-3-19 09:50:24 | 显示全部楼层
楼主好厉害。

同道 兄弟 学习中 想认识你。不知你的联系方式。留下我的联系方式 qq:63513304
MSN:liu_lujie@126.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-19 20:45:36 | 显示全部楼层
Trube sheeting  

今天被mount处理了一天,中午又睡过头了,差点被逮到迟到。晚上上论坛好好的看了精华帖子,发现我遇到的问题,前辈们早就都处理过来。关于故障排除,参考版主和三轮车夫的帖子,我做个笔记。

3        mount 文件被篡改,或者inittab文件丢失,解决办法是一样子的。
        a)        测试   cp /bin/date /bin/mount   ; 将mount命令用date命令替换
        b)        重启系统,c)        提示挂载失败,d)        有几个FAIED
        e)        重启进入linux rescue 模式修改系统
        f)        参照大坏羊和版主的做法,g)        我这里小小修改一下
        h)        先挂载真实环境,i)        应为虚拟环境无法用lftp
        j)        rpm -Vf --root /mnt/sysimage /bin/mount
S.5….T /bin/mount                ; 三轮车夫的帖子中有错误,k)        我这里显示是这样,l)        在正常系统中没有显示
        m)        rpm -qf --root /mnt/sysimage /bin/mount                ; 查看mount文件属于哪个rpm包
        i.        lftp 192.168.0.190 ;  lfp 登录我的服ii.        务器,iii.        考试时候就是考试的服iv.        务器,v.        上面有rpm包
        vi.        get util-linux-2.13-0.45.el5.i386.rpm        ;下载包含mount文件的rpm包
        vii.        exit                                 ; 退出真实环境,viii.        回到虚拟环境
        ix.        rpm –ivh –force –root /mnt/sysimage  /util-linux-2.13-0.45.el5.i386.rpm  ; 强行安装文件到真实系统路径中
        x.        exit                ;重启系统
               

4         fstab文件出错,fstab文件丢失

                (1)        没有lvm环境
                        进入修复模式
                        a.  fdisk /dev/sda                ; 假设是sda ,也就是硬盘1
                        b.  键入p,查看分区表,下面是我的情况
                               
                               


               
                (2)  
                        有lvm环境                (版主给我指引,参考了帖子 )
                                      原帖:根分区使用lvm或者RAID时,在rescue模式下的mount问题
                        进入修复模式,发现找不到原有系统,需要先把lvm加载
                       
                        #lvm pvdisplay 查看系统中是否有PV
                        #lvm vgdisplay
                        # lvm lvdisplay
                        如果真的有LV , 你需要告诉系统建立相关device-mapper
                        # lvm vgchange -ay
                然后ls /dev  可以看到有VolGroup00 文件夹,里面有LogVol00和LogGroup00文件,默认RHEL5安装的话,前一个是根分区,后一个是swap分区。         
                可以用e2labe /dev/LogVol00 查看卷标名
               
                mkdir  /abc
                mount  /dev/VolGroup00 /abc                ;将根文件挂载到abc目录
                vi /etc/fstab                                                ;编辑fstab文件
                (3)
                (4)
                (5)
                (6)
               

6        grub文件
        q)        grub文件丢失或者出错
        i.        进入linux rescue模式,ii.        chroot进真实环境,iii.        然后修复iv.        文件
        v.       
        r)        grub文件夹丢失
        i.        和上面一部相同ii.       
grub-install /dev/sda                          ; 重安装grub
s)        整个/boot文件夹丢失
i.        需要重新安装  kernel-2.6那个rpm包


7       
8
回复 支持 反对

使用道具 举报

发表于 2009-3-19 21:32:14 | 显示全部楼层
1.关于 rescue 模式下使用硬盘上的LVM卷的问题,看下面的链接
http://www.linuxsir.cn/bbs/thread330870.html

2. mount命令所属的包RHEL4之后改了,用rpm --root /mnt/sysimage -qf /bin/mount 查一下就知道了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表