免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2260 | 回复: 0
打印 上一主题 下一主题

Linux网络操作系统及网站系统管理 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-19 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-16 17:32 |只看该作者 |倒序浏览

http://hh.aust.edu.cn/~xjfang/nos/index.htm

http://pofem.51.net/index.php?op=Default&Date=200503&blogId=1
2.1 文件系统
●文件系统
Linux文件系统控制文件和目录中的信息以何种方式存在磁盘及其他辅助介质上。它
控制每个用户可以访问何种信息及如何访问。因此它是增强Linux系统安全性的最基本
的工具之一。
存储在Linux文件系统中的信息被安排成目录和文件的树形结构。树形结构由在一个总
目录中的目录和子目录构成,总目录被称之为根目录(root)。每一个目录内可以包含
子目录和其他项目,如文件、指向其他文件系统的指针(符号连接)、表示设备的逻
辑名称(如/dev/tty)以及其他的类型(proc等).
/:目录的根
/lib:应用程序使用的动态链接库(相当于windows系统的DLL文件)
/etc:配置文件
/usr:绝大部分的东西都在这里,比如应用程序/usr/bin,/usr/sbin,应用程序的附加文件/usr/lib,应用程序的文档/usr/doc,应用程序的联机手册/usr/man
/usr/local:一般附加软件的安装地点。
/var:保存一些随着系统运行会不断改变的内容,例如各种记帐信息、邮件和打印队列。
/tmp:保存临时文件。
/dev:保存设备文件
/proc:存放虚拟文件,用来显示系统的当前状况,如进程和CPU。
/mnt:文件系统的挂接点(mount point)
/home:默认的非root用户的宿主目录的所在地点。
/boot:内核映像文件、操作系统引导管理程序配置文件。

●使用文件系统:
安装文件系统
mount 开关 系统设备文件名 文件系统挂接点
mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -t msdos /dev/fd0 /mnt/floppy
mount -t vfat /dev/hda5 /mnt/fat32
卸下文件系统
umount 挂接点(OR 系统设备文件名)
例:
umount /mnt/cdrom
●LINUX所支持的其它文件系统(page18)
系统中每一个用户可访问的事物均可以被表示为文件系统中的一个“文件”——
●文件与目录
包括进程和网络连接。每一个文件至少具有一个文件名,一个拥有者,以及访问权限
和其他的属性。
目录
目录是文件系统中的一个专门的条目。一个目录实际上是文件名的列表。文件名可以
由任意字符的字符串组成,但不能包含/和null字符。
每一个目录都包含有. 和 ..两个目录。
●当前目录和路径
绝对路径概念
相对路径概念
查看当前目录
pwd
使用ls命令
ls -a
ls -lF (Total行指出了目录中全部文件所占据的KB数。)
2.2 linux中的用户/文件权限
  • 查看文件具有的属性

ls -l
  • 用户(user)、组(group)和文件属性

由于LINUX系统是一个多用户系统,为确保系统的安全性,LINUX系统[color="#ff0000"]采用用户权限机制对系统进行管理,这种管理主要是通过文件管理机制来实现的。
最左边的属性位:表示文件项的类型(普通文件-,目录d,链接l,字符设备c,块设备b等)
***可执行位仅对于可执行文件有意义。
***LINUX中必须即拥有执行权限也拥有读权限时才能够执行某个script(脚本)程序,所以在下面讲到的编写shell script时,要执行的话必须给该shell script程序加上可执行权限。
  • 使用chmod命令
    chmod [agou] [+-=] [rwxs] filelist
    a:所有用户(all)
    u:文件或目录拥有者(user)
    o:除文件拥有者和所在组以外的其它用户(other)
    g:文件所有者所在组的所有用户(group)
    权限
    r read
    w write
    x execute(or access for directories)
    s set user or group id (suid或sgid)
    +:增加权限
    -:取消权限
    =:赋予给定的权限,取消原有的其它权限(如果原来有的话)
    8进制的文件属性
    根据文件属性位中是否有某一属性,得到八进制数-□□□○○○●●●
    4000 SUID
    2000 SGID
    0400 -r--------
    0200 --w-------
    0100 ---x------
    0040 ----r-----
    0020 -----w----
    0010 ------x---
    0004 -------r--
    0002 --------w-
    0001 ---------x
  • umask命令
    umask功能的接口是在sh,ksh,csh shell程序内的一个内在的命令!
    你所建立的文件默认的文件属性是0666-umask设置的属性值。
    直接输入不带参数的umask命令显示当前的umask之值。
  • 使用目录权限
    Linux将目录的内容存放在普通的文件中
    常用的目录权限
    0755 任何人可以看到目录的内容,但只有拥有者和root才能改变它
    0700 $HOME 用户可以访问自己的主目录的内容,但其他用户则不可。
  • 设备文件
    设备文件是导致Linux流行和灵活的原因之一。
    /dev 目录
    大多数设备文件应不允许普通用户读写.
  • chown 改变文件所有者
    chown [用户]  
  • chgrp 改变文件的属组
    chgrp [组名]  
  • 超级用户root和su

超级用户root不受任何文件存取控制机制约束。每个UNIX/LINUX系统都有个root用户,这个用户执行系统的维护和管理。但有一点要注意,对于系统来说这个名字其实没有意义。系统内核真正关心的是用户的uid(参看/etc/passwd第三列之值)
利用su命令可以在不同用户之间切换。
su 用户名
  • 特殊的文件属性setuid和setgid

