没什么好介绍的!穷屌丝一个~
分类: LINUX
2005-08-16 17:32:21
http://pofem.51.net/index.php?op=Default&Date=200503&blogId=1
2.1 文件系统
ls -l
由于LINUX系统是一个多用户系统,为确保系统的安全性,LINUX系统采用用户权限机制对系统进行管理,这种管理主要是通过文件管理机制来实现的。
最左边的属性位:表示文件项的类型(普通文件-,目录d,链接l,字符设备c,块设备b等)
***可执行位仅对于可执行文件有意义。
***LINUX中必须即拥有执行权限也拥有读权限时才能够执行某个script(脚本)程序,所以在下面讲到的编写shell script时,要执行的话必须给该shell script程序加上可执行权限。
超级用户root不受任何文件存取控制机制约束。每个UNIX/LINUX系统都有个root用户,这个用户执行系统的维护和管理。但有一点要注意,对于系统来说这个名字其实没有意义。系统内核真正关心的是用户的uid(参看/etc/passwd第三列之值)
利用su命令可以在不同用户之间切换。
su 用户名
LINUX默认的用户保护机制不仅用于控制,也用于设置用户执行的程序,一个用户所启动的程序通常自动具有了这个用户的权限,也就是这个程序对文件的存取按照用户的权限执行。一般情况下,这使得用户不能绕过文件存取机制来破坏文件系统。
setuid是一种特殊的文件属性,它使得被设置了setuid位的程序无论被哪个用户启动,都自动具有文件拥有者的权限。(参见P32例子)
setgid与setuid类似,具有setgid的可执行文件运行时自动获得文件对应的组权限。
setuid和setgid文件属性机制给系统安全带来了严重威胁。
chmod u+s <文件名>
chmod g+s <文件名>
2.3 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命令查看)
.bash_history
.bash_logout
.bash_profile
.bashrc
/etc/profile
/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
user4:$1$CF4hWgB6$u99SVNGgdmOYO33uNysCw/:502:502:user1:/home/staff/user1:/bin/bash
如果你想让一个普通用户拥有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.:12325::99999::::
我们在/etc/passwd文件中只看到一个x,例如在/etc/passwd文件中我们看到的:
user1: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:*:502:502:user1:/home/staff/user1:/bin/bash
还有一种方法(shell区域)可以禁止用户user1登陆。
user1:x:502:502:user1:/home/staff/user1:/bin/false
或
user1:x:502:502:user1:/home/staff/user1:/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
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:用户帐号解锁
passwd
userdel [-r]
系统帐号uid的特点。口令域的特点。nobody帐号。
前一章 | 目录 | 后一章 | |||||
第四章 系统配置 | |||||||
| |||||||
4.1 系统启动和关机 首先是要了解启动脚本(或者叫配置文件吧,unix系统的一切东西都是 可拆卸的,甚至包括内核) 系统启动流程: 系统启动完成如下工作: .机器本身所进行的必要的有限的自检 若引导管理程序(boot loader)是linux loader(即lilo) .该linux引导程序并显示 => lilo: <---这时你可以选择加载不同的系统 .从引导设备上读取内核 .找到内核并初始化外设 .启动基本系统任务 .运行那些能提供服务的shell script .其他应用程序开始 在系统启动过程中,绝大多数启动信息将同时写到主控台设备和系统 日志文件, 系统日志文件可以参考系统文档syslogd和配置文件 /etc/syslog.conf(系统日志记录在/var/log目录中)。 先来看看第一个配置文件 /etc/lilo.conf : boot=/dev/hda <----启动磁盘 map=/boot/map 定义镜像文件(系统内核存放的物理位置) install=/boot/boot.b 文件内容(引导加载器)加到引导记录中去 prompt 提示符 lilo: timeout=100 append="mem=393216K" 通知内核内存大小 default=linux2.4.2 缺省的引导标号 #--------------------------- image=/boot/vmlinuz-2.2.14-5.0 内核文件 label=linux read-only root=/dev/hda1 文件系统根的位置 #-------------------------- image=/boot/bzImage label=linux2.4.2 read-only root=/dev/hda1 initrd=/boot/initrd-2.4.2.img #------------------------- other=/dev/hda3 libel=dos table=/dev/hda (DOS分区表的位置) (服务器来说,都没有这一项) 这个文件是可以根据需要修改的,这是个最简单的lilo配置文件, 它有很多参数可加。修改后要运行 /sbin/lilo 才更新。 若引导管理程序(boot loader)是grub则文件/etc/grub.conf(实际是/boot/grub/grub.conf) # grub.conf generated by anaconda /etc/rc.d/rc$runlevel.d/S* #启动这个级别时运行,实际对应于/etc/init.d/中的运行脚本(软链接) 二、管理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] (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 -d Don't write the wtmp record. The -n flag implies -f Force halt or reboot, don't call shutdown(8). -i Shut down all network interfaces just before halt -p When halting the system, do a poweroff. This is the | |||||||
4.2 网络配置 一、配置网卡(以前是最头疼的事情) 首先要了解网卡芯片的型号,然后去查HOWTO()(Ethernet-HOWTO.html) ,看看linux是不是支持,最后进行配置。 在/etc/下找到文件 conf.modules ,加入 alias eth0 网卡驱动程序名 (去掉.o) 一行。 网卡驱动程序名,都在/lib/modules/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 相应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 若IP地址是动态分配的即由网络上的DHCP服务器分配IP地址则此处为dynamic,并且以下两行省略 若给同一网卡配置多个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 <网络接口>] route add -net 210.45.146.0 netmask 255.255.255.0 gw 210.45.144.253 注意:静态路由信息存放于配置文件/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 …… 注意:目标地址是一个网络,要加上netmask,若目标地址是主机,则不加netmask,此处默认的网络接口是eth0,选项[dev <网络接口>]用于多网卡情况下。 route or # route [add/del] default gw <网关地址> 默认路由的配置存放在/etc/sysconfig/network #more /etc/sysconfig/network NETWORKING=yes #ping 210.45.146.254 经上面的配置后就基本上可以使用网络了,但DNS需要额外配置(以后介绍),如果已你有一台DNS服务器的话,只需要修改/etc/resolv.conf 和 /etc/host.conf 就可以使用DNS服务器了。 #resolv.conf DNS客户机配置文件,设置DNS服务器的IP地址及DNS域名 nameserver 210.45.151.191 #域名解析服务器,可有多个 #host.conf 指定主机名查找方法,通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求(不需修改)。 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) 五、相关的配置文件 网络配置文件 /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 网络信息中心提供的信息。文件的每一行都包含协议名称,协议号和 协议别名。 建议: 在没有完全必要的情况下尽量关闭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 /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) 一般都有下面一些步骤: gzip <文件> cd /home/xjfang/aaa gzip f1 #将文件f1压缩成f1.gz gzip -d f1.gz #将文件f1.gz解压缩,同时删除压缩文件 zip <压缩文件名> 〈被压缩文件或目录〉 cd /home/xjfang zip exam html unzip <文件> 解压缩*.zip文件(包括windows中的zip文件) unzip exam.zip compress <文件> #生成*.Z文件 uncompress <文件> 原*.Z文件被自动删除 tar <归档后的文件名> <被归档的file/dir> -z:归档时压缩和解归档时解压缩 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 -->注意是那两个版本之间的patch
| |||||||
前一章 | 目录 | 后一章 |
前一章 | 目录 | 后一章 | |||
第五章 局域网服务器 | |||||
| |||||
DHCP(Dynamic Host Configure Protocol,动态主机配置协议)服务用于给子网内的主机动态分配IP地址、域名服务器和网关地址等信息。使用它的目的是两个,一个是节省IP地址,二是避免管理每台客户主机的IP地址、网关、域名设置、域名服务器地址等复杂的问题,而且可以避免手动分配IP地址所造成的IP地址冲突问题,因此可以简化安装配置网络客户机器。 DHCP服务是以广播的形式向请求的客户主机分配IP地址的,所以不能跨越网关/路由,除非你的网关/路由支持DHCP Relay(DHCP中继) 。 配置DHCP服务器 1.安装 rpm -ivh dhcp-2.0pl5-8.i386.rpm 2.配置文件
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"; }
/var/lib/dhcp/dhcpd.leases文件
/usr/sbin/dhcpd
# Command line options here
这一章主要介绍如何将Linux配置成为局域网服务器,如文件服务器或打印服务器。 NFS----主要用于unix系统之间的文件共享服务。 Samba-----Linux与其它文件系统之间的共享服务,如linux与Windows之间有linux与linux之间的相互访问,可以把linux服务器配置成为局域网中的文件服务器和打印服务器。 | |||||
5.1 NFS服务 NFS是一种用来在Unix系统之间共享文件的一种服务协议,NFS是基于rpc机制的,所以portmap服务一定要打开。要使用NFS服务必需对服务器端和客户端的分别进行安装和设置。 在RedHat中安装: NFS服务器: NFS客户软件: RedHat6.2 : 同时要在服务器端启动portmap、rpc.mountd、rpc.nfsd 该记录在umount时被删除. ●NFS服务器配置 /etc/exports ----->NFS的配置文件,设置服务器那些目录被共享输出。 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.2上: # mount 192.168.1.1:/home/ftp/pub /mnt ●NFS客户端配置 在客户机上可能用showmount -e nfs服务器名检查。 mount -t nfs NFS服务器输出目录 挂接点
要启动机器时自动挂接可以在/etc/fstab 中加入语句: NFS服务器输出目录 挂接点 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, (HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP) EnablePlainTextPassword 0x00000001(1)
| |||||
5.3 远程调用---r命令 r命令是一些常用的远程调用命令,主要包括rch,rsh,rlogin和rexec. Client --------------------->Server 要使用这些命令,需要两个基本条件: shell stream tcp nowait root /usr/sbin/tcpd in.rshd RedHat7.0 以上,设置/etc/xinetd.d/下 rexec rlogin rsh exec 512/tcp 2、远程机程对客户机器的信任,有两种方式(远程机器上设定): client.foo.net user1 ------------------- rch、rsh、rlogin 可以不用口令访问远程系统,rexec需要口令在远程机器上执行命令,具体: rch: 在远程机器上执行一条命令。 [gmwu@shg /tmp]$ rsh linux ls /tmp -la (相同帐号) [gmwu@shg /tmp]$ rsh -l fly linux ls -la (不同帐号) rlogin:相当于telnet,对信任用户不需口令 [gmwu@shg /tmp]$ rlogin linux (相同帐号) [gmwu@shg /tmp]$ rlogin -l fly linux(不同帐号) rcp: 机器之间复制文件 [gmwu@shg /tmp]$ rcp linux:/tmp/test . [gmwu@shg /tmp]$ rcp Hello* linux:/tmp rexec: 在远程机器上执行命令,需要口令 注:r命令存在不安全因素,一般不使用。 | |||||
前一章 | 目录 | 后一章 |
前一章 | 目录 | 后一章 | ||||||||||||||||
第六章 Internet服务器安装与配置
6.1域名系统(DNS) 网络中的计算机的标识有两种情况:IP地址和名字。DNS的作用就是对它们两者进行相互间翻译. 6.1.1 基本概念
DNS由名字服务器和解析器组成: 域名空间(Domain Name Space): 由所有名字一起组成的树状结构的空间称为域名空间。INTERNET域名空间:目前存在的使用广泛的INTERNET上的域名空间。这里有一些约定俗成的要求。 解析: 6.1.2 bind8服务器配置 named有两个规范 bind4 和bind8 ,现在大多linux中都用bind8,它们的区别在启动文件不同(named.boot/named.conf). 配置named一共需要配置五文件(bind8):
示例: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地址到主机名 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:(负责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;;解释为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. 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 |