LINUX默认的用户保护机制不仅用于控制,也用于设置用户执行的程序,[color="#ff0000"]一个用户所启动的程序通常自动具有了这个用户的权限,也就是这个程序对文件的存取按照用户的权限执行。一般情况下,这使得用户不能绕过文件存取机制来破坏文件系统。
[color="#ff0000"]setuid是一种特殊的文件属性,它使得被设置了setuid位的程序无论被哪个用户启动,都自动具有文件拥有者的权限。(参见P32例子)
setgid与setuid类似,具有setgid的可执行文件运行时自动获得文件对应的组权限。
setuid和setgid文件属性机制给系统安全带来了严重威胁。
chmod u+s
chmod g+s
2.3 SHELL编程和配置程序
  • 系统的启动过程与操作系统的SHELL
    shell与内核的交互。系统启动过程中内核将加载至内存直到系统关机, 在启动过程中,初始化程序init将扫描/etc/inittab,在此文件中将列出可用的终端及其属性,一旦找到活动的终端,getty(mingetty,LINUX)会给出login提示符和口令,确认完成后将启动相应的shell(/etc/passwd文件中用户帐号的SHELL域).
    流程图如下:

    系统的层次关系:

    2. Linux常用shell:
    Bourne Shell(sh,bash), Korn shell(ksh), csh(csh, tcsh)
    3.环境变量
    4.shell脚本的执行
    5.命令行参数
    6.定制用户SHELL
    (宿主目录)$home中的文件.bashrc或.bashprofile(用ls -a命令查看)
    [color="#ff0000"].bash_history
    .bash_logout
    .bash_profile
    .bashrc
    [color="#ff0000"]/etc/profile
    [color="#ff0000"]/etc/bashrc(对Bourne Shell)
    相关文件执行顺序(对Bourne Shell) /etc/profile -> $HOME/.bash_profile->/etc/bashrc ->$HOME/.bashrc
    7.在/etc/skel中建立一些文件,则一个新用户建立之后,这些文件就自动被拷贝到宿主目录。如在/etc/skel建立.bashrc文件,内容如下:
    .bashrc文件内容:
    TERM=vt100; export TERM
    alias lll "ls -la"
    umask 022
    2.4 帐户管理
    1.口令文件
    /etc/passwd
    [color="#ff0000"]user4:[color="#0000ff"]$1$CF4hWgB6$u99SVNGgdmOYO33uNysCw/:502:502:user1:[color="#ff0000"]/home/staff/user1:[color="#0000ff"]/bin/bash
    [color="#0000ff"]如果你想让一个普通用户拥有root权限,则只需将其uid改成0,但最好不要这样做。
    各字段的含义
    注意:由于passwd中存放了对口令明文采用DES(DATA ENCRYPTION STANDARD)和MD(MESSAGE DIGEST)加密后密文,利用高性能计算机及蛮力搜索的方法,完全可能用穷举的方法破解口令明文。
    因此几乎所有的LINUX都使用shadow方式,密文保存在/etc/shadow文件中,而该文件对一般用户是不可读的,只有root用户才能读取。
    $ls /etc/shadow -l
    -rw------- 1 root root 1270 Oct 23 09:29 /etc/shadow
    shadow文件中的一条记录
    $more /etc/shadow
    user1:$1$yJOcELFZ$tkTe0Lz6VTGs9llpvDJRS.:[color="#ff0000"]12325::99999::::
    我们在/etc/passwd文件中只看到一个x,例如在/etc/passwd文件中我们看到的:
    user1:[color="#ff0000"]x:502:502:user1:/home/staff/user1:/bin/bash
    传统上我们可以编辑passwd文件来管理用户信息,这种方式常用来建立一个没有口令的用户(只需将口令区域设置为空),但是要使用下面的命令是passwd和shadow同步
    $pwconv
    修改/etc/passwd文件中一条记录使用户user1登陆时不需口令。
    user1::502:502:user1:/home/staff/user1:/bin/bash
    修改/etc/passwd文件中一条记录可以禁止用户user1登陆。
    user1:[color="#ff0000"]*:502:502:user1:/home/staff/user1:/bin/bash
    还有一种方法(shell区域)可以禁止用户user1登陆。
    user1:[color="#ff0000"]x:502:502:user1:/home/staff/user1:[color="#ff0000"]/bin/false

    user1:[color="#ff0000"]x:502:502:user1:/home/staff/user1:[color="#ff0000"]/bin/true
    相对应对用户组管理的文件是
    /etc/group
    /etc/gshadow

    2.用户和用户组的添加和删除
    useradd [-u uid][-G group,...]
    [-d home] [-s shell] [-c comment] [-m ]
    [-f inactive] [-e expire ] [-p passwd] [-M] [-n] name
    • 相关命令:Modify a user account

    usermod [-u uid [-o]] [-G group,...]
    [-d home [-m]] [-s shell] [-c comment] [-l new_name]
    [-f inactive] [-e expire ] [-p passwd] [-L|-U] name
    -L:用户帐号锁定
    -U:用户帐号解锁
    • 相关用户帐号管理工具:userconf
    • 建立用户帐号的默认设置/etc/login.defs,相关目录和文件/etc/skel
    • 刚刚建立的LINUX用户帐号无法登陆,必须用root身份执行passwd程序为用户设置口令。

    passwd
    • 删除某个帐户

    userdel [-r]
    • 特殊帐户

    系统帐号uid的特点。口令域的特点。nobody帐号。





    前一章
    目录
    后一章
    第四章 系统配置
    4.1 系统启动流程
    [color="#000000"]
    4.2 网络配置
    4.3 内核配置
    4.4 使用硬盘
    4.5 安装和编译应用程序

    4.1 系统启动和关机
        首先是要了解启动脚本(或者叫配置文件吧,unix系统的一切东西都是
    可拆卸的,甚至包括内核)
    系统启动流程:
    系统启动完成如下工作:
    .机器本身所进行的必要的有限的自检
    [color="#ff0000"]若引导管理程序(boot loader)是linux loader(即lilo)
    .该linux引导程序并显示 => lilo:  系统日志文件可以参考系统文档syslogd和配置文件
    /etc/syslog.conf(系统日志记录在/var/log目录中)。
       先来看看第一个配置文件 /etc/lilo.conf :
    boot=/dev/hda            
    (服务器来说,都没有这一项)
    这个文件是可以根据需要修改的,这是个最简单的lilo配置文件,
    它有很多参数可加。修改后要运行 /sbin/lilo 才更新。
    若引导管理程序(boot loader)是grub则文件/etc/grub.conf(实际是/boot/grub/grub.conf)
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,5)
    #          kernel /vmlinuz-version ro root=/dev/hda9
    #          initrd /initrd-version.img
    #boot=/dev/hda      [color="#ff0000"]启动磁盘
    default=0
    timeout=10
    splashimage=(hd0,5)/grub/splash.xpm.gz
    title Red Hat Linux (2.4.7-10)
            root (hd0,5)  [color="#ff0000"]文件系统的硬盘分区中的位置
            kernel /vmlinuz-2.4.7-10 ro root=/dev/hda9内核文件/boot/vmlinuz-2.4.7-10
    位于/dev/hda9分区
            initrd /initrd-2.4.7-10.img   [color="#ff0000"]关于这一行请看manual initrd
    title win2000 server
            rootnoverify (hd0,0)
            chainloader +1
    一、初始化过程
    内核: /boot/vmlinuz-version, 位于/文件系统,kernel执行后运行init, init将会
    创建一些正常操作所需要的子进程.这些操作包括设备主机名,检查相应的
    磁盘并加载文件系统,启动系统日志,配置网络接口,启动网络和邮件服务,
    清除临时分区。
    .配置文件
    linux使用一个非常灵活的init进程(process control initialization),init会直接建立在/etc/inittab中所
    列出的任务, init通用运行级别如下:

    0 shutdown
    1(s) 系统管理方式,所有的文件可以继续访问,但只有超级用户可以从主
         控台访问系统
    2 系统进入正常多用户操作方式,没有共享。
    3 多用户操作方式,但同时开启远程文件共享,启动一些额外的进程以
      允许远程文件共享,加载远程资源,同时向网上公布其远程资源(如nfs)
    4 用户自定义多用户环境
    5 自定义多用户环境
    6 关闭机器。
    不同unix不完全相同
    示列文件/etc/inittab
    #
    # inittab  This file describes how the INIT process should set up
    #          the system in a certain run-level.
    #
    # 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:      [color="#003333"] #(默认级别)
    # System initialization.
    si::sysinit:/etc/rc.d/rc.sysinit [color="#003333"]# :空:没有级别定义,表示所有级别
                                     [color="#003333"]# 所有级别都要执行这个脚本
    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            [color="#006666"]# 执行一次updated守护进程
    # 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"
    # Run gettys in standard runlevels     
    1:2345:respawn:/sbin/mingetty tty1    [color="#3333ff"]#(respawn: 没有process则启动它)
    2:2345:respawn:/sbin/mingetty tty2    [color="#006666"]# 2345级别为多用户级别,
    3:2345:respawn:/sbin/mingetty tty3   [color="#006666"] # [color="#006666"]可有6个虚拟终端
    4:2345:respawn:/sbin/mingetty tty4    # mingetty:产生虚拟控制台
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6
    # Run xdm in runlevel 5
    # xdm is now a separate service
    # Run xdm in runlevel 5
    # xdm is now a separate service
    x:5:respawn:/etc/X11/prefdm -nodaemon
    文件每一行格式如下:
    id:runlevels:action:process
    id:       最长4个字符,唯一标识一项
    runlevel: 为空表示所有级别,默认运行级别通常为2或3
    action:   init所采取的动作。具体参数含义如下:
    process:  指作一daemon,shell script或program.
              这个进程可以执行其他二进制文件或shell script.
    在上面的示例中,系统加电后默认的运行状态为3,不同的运行级别所要执行
    的命令由shell script /etc/rc.d/rc控制,/etc/rc.d/rc根据参数(运行级
    别数)的不同决定执行/etc/rc.d/rc$runlevel.d/S*, 而运行级别1-6时如果
    没有到主控台的mingetty则启动mingetty tty?,而对于用户的热启动请求则
    会生新启动机器(ctrlaltdel).
    归纳:1.系统读入inittab后,执行/etc/rc.d/rc.sysinit,然后是
          /etc/rc.d/rc 3 (/etc/rc.d/rc3.d/S* ),最后是启动虚拟屏幕。  
          2.rcN.d下的脚本的执行都是通过执行/etc/rc.d/rc
          而这些脚本实际执行的是/etc/init.d/下的脚本
          3./etc/rc.d/init.d/*实际存放所有初始化SHELL脚本
          4./etc/rc.d/rc脚本是执行在运行级别0-6实际执行的脚本
          5./etc/rc.d/rc.local #所有其它脚本运行之后执行该SHELL脚本
          6./etc/rc.d/rc.sysinit脚本只在启动时执行一次
    rc script(系统启动脚本程序).

    SYSV: (Solaris)
    /etc/init.d/*
    /etc/rc$runlevel.d/S* 系统启动rc shell script, 执行顺序按文件名
                          数字从小到大,如先执行S10*, 再执行S12*.
    /etc/rc$runlevel.d/K* 系统关机rc shell script,执行顺序与启动文件
                          相反,先执行数字大的。
    Linux Redhat:
    /etc/rc.d/init.d/*                 # 各个级别运行脚本的实际位置
    /etc/rc.d/rc$runlevel.d/S* #启动这个级别时运行,实际对应于/etc/init.d/中的运行脚本(软链接)
    /etc/rc.d/rc$runlevel.d/K* #退出这个级别时运行
    二、管理init文件
        init文件可以手工管理(当然要对运行的服务和脚本很了解),也可以
    通过一些工具来管理。
       1. chkconfig
        # chkconfig  --list                  #列出服务清单
        # chkconfig  [--level 级别 ] 服务名 on  #开启服务
        # chkconfig  [--level 级别 ] 服务名 off #关闭服务
       2.ntsysv
        # ntsysv --level
    三、关机
    关机会依次杀掉所有的进程,同步buffer与disk中的内容,然后umuont所有
    的文件系统,关机时最好看一下当前是否有用户在使用系统。可以使用
    shutdown, init及halt(poweroff,reboot)关闭电源。最好不要使用halt关机,
    因为这样有可能损坏文件系统。
    推荐使用:
    (1) shutdown [-akrhfnc] [-t secs] time [warning message]
                      -a:      use /etc/shutdown.allow
                      -k:      don't really shutdown, only warn.
                      -r:      reboot after shutdown.
                      -h:      halt after shutdown.
                      -f:      do a 'fast' reboot (skip fsck).
                      -F:      Force fsck on reboot.
                      -n:      do not go through "init" but go down real fast.
                      -c:      cancel a running shutdown.
                      -t secs: delay between warning and kill signal.
                      ** the "time" argument is mandatory! (try "now") **
    (2)init 0123456SsQqAaBbCcUu
    (3)/sbin/halt [-n] [-w] [-d] [-f] [-i] [-p]
    -n Don't sync before reboot or halt.
    -w Don't actually reboot or halt but only write the
    wtmp record (in the /var/log/wtmp file).
    -d Don't write the wtmp record. The -n flag implies
    -d.
    -f Force halt or reboot, don't call shutdown(8).
    -i Shut down all network interfaces just before halt
    or reboot.
    -p When halting the system, do a poweroff. This is the
    default when halt is called as poweroff.
    4.2 网络配置
    一、配置网卡(以前是最头疼的事情)
    首先要了解网卡芯片的型号,然后去查HOWTO(http://www.tldp.org/HOWTO/)(
    Ethernet-HOWTO.html
    ) ,看看linux是不是支持,最后进行配置。
    在/etc/下找到文件 conf.modules ,加入
    [color="#0099cc"]alias eth0 网卡驱动程序名 (去掉.o)
    一行。
    网卡驱动程序名,都在/lib/modules/[color="#0099ff"]2.4.18-3/kernel/drivers/net/*.o下。(这些名字往往不是你的网卡的型号) 如:ne2000 ---->ne DLink--->via-rhine inter ---->eepro100
    现在的版本对网卡的支持要好多了,大多情况下在安装时都能找到。
    二、TCP/IP 的启动
    每一块网卡系统会给它一个名字,第一块为eth0 ,第二块为eth1 ...,还有一个设备名叫lo ------look-back ,它总是存在的,代表本机(IP:127.0.0.1) .
    装上网卡后下面就要分配IP、netmask和broadcast,可能用命令ifconfig 来完成。
    # ifconfig 设备名 IP地址 [netmask 掩码 broadcast 广播地址]
    ifconfig eth0 210.45.151.191 netmask 255.255.255.0
    #ifconfig -a
    相应的配置文件/etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=linuxserver
    GATEWAY=210.45.151.254
    gatewaydev=eth0
    相应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=static
    若IP地址是动态分配的即由网络上的DHCP服务器分配IP地址则此处为dynamic,并且以下两行省略
    IPADDR=210.45.151.191
    NETMASK=255.255.255.0
    ONBOOT=yes
    若给同一网卡配置多个IP地址
    ifconfig eth0:0 210.45.151.195 netmask 255.255.255.0 broadcast 210.45.151.255
    相应的配置文件
    /etc/sysconfig/network-scripts/ifcfg-eth0:0
    若想使配置立即生效,可执行network脚本
    #/etc/rc.d/init.d/network restart
    若要停止某个网络接口工作,使用down参数
    #ifconfig eth0 down
    若永远停止,则相应的文件/etc/sysconfig/network-scripts/ifcfg-eth0中
    ONBOOT=no
    三、路由配置(网关配置)
    配置了IP和掩码后,本子网内的机器就可以访问了,但要访问子网外的机器的话,还要配置路由。
    # route [add/del] [-net/-host] [目标地址] [gw] 网关地址 [dev ]
    [color="#006666"]route add -net 210.45.146.0 netmask 255.255.255.0 gw 210.45.144.253
    [color="#006666"]注意:静态路由信息存放于配置文件/etc/sysconfig/static-routes
    #more /etc/sysconfig/static-routes
    any net 210.45.157.0 netmask 255.255.255.0 gw 210.45.151.254
    ……
    [color="#006666"]注意:目标地址是一个网络,要加上netmask,若目标地址是主机,则不加netmask,此处默认的网络接口是eth0,选项[dev ]用于多网卡情况下。

    [color="#006666"]route
    Flags的含义
    [color="#006666"]U (route is up)
    H (target is a host)
    G (use gateway)
    R (reinstate route for dynamic routing)
    D (dynamically installed by daemon or redirect)
    M (modified from routing daemon or redirect)
    ! (reject route)
    * 到目的网络是通过广播
    [color="#330033"]or
    # route [add/del] default gw
    默认路由的配置存放在/etc/sysconfig/network
    #more /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME="linuxserver.mylinux.org"
    GATEWAY=210.45.151.254
    GATEWAYDEV="eth0"
    #ping 210.45.146.254
    经上面的配置后就基本上可以使用网络了,但DNS需要额外配置(以后介绍),如果已你有一台DNS服务器的话,只需要修改[color="#000000"]/etc/resolv.conf 和 /etc/host.conf 就可以使用DNS服务器了。
    [color="#009999"]#resolv.conf DNS客户机配置文件,设置DNS服务器的IP地址及DNS域名

    [color="#009999"]nameserver 210.45.151.191 #域名解析服务器,可有多个
    nameserver 210.45.144.18
    domain mylinux.org #本地domain name
    search mylinux.org #默认的域名后缀,相当于WINDOWS系统的域后缀搜索顺序,可有多个

    [color="#009999"]#host.conf 指定主机名查找方法,通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求(不需修改)。
    order hosts,bind
    multi on #表示可绑定多个IP
    [color="#009999"]hosts实际就是指/etc/hosts文件(windows系统下是/windows/hosts.sam)。
    这是手工配置方法,当然你也可以通过工具来配置
    netconf
    四、inetd/xinetd 服务器(the extended Internet services daemon) inetd超级服务器监听多个TCP/IP端口等待入境的请求。当收到请求时,它
    就会派生一个相应的服务器。通过使用超级服务器,其他服务就可以只在需
    要时才派生,从而节省了系统资源。当连接终止时,派生的服务器也就停止
    运行。
    相关程序: /usr/sbin/inetd 或/usr/sbin/xinetd
    相应服务:
    telnet
    ftp
    pop3
    r* rsh rpc rlogin (建议最好关闭r服务)
    其他服务最好关掉
    RedHat7.0 采用 xinetd 替代inetd
    /etc/services  ----是xinetd.conf相关文件
    基本不用编辑,linux自带的已包含大部分服务, 在此文件中列出了所有可用的网络服务的名字、端口
    号和协议。
    #
    # services This file describes the various services that are
    # available from the TCP/IP subsystem. It should be
    # consulted instead of using the numbers in the ARPA
    # include files, or, worse, just guessing them.
    #
    # Version: @(#)/etc/services 2.00 04/30/93
    #
    # Author: Fred N. van Kempen,
    #
    # 文件格式:服务名称 端口号/协议 服务别名
    tcpmux 1/tcp # rfc-1078
    echo 7/tcp
    echo 7/udp
    discard 9/tcp sink null
    discard 9/udp sink null
    systat 11/tcp users
    daytime 13/tcp
    daytime 13/udp
    netstat 15/tcp
    qotd 17/tcp quote
    chargen 19/tcp ttytst source
    chargen 19/udp ttytst source
    ftp-data 20/tcp
    ftp 21/tcp
    telnet 23/tcp
    smtp 25/tcp mail
    time 37/tcp timserver
    time 37/udp timserver
    rlp 39/udp resource # resource location
    name 42/udp nameserver
    whois 43/tcp nicname # usually to sri-nic
    domain 53/tcp
    domain 53/udp
    mtp 57/tcp # deprecated
    bootps 67/udp # bootp server
    bootpc 68/udp # bootp client
    tftp 69/udp
    gopher 70/tcp # gopher server
    rje 77/tcp
    finger 79/tcp
    http 80/tcp # www is used by some broken
    www 80/tcp # progs, http is more correct
    link 87/tcp ttylink
    kerberos 88/udp kdc # Kerberos authentication--udp
    kerberos 88/tcp kdc # Kerberos authentication--tcp
    supdup 95/tcp # BSD supdupd(8)
    hostnames 101/tcp hostname # usually to sri-nic
    iso-tsap 102/tcp
    x400 103/tcp # ISO Mail
    x400-snd 104/tcp
    csnet-ns 105/tcp
    pop-2 109/tcp # PostOffice V.2
    pop-3 110/tcp # PostOffice V.3
    pop 110/tcp # PostOffice V.3
    sunrpc 111/tcp
    sunrpc 111/tcp portmapper # RPC 4.0 portmapper UDP
    sunrpc 111/udp
    sunrpc 111/udp portmapper # RPC 4.0 portmapper TCP
    auth 113/tcp ident # User Verification
    sftp 115/tcp
    uucp-path 117/tcp
    nntp 119/tcp usenet # Network News Transfer
    ntp 123/tcp # Network Time Protocol
    ntp 123/udp # Network Time Protocol
    netbios-ns 137/tcp nbns
    netbios-ns 137/udp nbns
    netbios-dgm 138/tcp nbdgm
    netbios-dgm 138/udp nbdgm
    netbios-ssn 139/tcp nbssn
    imap 143/tcp # imap network mail protocol
    NeWS 144/tcp news # Window System
    snmp 161/udp
    snmp-trap 162/udp
    exec 512/tcp # BSD rexecd(8)
    biff 512/udp comsat
    login 513/tcp # BSD rlogind(8)
    who 513/udp whod # BSD rwhod(8)
    shell 514/tcp cmd # BSD rshd(8)
    syslog 514/udp # BSD syslogd(8)
    printer 515/tcp spooler # BSD lpd(8)
    talk 517/udp # BSD talkd(8)
    ntalk 518/udp # SunOS talkd(8)
    efs 520/tcp # for LucasFilm
    route 520/udp router routed # 521/udp too
    timed 525/udp timeserver
    tempo 526/tcp newdate
    courier 530/tcp rpc # experimental
    conference 531/tcp chat
    netnews 532/tcp readnews
    netwall 533/udp # -for emergency broadcasts
    uucp 540/tcp uucpd # BSD uucpd(8) UUCP service
    klogin 543/tcp # Kerberos authenticated rlogin
    kshell 544/tcp cmd # and remote shell
    new-rwho 550/udp new-who # experimental
    remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
    rmonitor 560/udp rmonitord # experimental
    monitor 561/udp # experimental
    pcserver 600/tcp # ECD Integrated PC board srvr
    mount 635/udp # NFS Mount Service
    pcnfs 640/udp # PC-NFS DOS Authentication
    bwnfs 650/udp # BW-NFS DOS Authentication
    kerberos-adm 749/tcp # Kerberos 5 admin/changepw
    kerberos-adm 749/udp # Kerberos 5 admin/changepw
    kerberos-sec 750/udp # Kerberos authentication--udp
    kerberos-sec 750/tcp # Kerberos authentication--tcp
    kerberos_master 751/udp # Kerberos authentication
    kerberos_master 751/tcp # Kerberos authentication
    krb5_prop 754/tcp # Kerberos slave propagation
    listen 1025/tcp listener RFS remote_file_sharing
    nterm 1026/tcp remote_login network_terminal
    kpop 1109/tcp # Pop with Kerberos
    ingreslock 1524/tcp
    tnet 1600/tcp # transputer net daemon
    cfinger 2003/tcp # GNU finger
    nfs 2049/udp # NFS File Service
    eklogin 2105/tcp # Kerberos encrypted rlogin
    krb524 4444/tcp # Kerberos 5 to 4 ticket xlator
    irc 6667/tcp # Internet Relay Chat
    dos 7000/tcp msdos
    # End of services.
    linuxconf 98/tcp # added by linuxconf RPM
    /etc/hosts.allow、 /etc/hosts.deny (Linux下,使用了tcpd
    (Tcp Wrappers),参考inetd.conf)

    Internet 网络服务访问控制文件

    /etc/hosts.allow 设置允许使用inetd服务的机器,如:
    [color="#009999"]All:202.118.     即允许所有来自202.118.x.x的请求
    服务器程序     客户地址
    如 in.telnetd  .aust.edu.cn
       in.ftpd     .edu.cn

    地址可以是如下形式:
        .edu.cn   
        210.45.144.
        210.45.144.0/255.255.255.0
    /etc/hosts.deny 设置不允许使用inetd的机器
    [color="#006666"]All:All
    这两个文件的设定顺序请参考man文档:
    man tcpd
    man hosts.allow
    man hosts.deny xinetd说明
    xinetd是用来启动各种必须转换的服务程序,比如telnetd,ipop3d等等.
    xinetd的行为依赖于/etc/xinetd.conf,下面是一个缺省的配置文件:
    #
    # Simple configuration file for xinetd
    #
    # Some defaults, and include /etc/xinetd.d/
    defaults
    {
    instances = 60
    log_type = SYSLOG authpriv
    log_on_success = HOST PID
    log_on_failure = HOST RECORD
    }
    includedir /etc/xinetd.d
    说明:
    defaults段落用于设置各种缺省属性,instances是每个服务最多允许同时
    启动多少个实例,log_type是对客户程序记录的方式,接下来的两行表示成
    功或者失败的话系统中记录哪些信息.
    includedir表示将目录中的所有文件包含在这个文件里面,这也是一般推
    荐的方式,接下来可以看看/etc/xinetd.d里面的文件,一般每个文件代表
    一个服务.
    例如下面是pop3服务的设置,文件名字是ipop3:
    # default: on
    # description: The POP3 service allows remote users to access their mail
    # using an POP3 client such as Netscape Communicator, mutt,
    # or fetchmail.
    service pop3
    {
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/ipop3d
    log_on_success += USERID
    log_on_failure += USERID
    }
    去掉注释行,service行设置下面定义的服务,服务名字来自/etc/service,
    socket_type,wait,user的意义都和inetd.conf的定义一样,server是服务
    器程序的名字,接下来,为记录信息添加用户ID字段.
    only_from允许某个IP范围的客户存取,例如only_from 202.112.0.0/16
    no_access禁止某段IP的用户存取,语法相同.
    五、相关的配置文件
    网络配置文件
    /etc/hosts
    提供一种简便的主机名到IP的转换,TCP/IP只需使用IP地址。主机名的使用
    是为了方便、易用。当使用主机名时,TCP/IP检查/etc/hosts文件的内容
    (未设DNS时), 为相应主机查找其IP地址。
    格式:
    ip_address office_name alias ...
    /etc/networks
    提供IP地址与Internet网络名称的列表。每一行提供一个特定网络的信息。
    主要目的是供route命令维护路由表。
    /etc/protocols
    提供已知的DARPA Internet协议列表,此文件不能修改,因为它给出的是
    DDN 网络信息中心提供的信息。文件的每一行都包含协议名称,协议号和
    协议别名。

    [color="#ff0033"]建议: 在没有完全必要的情况下尽量关闭r*服务(/etc/inetd.conf), 尤其
    是与 NFS一起使用时更要小心;
    相关SHELL脚本:
    /etc/sysconfig/network-scripts/ifup(实际是/sbin/ifup)
    执行该脚本时,它去寻找/etc/sysconfig/network/network-scripts下面一切名为ifcfg-eth0,
    ifcfg-eth1等文件,并切根据它们去启动网络。
    /etc/rc.d/init.d/network脚本
    它通过判断是否存在/etc/sysconfig/network配置文件来决定是否启动网络。而/etc/rc.d/init.d
    /network又调用执行ifup脚本。
    /etc/sysconfig/network-scripts/ifdown(实际是/sbin/ifdown)
    4.3 内核配置
    uname -a查看内核版本信息。
    对系统管理员来说,由于linux内核版本更新较快,如果性能有重大改变或现使用版本有明显的bug时,就需要升级内核。升级内核通常是一件很麻烦的事情,主要在系统内核配置时很麻烦,你必须对你的服务器硬件和需要的服务了解得很情楚,否则升级往往会失败:(
    -----1. 准 备 工 作
    get  linux-2.4.2.tar.gz
    cd /usr/src/         
    进入到目录 /usr/src/
    mv linux linux.oldversion
    cp linux-2.4.2.tar.gz /usr/src/
    将新的内核文件拷贝到刚才的目录
    gzip -cd linux-2.4.2.tar.gz | tar xvf -
    将内核文件解压缩,产生新目录/usr/src/linux
    cd /usr/src/linux    进入目录 /usr/src/linux
    make mrproper   清除任何将引起问题的附加额外的源代码.
    以root 的 身 份 做 以 下 工 作:
    cd /usr/src/linux    进入目录 /usr/src/linux
    make config       开 始 配 置 你 的 内 核.
    or
    make menuconfig
    or
    make xconfig
    ---- 对硬件熟悉, 配置起来会容易些, 不明白的用缺省配置,
         目的是满足自己的要求
    ---- 2. 创 建 内 核
    ---- 在 目 录 /usr/src/linux 下:
    make dep    确保关键文件在正确的位置.(如果出错,要重新make config)
    make clean   确保所有东西均保持最新状态.
    make bzImage  编译内核
                
       新内核bzImage产生在  /usr/src/linux/arch/i386/boot/目录下.

       cp bzImage /boot/vmlinuz-2.4.2   
       将此文件拷贝到 /boot并改成带版本号文件名
       make modules           如果配置内核时选了M,既模块
       make modules_install   需要这两个步骤。
       cp /usr/src/linux/System.map /boot
    ---- 3. 把新内核放入lilo
       vi /etc/lilo.conf   用vi编辑/etc/lilo.conf
       加入:
       image=/boot/vmlinuz-2.4.2
       label=linux-2.4.2      
       root=/dev/hda  
       保存退出.
       lilo     执行lilo命令
    ---- 4.起用新内核
        reboot    重新启动机器
        出现lilo: 时 按Tab 键, 出现 linux_2.4.2 linux
    ----5. 建立新内核的引导软盘
    mkbootdisk --device /dev/fd0 2.4.2
    4.4 使用硬盘
    ----1.安装硬盘 (SCSI或IDE)
         设置SCSI Adapter 或BIOS使linux内核能识别。
    ----2.分区和建立文件系统(格式化)-----fdisk
    #fdisk /dev/sdb (/dev/hdb) ----->分为主分区或扩展分区
    完成后重启系统。
    mkfs -V -t 文件系统类型 -c 分区名
    #mkfs -t ext2 -c /dev/hdb1 ---->建立linux文件系统
    #mkfs -t ext2 -c /dev/hdb2
    #vi /etc/fstab ---->加入新的分区,使系统启动时能自动挂接
    #fstab                                                         fsck
    /dev/hda1      /                       ext2    defaults        1 1
    /dev/hda5      /home        ext2  defaults,usrquota,grpquota   1 2
    /dev/cdrom     /mnt/cdrom              iso9660 noauto,owner,ro 0 0
    /dev/hda7      /usr                    ext2    defaults        1 2
    /dev/fd0       /mnt/floppy             auto    noauto,owner    0 0
    none           /proc                   proc    defaults        0 0
    /dev/hda6      swap                    swap    defaults        0 0
    [color="#ff3333"]/dev/hdb1    /export                ext2   defaults      1 2
    #mount -a ----->挂上


    4.5安装和编译应用程序
    ●RPM程序方式安装(*.rpm)
    1、什么是RPM
    Redhat Package Manager, 由Redhat公司开发的软件包和管理程序。
    RPM设计目的:
    . 方便的升级功能:可对单个软件包进行升级,保留用户原先的配置
    . 强大的查询功能:可以针对整个软件包的数据或是某个特定的文件进行查询,也可以
    轻松地查出某个文件是属于那个软件包或从那来的。
    . 系统校验:不小心删除了某个重要文件,但不知道是那个软件包需要此文件时可以使
    用RPM查询已经安装的软件包中少了那些文件,是否需要重新安装,并且可以检验出
    安装的软件包是否已经被别人修改过。
    . 允许用户能够使用“纯净”的源代码:让用户取得“未经处理过的源代码”,同时
    再加上一份“补丁”程序,用户可以完成程序的编译工作。
    2. RPM的使用
    (1)用RPM安装软件包,最简单的命令如下:
    rpm -ivh rpmfile.i386.rpm
    可能出现如下几种错误信息:
    Package Alrealy Installed! [软件包安装,也可使用--replcepkgs强制替换]
    Conflicting files [可加--replacepkgs, 该软件包含其他软件包安装过
    的文件]
    Unresolved Dependency [可加 --nodeps,但不推荐使用]
    (2)用RPM删除安装软件包
    rpm -e foo [可通过rpm -qa |egrep foo查看是否安装了此软件包]
    错误信息:
    ... is needed by .... [可加--nodeps,但不推荐使用]
    (3)用RPM升级软件
    rpm -Uvh foo-2.0-1.i386.rpm
    会自动删除相应软件包的老版本,如果配置文件同新版本不兼容,则会自动将其保存为
    另一个oldconfig.rpmsave文件.
    (4)查询软件包
    rpm -q foo
    具体可使用如下特定参数
    rpm -qa 查询系统安装的所有软件包
    rpm -qf filename 查询包含该文件的软件包
    rpm -qF 输入为标准输入,如 find /usr/bin |rpm -qF
    rpm -qp 软件包名 查询该软件包
    rpm -qP 同-p参数,但输入为标准输入
    find /cdrom/Redhat/RPMS |rpm -qP
    输出时的格式选择
    -i 显示该软件包的名称、描述、发行、大小、编译日期、安装日期及开发人员等信息
    -l 显示该软件包含的文件
    -s 显示该软件包的当前状态(normal/missing)
    -d 显示软件包中的文档(man,info,README)
    -c 显示该软件包的配置文件,一般这些文件安装后需要用户手工修改
    -v Verbose, 类似ls -l的输出
    (5)用RPM校验软件包
    可校验文件大小、MD5校验码、文件权限、类型及属主等信息。
    rpm -V foo 检查校验该软件包中的文件是否存在
    rpm -Vf /bin/vi 校验软件包中的单个文件
    rpm -Va 校验安装的所有软件包
    rpm -Vp foo-1.0.1.i386.rpm
    比较一个源软件包和已经安装的软件包
    (6)实用技巧
    rpm -Va 可确认系统少了那些文件
    rpm -qf /usr/bin/cdplay 查询该程序属于那个软件包
    rpm -qpi koules-1.2.i386.rpm 查询该软件包的内容
    rpm -qpl koules-1.2.i386.rpm 查询该软件包会在系统中安装那些文件

    ●编译源程序方式安装 (*.tar.gz)
    一般都有下面一些步骤:
    [color="#ff0000"]gzip
    -d:将文件解压缩
    -v:显示压缩比例
    不带option对文件进行压缩
    cd /home/xjfang/aaa
    gzip f1 #将文件f1压缩成f1.gz
    gzip -d f1.gz #将文件f1.gz解压缩,同时删除压缩文件
    [color="#ff0000"]zip  〈被压缩文件或目录〉
    [color="#ff0000"]cd /home/xjfang
    zip exam html
    [color="#ff0000"]unzip
    解压缩*.zip文件(包括windows中的zip文件)
    unzip exam.zip
    [color="#ff0000"]compress  #生成*.Z文件
    [color="#ff0000"]uncompress
    原*.Z文件被自动删除
    [color="#ff0000"]tar  
    -z:归档时压缩和解归档时解压缩
    -c:创建归档文件
    -v:显示正在被归档的文件名
    -x:解归档
    -f :归档后形成的文件名
    cd /home/xjfang
    #tar cvf html.tar html #对html目录进行归档,但不压缩
    #tar czvf html.tar html #对html目录进行归档,且压缩
    tar xvf html.tar #对html.tar解归档
    (或tar xvzf *.tar.gz ) #对html.tar解归档,解压缩
    ./configure
    make
    make install
    ●用patch 升级(打补丁) *.patch
    patch -p0 注意是那两个版本之间的patch


    前一章
    目录
    后一章
    前一章
    目录
    后一章
    第五章 局域网服务器
    5.1 NFS
    5.2 Samba
    5.3 远程调用---r命令
    DHCP(Dynamic Host Configure Protocol,动态主机配置协议)服务用于给子网内的主机动态分配IP地址、域名服务器和网关地址等信息。使用它的目的是两个,一个是节省IP地址,二是避免管理每台客户主机的IP地址、网关、域名设置、域名服务器地址等复杂的问题,而且可以避免手动分配IP地址所造成的IP地址冲突问题,因此可以简化安装配置网络客户机器。
    DHCP服务是以广播的形式向请求的客户主机分配IP地址的,所以不能跨越网关/路由,除非你的网关/路由支持DHCP Relay(DHCP中继) 。
    [color="#0000ff"]配置DHCP服务器
    [color="#0000ff"]1.安装
    [color="#0000ff"]rpm -ivh dhcp-2.0pl5-8.i386.rpm
    [color="#0000ff"]2.配置文件
    • [color="#0000ff"]/etc/dhcpd.conf
    [color="#0000ff"]subnet 210.45.151.0 netmask 255.255.255.0 {
    range 210.45.151.1 210.45.151.252;
    option subnet-mask 255.255.255.0;
    option broadcast-address 210.45.151.255;
    option routers 210.45.151.254;
    option domain-name-servers 210.45.151.191;
    option domain-name "mylinux.org";
    }
    • [color="#0000ff"]IP 租用数据库

    [color="#0000ff"]/var/lib/dhcp/dhcpd.leases文件
    • [color="#0000ff"]用ntsysv或chkconfig使DHCP服务运行在级别3
    • [color="#0000ff"]DHCP服务所对应的可执行文件

    [color="#0000ff"]/usr/sbin/dhcpd
    • [color="#0000ff"]dhcpd命令行参数存放在/etc/sysconfig/dhcp中

    [color="#0000ff"]# Command line options here
    DHCPDARGS=-cf /etc/dhcpd.conf -lf /var/lib/dhcp/dhcpd.leases
    [color="#ff0000"]

    这一章主要介绍如何将Linux配置成为局域网服务器,如文件服务器或打印服务器。
    NFS----主要用于unix系统之间的文件共享服务。
    Samba-----Linux与其它文件系统之间的共享服务,如linux与Windows之间有linux与linux之间的相互访问,可以把linux服务器配置成为局域网中的文件服务器和打印服务器。
    5.1 NFS服务
    NFS是一种用来在Unix系统之间共享文件的一种服务协议,NFS是基于rpc机制的,所以portmap服务一定要打开。要使用NFS服务必需对服务器端和客户端的分别进行安装和设置。
    在RedHat中安装:
    NFS服务器:
    #rpm -ivh nfs-server-version.i386.rpm
    NFS客户软件:
    #rpm -ivh nfs-client-version.i386.rpm
    RedHat6.2 :
    #rpm -ihv nfs-utils-0.1.6-2.i386.rpm
    同时要在服务器端启动portmap、rpc.mountd、rpc.nfsd
    # ps aux|grep portmap
    [color="#009999"]bin 317 0.0 0.0 1208 304 ? S 00:07 0:00 portmap
    root 6950 0.0 0.0 1152 272 pts/1 R 10:23 0:00 grep portmap
    如果没有启动的话,要启动这个服务。
    #ntsysv
    rpc.nfsd 用于处理客户文件系统的请求.
    rpc.mountd 但从一个NFS客户受到一个mount请求, 根据/etc/exports来决定是否提供服务。
    该记录在umount时被删除.
    ●NFS服务器配置
    /etc/exports ----->NFS的配置文件,设置服务器那些目录被共享输出。
    /etc/exports的配置规则: 每一条都有下面的形式:
    directory machine_name(option)
    directory就是本地的一个目录.
    machine_name描述那些及其有权利访问该目录.
    option描述了提供了什么样的服务,或者说客户有什么样的权利.
    machine_name的格式:
    single host: 一个机器名或一个ip地址.
    /tmp friday(ro)
    /tmp 192.168.1.3(ro)
    wildcard:使用了通配符,* 或 ?.
    /tmp *.cs.foo.edu(ro)
    IP 子网: 如: 192.168.1.0/255.255.255.0
    =public: 所有机器都有权利.
    option:
    ro 只读
    rw 读写
    noaccess 无权
    例如:
    有四台机器:192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4
    在192.168.1.1上:
    /etc/exports包含下面一条:
    /home/ftp/pub 192.168.1.0/255.255.255.0(ro)
    在192.168.1.2上:
    showmount -e 192.168.1.1
    /home/ftp/pub ro
    # mount 192.168.1.1:/home/ftp/pub /mnt
    这样在192.168.1.2上就可以自由的访问192.168.1.1的
    /home/ftp/pub下的文件,仿佛它们就存在/mnt下.
    ●NFS客户端配置
    在客户机上可能用showmount -e nfs服务器名检查。
    mount -t nfs NFS服务器输出目录 挂接点

    要启动机器时自动挂接可以在/etc/fstab 中加入语句:
    NFS服务器输出目录 挂接点 nfs

    210.45.144.100:/tmp     /tmp nfs
    这样,客户机的/tmp目录就挂到210.45.144.100:/tmp目录,对210.45.144.100的tmp目录的操作就象在本地机器一样。

    5.2 Samba服务器
    Samba 实际上是一组程序, 它们SMB (Server Messages Block)协议。
    SMB是一套通讯协议,让运行 OS/2,Windows NT,Windows 95,
    Windows for Workgroups的计算机实现文件共享和打印机共享服务。
    这套协议类似于NFS (网络文件系统),在运行 Samba 服务器程序的时候,
    你的 Linux 机器在"网络邻居"中看起来如同一台 Windows 机器。
    Windows 机器的用户可以"登录"到你的Linux服务器上, 当然这要求你
    给予适当的权限。
    5.2.1 配置文件:
    文件         来源
    /etc/smb.conf     samba-2.0.6-9.i386.rpm ->
               /usr/doc/samba-2.0.6/example/smb.conf.default
    /etc/smbusers     samba-2.0.6-9
    /etc/smbpasswd   系统自带,使用smbpasswd更改
    5.2.2 相关工具:
    文件            来源
    /etc/rc.d/init.d/smb    samba-2.0.6-9.i386.rpm
    /usr/bin/smbadduser     samba-2.0.6-9.i386.rpm
    /usr/smbpasswd       samba-2.0.6-9.i386.rpm
    5.3 配置方案
    1./etc/smb.conf
    作用:这是Samba的主配置文件,集中了所有的Samba配置选项。
    实例:
    [global]
    netbios name = smb_server
    #指定本机在网上邻居中的显示名
    workgroup = smbusers
    #指定本机所属的工作组
    hosts allow = 192.168.1. 192.168.2. 127.
    #允许访问本机共享
    printcap name = /etc/printcap
    load printers = yes
    printing = bsd
    guest account = nobody
    log file = /var/log/samba/log.%m
    max log size = 50
    security = user
    encrypt passwords = yes
    smb passwd file = /etc/smbpasswd
    #指定定对用户口令校验的密码文件
    #安全级别为用户级,这样定义是为了让每个98的客户端能自由使用
    它们在Linux服务器上的主目录。
    socket options = TCP_NODELAY
    dns proxy = no
    [homes]
    comment = Home Directories
    browseable = no
    writable = yes
    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = yes
    writable = no
    printable = yes
    [public]
    comment = Public Stuff
    path = /home/Share
    browseable = yes
    guest ok = yes
    public = yes
    writable = yes
    #定义了共享目录,所有的用户对这个目录都有读写权限
    [ thj ]
    comment = Fred's Printer
    valid users = thj
    path = /homes/thj
    printer = thj_printer
    public = no
    writable = no
    printable = yes
    #以上是定义打印机
    2.管理员执行smbadduser tanghj:smithj来创建一个smb用户,
    相应地更改了/etc/smbpasswd 和 /etc/smbusers
    3. 管理员需要执行 chmod 0777 /home/Share,修改/home/Share访问权限。
    5.4 测试及管理方法
    1.管理员可以通过执行/etc/rc.d/init.d/smb restart
    使更改的配置文件生效。
    2.testparm 命令,解析和描述你的 smb.conf 文件的内容,提供了一
    个简易的方法发现配置上的错误。
    5.5 windows客户机和linux Samba服务器间互访
    windows 通过网络邻居和映射驱动器来访问Samba 服务器上的目录.
    #smbclient  //window机器名/共享的目录
    #smbclient  //shg/tmp -U gmwu
    root@linux gmwu]# smbclient //shg/tmp
    added interface ip=210.45.144.110 bcast=210.45.144.255 nmask=255.255.255.0
    Password:
    Domain=[HNITNET] OS=[Unix] Server=[Samba 2.0.7]
    smb: > ls
      .                   D        0  Fri Mar 16 04:02:00 2001
      ..                  D        0  Fri Mar  9 15:42:51 2001
      .font-unix         DH        0  Thu Mar  1 13:59:35 2001
      .X11-unix          DH        0  Fri Mar  2 11:34:00 2001
      .ICE-unix          DH        0  Sat Feb 24 20:29:29 2001
      Hello.java                 147  Thu Mar 15 23:00:41 2001
      HelloWorld.java            147  Thu Mar 15 23:01:22 2001
    smb: > ?
    ls             dir            du             lcd            cd
    pwd            get            mget           put            mput
    rename         more           mask           del            open
    rm             mkdir          md             rmdir          rd
    prompt         recurse        translate      lowercase      print
    printmode      queue          cancel         quit           q
    exit           newer          archive        tar            blocksize
    tarmode        setmode        help           ?              history
    !
    [root@linux gmwu]# smbclient  -L pii3501
    added interface ip=210.45.144.110 bcast=210.45.144.255 nmask=255.255.255.0
    Password:
            Sharename      Type      Comment
            ---------      ----      -------
            E              Disk
            D              Disk
            IPC$           IPC       远程进程间通信
            Server               Comment
            ---------            -------
            Workgroup            Master
            ---------            -------
    [root@linux gmwu]# smbclient  //pii3501/e
    非验证时,Windows要修改注删表
    (HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP)
    EnablePlainTextPassword 0x00000001(1)

    5.3 远程调用---r命令
    r命令是一些常用的远程调用命令,主要包括rch,rsh,rlogin和rexec.
    [color="#ff3333"]Client --------------------->[color="#3333ff"]Server
    (shg ) rsh,rcp,rlogin,rexec (linux)
    user
    要使用这些命令,需要两个基本条件:
    1、远程机器(Server)要打开相应的服务:/etc/inetd.conf
    .....................
    shell stream tcp nowait root /usr/sbin/tcpd in.rshd
    login stream tcp nowait root /usr/sbin/tcpd in.rlogind
    exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
    ................
    RedHat7.0 以上,设置/etc/xinetd.d/下 rexec rlogin rsh
    disable = no
    同时/etc/services相应的端口要打开:
    exec 512/tcp
    login 513/tcp
    shell 514/tcp     cmd
    2、远程机程对客户机器的信任,有两种方式(远程机器上设定):
    全局的信任文件:/etc/hosts.equiv
    client.foo.net user1
    它定义客户机器的user1帐号与远程机器上的user1等价,即客户机上的user1用户可以用r命令访问。
    对某个用户的信任文件:$HOME/.rhosts
    它除了可以象hosts.equiv一样定义两台机器上的相同用户名等价外,还可以定义客户机器上的不同用户名与这个用户等价。
    ##exam1
    client.foo.net user1
    -------------------
    ##exam2
    server.foo.net user1
    client.foo.net user2
    rch、rsh、rlogin 可以不用口令访问远程系统,rexec需要口令在远程机器上执行命令,具体:
    rch: 在远程机器上执行一条命令。
    [[color="#006666"]gmwu@shg /tmp]$ rsh linux ls /tmp -la (相同帐号)
    [color="#006666"][gmwu@shg /tmp]$ rsh -l fly linux ls -la (不同帐号)
    rlogin:相当于telnet,对信任用户不需口令
    [[color="#006666"]gmwu@shg /tmp]$ rlogin linux (相同帐号)
    [color="#006666"][gmwu@shg /tmp]$ rlogin -l fly linux(不同帐号)
    rcp: 机器之间复制文件
    [color="#006666"][gmwu@shg /tmp]$ rcp linux:/tmp/test .
    [color="#006666"][gmwu@shg /tmp]$ rcp Hello* linux:/tmp
    rexec: 在远程机器上执行命令,需要口令
    注:r命令存在不安全因素,一般不使用。
    前一章
    目录
    后一章
    前一章
    目录
    后一章
    第六章 Internet服务器安装与配置
    [color="#ff0000"]●
    DNS
    [color="#ff0000"]●
    FTP
    [color="#ff0000"]●
    WWW

    6.1域名系统(DNS)
    网络中的计算机的标识有两种情况:IP地址和名字。DNS的作用就是对它们两者进行相互间翻译.
    6.1.1 基本概念
    什么是DNS?
      DNS是Domain Name System的缩写,它实际上是一个包含主机信息的分布式数据库,将整个网络按照组织结构或管理范围划分成一个层次结构。本地负责控制这个数据库中本地的部分信息。所有信息在网络中通过客户和服务器模式可以任意存取。


    DNS由名字服务器和解析器组成:
      名字服务器(Name Server)其实是一个安装在计算机中的程序,其中包含了数据库中本地部分的信息,接受解析器的访问。
      解析器(Resolvers)是那些创建查询并通过网络将查询发送给名字服务器的库例程,接受服务器的查询结果。
      域名空间(Domain Name Space): 由所有名字一起组成的树状结构的空间称为域名空间。INTERNET域名空间:目前存在的使用广泛的INTERNET上的域名空间。这里有一些约定俗成的要求。
    下面这个例子说明当所查询的主机不在本地区域中,Internet中的DNS系统是如何工作的。
    假如中央电视台区域的一台主机host1.cctv.com想知道另一个域名为star.aust.edu.cn的主机的IP地址。于是向本地域名服务器ns1.cctv.com查询。由于查询不到,就向顶级域名服务器a.gtld-servers.net查询,也查询不到,但它知道世界上一些根域名服务器(例如A.root-servers.net,其IP为198.41.0.4),于是就向根域名服务器查询。根域名服务器知道star.aust.edu.cn看起来在区域cn中,而cn域名应该由域名服务器ns.cnc.ac.cn负责,其IP为159.226.1.1。ns.cnc.ac.cn知道edu.cn域名应由域名服务器dns.edu.cn负责,其IP为202.112.0.35。dns.edu.cn知道aust.edu.cn域名应由域名服务器shg.aust.edu.cn负责。Shg.aust.edu.cn在查询时,由于其DNS服务器数据库中有一条关于域名主机star.aust.edu.cn的记录,于是得到star.aust.edu.cn的IP地址为210.45.144.19的结果。查询过程见下图中步骤1~6。之后按图中的7~12将回答报文传给本地域名服务器ns1.cctv.com并存入其高速缓存中(存放很多最近得到的域名和IP地址的映射),从而主机host1.cctv.com就知道了star.aust.edu.cn的IP地址为210.45.144.19。整个过程要使用12个UDP报文。这种查询方法叫递归查询。


    解析:
      重复解析:解析器每次请求一个服务器,如果不行再请求别的服务器,由本次请求的服务器返回下次请求的服务器地址。
      递归解析:要求名字服务器系统一次完成从名字到地址的转换。
      反向解析:要求名字服务器给出从地址到名字的转换。
    6.1.2 bind8服务器配置
    在UNIX中常用bind (Berkeley Internet Name Domain)来实现,它是DNS实现中最流行的一个域名系统,BIND的客户端为解析器,用来产生用于发往服务器的关于域名信息的查询。BIND的服务器端是一称为 named的守护进程(daemon).
    named有两个规范 bind4 和bind8 ,现在大多linux中都用bind8,它们的区别在启动文件不同(named.boot/named.conf).
    配置named一共需要配置五文件(bind8):
    /etc/named.conf 启动文件 设置通用named参数给出由该服务器所的域数据库信息的源。 /var/named/named.ca缓存文件 指向根域服务器/var/named/named.local 自反文件 用于本地解析自反地 址/var/named/named.hosts正规域区文件 映射主机名IP地址的区文件/var/named/named.rev 反向域区文件 映射IP地址到主名的反向域的区文件
    示例:named.conf
    options {
            directory "/var/named";
    };
    zone "." {
    type hint;   ;;线索
    file "named.ca";
    };
    zone "0.0.127.in-addr.arpa" {
    type master;
    file "named.local";
    };
    zone "aust.edu.cn" {
    type master;
            file "named.hosts";
    };
    zone "144.45.210.in-addr.arpa" {
            type master;
            file "named.rev";
    };
    区文件的是名字服务器的数据库文件,其中包括named.hosts文件、named.rev文件、named.local文件和named.ca文件。 基本格式是使用同一类型的记录-----标准资源记录来定义域数据库信息。
    SOA : 标记区数据的开始,定义影响整个区的参数。(Start Of Area)
    NS : 标明域的名字服务器。(Name Server)
    A : 转换主机名到IP地址。(Address)
    PTR : 转换IP地址到主机名
    MX : 标明发往给定域名的邮件应传送到的位置。(Mail eXchange)
    [color="#000000"]CNAME : 定义主机名别名。(Canonical Name)
    HINFO : 描述主机硬件和操作系统信息。
    WKS : 通告网络服务。
    named.ca: 安装时生成,不需要配置.
    named.local :自反文件
         
    @    IN   SOA   shg.aust.edu.cn.   root.aust.edu.cn. (
                    305                  ;序列号
                    10800                ;备份时间
                    1800                 ;备份重试时间
                    3600000              ;备份服务器的有效期
                    86400 )              ;ZONE中记录的最小生存期
                   IN     NS            shg.aust.edu.cn.
    1              IN     PTR        localhost.
    说明:原始服务器是shg.aust.edu.cn.
         有关本区问题的联系地址是root@aust.edu.cn
    named.hosts:(负责[color="#000000"]zone "aust.edu.cn")
    @    IN   SOA   shg.aust.edu.cn.  root.shg.aust.edu.cn. (
                            20010328 ; serial
                            86400 ; refresh
                            1800 ; retry
                            2592000 ; expire
                            86400 ; default_ttl
                            )
    ;NS
                    IN      NS      shg.aust.edu.cn.
    ;MX
                    IN      MX      0       bgs.aust.edu.cn.
    ;
    shg             IN      A       210.45.144.18[color="#000000"];;解释为shg.aust.edu.cn=210.45.144.18
    hh              IN      A       210.45.144.19
    home            IN      A       210.45.144.17
    bgs             IN      A       210.45.144.16
    proxy           IN      CNAME   bgs.aust.edu.cn.
    mail            IN      CNAME   bgs.aust.edu.cn.
    music           IN      CNAME   linux.aust.edu.cn.
    [color="#000000"]named.rev: (负责zone "144.45.210.in-addr.arpa")
    @    IN   SOA   shg.aust.edu.cn.  root.shg.aust.edu.cn. (
                            2001032801 ; serial
                            86400 ; refresh
                            300 ; retry
                            2592000 ; expire
                            86400 ; default_ttl
             


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5338/showart_42643.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP