第五节 FTP服务器的设置
本章目标:
掌握FTP服务器的工作原理,掌握vsftpd服务器的架设,区分FTP用户类型,掌握FTP客户程序的使用
一.FTP服务的相关概念
1.FTP服务:是进行数据传输的基本服务之一,其实现可以独立于平台.仅用于数据传输和校验,资源独占,具有断点续传的功能
2.FTP协议:File Transfer Protocol,FTP是RFC959说明的,运行于OSI模型的应用层,并利用TCP在不同的主机之间提供可靠的数据传输
3.FTP的运行原理:用户通过一个支持FTP协议的客户机程序,连接到远程主机上的FTP服务器程序.用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令并将执行结果返回给客户机,一个FTP会话通常要包括五个软件元素
CDTP:客户端数据传输协议,负责完成和服务器数据传输过程及客户端本地文件系统的通信
SDTP:服务端数据传输协议,负责完成和客户数据传输过程及服务器端文件系统的通信
CPI:客户端协议解释器,向远程服务器协议机发送命令并且驱动客户的数据传输过程
SPI:服务器端协议解释器,响应客户协议机的命令并驱动服务器数据传输过程
用户接口:UI,使用客户端协议解释器的服务
在FTP会话中,会存在两个独立的TCP连接,一个是CPI和SPI使用的控制连接,另一个是由CDTP和SDTP使用的数据连接,控制连接主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应,控制连接建立后,服务器通过一的方式来验证客户的身份,以决定是否可以建立数据连接.数据连接用来传输用户的数据,在客户端进行上列表,上传和下载操作
4.FTP的数据传输模式:
主动传输:control connection建立后,客户提出目录列表、传输文件时,客户端发出PORT命令与服务器进行协商,FTP服务器使用一个标准的端口20作为服务器端的数据连接端口(ftp-data)与客户建立数据连接.FTP命令行客户程序支持主动传输
被动传输:客户端发送PASV命令使服务器处于被动模式,FTP服务器等待客户与其联系.FTP服务器在非20端口的其他数据传输端口监听客户的请求,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get等);CuteFTP支持被动连接
单端口传输模式:当FTP的控制连建立后,且客户提出目录列表、传输文件时,FTP服务器就会使用FTP协议的数据传输端口20和客户端的控制连接源端口建立一个数据传输连接.这就需要客户程序在这个端口上监听,客户端的控制连接端口和数据端口是一致的.在FTP服务器支持的前提下,要使用此种模式,必须:在客户程序上使用sendport命令关闭FTP协议的PORT控制指令,在客户程序上使用passiv命令关闭被动传输模式
5.FTP的典型消息
125数据连接打开,传输开始
200命令OK
226数据传输完毕
331用户名OK,需要输入密码
425不能打开数据连接
426数据连接被关闭,传输中断
452错误写文件
500语法错误,不可识别的命令
二.Linux下的FTP服务器
1.linux下的FTP客户
2.linux下的FTP服务器
wu-ftpd:非商业FTP服务器程序之一,功能强大而稳定,服务器的组织较为零散,安全性较差,但稳定性好
Proftpd:安全而易于设定
vsftpd:Very Secure,是一个基于GPL发布的类UNIX系统上使用的FTP服务器的软件,具有安全、稳定(单机上支持4000个以上的并发用户同时连接)和高速(千兆以太网可达86M/s)的特点
著名的vsftpd站点:ftp.redhat.com ftp.suse.com ftp.gnome.org
3.FTP服务的使用者:本地用户(本地用户可能通过输入自已的帐号和口令登陆到自家目录,即可以下载也可以上传)、虚拟用户(FTP服务器上只用于文件传输的的帐号)和匿名用户(匿名用户可以输入anonmous或ftp和口令用户自己的E-Mail地址来进行登陆)
4.FTP客户的使用:FTP命令行客户程序的使用,ftp子命令
三.FTP服务器的配置
1.安装vsftpd
rpm -qa|grep vsftpd
插入第3张光盘
mount /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm -ivh vsftpd-1.1.3-3.i386.rpm
cd;eject
2.启动vsftpd
service vsftpd start
pstree|grep vsftpd
ntsysv
3.Red Hat Linux9中的配置文件
/etc/vsftpd/vsftpd.conf是主配置文件 /etc/vsftpd.ftpusers指定哪些用户不能访问FTP服务器 /etc/vsftpd.user_list中指定的用户在/etc/vsftpd/vsftpd.conf中设置了userlist_enable=YES且userlist_deny=YES时不能访问FTP服务器
4.vsftpd的默认主配置文件
anonymous_enable=YES允许匿名登录
local_enable=YES允许本地用户登录
write_enable=YES开放本地用户的写权限
local_umask设置本地用户的文件生成掩码为022,默认值为077
dirmessage_enable=YES
xferlog_enable=YES激活上传和下载日志
connect_from_port_20=YES启用FTP数据端口的连接请求
xferlog_std_name=vsftpd使用标准的ftpd xferlog日志格式
pam_service_name=vsftpd设置PAM认证服务的配置文件名称,
该文件存放在/etc/pam.d/目录下
userlist_enable=YES文件中所列的用户均不能访问此vsftpd服务器
listen=YES使vsftpd处于独立启动模式
tcp_wrappers=YES使用tcp_wrappers作为主机访问控制方式
例1.允许匿名用户上传
anon_upload_enable=YES允许匿名用户上传
write_enable=YES匿名用户对文件系统的上传目录具有写权限
anon_mkdir_write_enable=YES开启匿名用户的写和创建目录的权限
anon_world_readable_only=NO放开匿名用户YES览权限,即浏览此服务器中全部的内容
anon_other_write_enable=YES开放了文件更名、删除文件等权限
创建匿名上传目录mkdir /var/ftp/incoming
#chmod o+w /var/ftp/incoming/
#service vsftpd restart
测试匿名用户上传
ftp 192.168.1.57
>ls列出文件和目录列表 put install.log将本地文件传送至远程主机 mkdir newdir bye退出ftp
例2.配置基于本地用户的访问控制
限制指定的用户不能访问,而其他本地用户可访问。例如
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
使文件/etc/vsftpd.user_list中指定的本地用户不能访问FTP服务器
限制指定的用户能访问,而其他本地用户不能访问。例如
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
使文件/etc/vsftpd.user_list中指定的本地用户能访问FTP服务器
例3.配置基于主机的访问控制
Vsftpd从版本1.1.3以后内置了对TCP_wrppers支持,为独立的vsftpd提供基于主机的访问控制配置.TCP_wrappers使用/etc/hosts.allow和/etc/hosts.deny两个配置文件实现访问控制
#cat /etc/vsftpd/vsftpd.conf|grep tcp_wrappers
tcp_wrappers=YES
#cat<<! >>/etc/vsftpd/vsftpd.conf
>local_max_rate=10000
>anon_max_rate=10000
>max_per_ip=1
>!
编辑/etc/hosts.deny
ALL: ALL@ALL, PARANOID除非在 allow 文件中说明允许访问,所有服务、所有主机都被拒绝。
编辑/etc/hosts.allow
#cat<<!>>/etc/hosts.allow
>vsftpd:.smartrainig.com,192.168.1.0/24 /
>:setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
>vsftp: 202.54.15.99 foo.com对于你的客户机来说:202.54.15.99为IP地址,foo.com为允许使用ftp的一个客户机。
>vsftpd:192.168.1.0/255.255.255.0:allow
vsftpd:主机表:setenv VSFTPD_LOAD_CONF 配置文件名
vsftpd表示是对vsftpd进程实施访问控制 表示当遇到主机表中的主机访问本FTP服务器时,修改环境变量的值为指定的配置文件名.其意图是让vsftpd守护进程读取新的配置文件中的配置项来覆盖主配置文件中的配置,关于主机表的书写形式Hostname可解析的主机名 IP Address点分十进制表示的IP地址 .domain匹配一个域中的所有主机,表示在DNS域smartraining.com中的任何主机 network-number匹配IP地址的开始部分,如192.168 IPAddress/netmask定义要匹配的网络或子网,例172.19.16/20匹配从172.19.16.0到172.19.31.255
编辑/etc/vsftpd/vsftpd_tcp_wrap.conf
#cat<<!>>/etc/vsftpd/vsftpd.conf
>local_max_rate=0
>anon_max_rate=0
>max_per_ip=0
>!
#service vsftpd restart
例4.配置本地组访问的FTP服务器
本地组softgrp有3个用户soft、soft1和soft2,其中soft对FTP有读写权限,而soft1和soft2对FTP只有读的权限,可借助于本地文件系统的权限设置来实现
#vi /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
chroot_local_user=YES不允许本地用户切换到自家目录以外的目录进行浏览
#mkdir -p /var/local-ftp/softgrp
#groupadd softgrp
#groupadd softgrp
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft -G指定新用户的附加组 -d指定宿主目录 -M不建立新用户的自家目录
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft1
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft2
#passwd soft #passwd soft1 #passwd soft2
#chown soft.softgrp /var/local-ftp/softgrp
#chmod 750 /var/local-ftp/softgrp
#ll -d /var/local-ftp/softgrp
#ftp 192.168.1.57
ftp>put install.log
ftp>close
ftp>open 192.168.1.57
例5.配置vsftpd在非标准端口下提供服务
#echo "listen_port=10021">>/etc/vsftpd/vsftpd.conf
#service vsftpd restart
#ftp 192.168.1.57 10021
ftp>bye
例6.配置独立启动的基于IP的虚拟FTP服务器
配置虚拟IP地址
建立虚拟FTP的服务器目录并设置适当的权限
建立虚拟FTP的服务器的主配置文件
#ifconfig |grep -1 eth0
#ifconfig eth0:1 192.168.1.57 up
#ifconfig |grep -1 eth0:1
#mkdir -p /var/ftp2/pub
#ll -d /var/ftp2/pub
#ll -d /var/ftp2
#echo "hello">/var/ftp2/pub/test_file
#useradd -d /var/ftp2 -M ftp2
#vi /etc/vsftpd/vsftpd.conf
listen_address=192.168.1.67
#cp /etc/vsftpd/vsftpd.conf.rh9 /etc/vsftpd/vsftpd_site2.conf
#vi /etc/vsftpd/vsftpd_site2.conf
listen_address=192.168.1.234
ftp_username=ftp2
ftpd_banner=This is the alternative FTP site,and vsftpd in "standalone" mode.
#service vsftpd restart
测试
例7.配置简单的虚拟用户FTP服务器
生成虚拟用户口令库文件
配置生成vsftpd的认证文件
建立虚拟用户所要访问的目录并设置相应权限
建立配置文件
cat <<! >logins.txt
>tom
>foo
>fred
>bar
单数行为用户名,偶数行为口令
#db_load -T -t hash -f ~/logins.txt /etc/vsftpd/vsftpd_login.db使用db_load命令生成口令库文件前,要先安装db4-utils-4.0.14-20工具插入第二张光盘#rpm -ivh db4_utils-4.0.14-20.i386.rpm
#chmod 600 /etc/vsftpd/vsftpd_login.db
#vi /etc/pam.d/vsfpt.vu
类型(type) 控制(control) 模块路径(module-path) 模块参数(module-arguments)
auth required /lib/security/pam_userdb.so db=/etcvsftpd/vsftpd_login
accout required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
PAM,Pluggable Authentication Modules for Linux
类型:accout验证用户帐号是否被允许访问服务,如用户帐号口令是否已过期等 auth验证用户身份,一般为通过口令进行验证
控制:控制标记告诉PAM如何对待模块认证失败,例:required模块认证失败会导致拒绝用户认证,但在拒绝用户之前PAM仍将调用所有的其他模块
模块路径:module-path告诉PAM使用哪个模块的路径,如未给出模块路径PAM会在默认的PAM模块目录/lib/security中查找
模块参数:module-arguments用于给模块传递参数
#useradd -d /home/ftpsite virtual
#chmod 700 /home/ftpsite/
#su -virtual -c "echo hello>/home/ftpsite/test_file"
#cp /etc/vsftpd/vsftpd/conf/bak /etc/vsftpd/vsftpd.conf
#vi /etc/vsftpd/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
one_process_model=NO这个设定项目比较危险一点,当设定为 YES 时,表示每个建立的连线都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过,除非您的系统比较安全,而且硬体配备比较高,否则容易耗尽系统资源!一般建议设定为 !
chroot_local_user=YES
ftp_banner=This FTP server is virtual user only
guest_enable=YES
guest_username=virtual
pam_service_name=vsftp.vu
#service vsftpd restart
下面分别创建虚拟用户tom的配置文件
#vi /etc/vsftpd.conf
user_config_dir=/etc/vsftpd_user_conf激活对不同的虚拟用户进行不同权限配置的配置语句
#vi /etc/vsftpd_user_conf/tom
anon_upload_enable=YES
write_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
例8.配置安全的vsftpd
仅仅允许匿名用户访问anonymous_enable=YES
不允许本地用户访问local_enable=NO
关闭所有写权限 write_enable=NO
不允许匿名用户上传anon_upload_enable=NO anon_other_write_enable=NO
设置客户端连接时的端口范围pasv_min_port=50000 pasv_max_port=60000
设置匿名用户的最大传输速率限制anon_max_rate=50000
设置空闲的数据连接的中断时间data_connection_timeout=300
设置客户端空闲时的自动中断和激活连接的时间accept_timeout=60 connect_timeout=60
配置每个主机的最大连接数max_per_ip=5
配置总的并发连接数instances=60
配置禁止访问的主机 userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list
配置安全日志xferlog_enable=YES anon_world_readable_only=YES connect_from_port_20=YES
第六章 操作系统间集成(samba服务)
授课内容:SAMBA协议基础、SAMBA的守护进程及配置文件、SAMBA语法及配置、LINUX和WINDOWS系统间文件和打印共享
授课重点:SAMBA的守护进程及配置文件、SAMBA语法及配置
LINUX和WINDOWS系统间文件和打印共享
Windows主机彼此间可以利用网上邻居达到资源共享的目的,Unix系统之间也能通过NFS(Network File System,网络文件系统)实现目录共享,而Unix和Windows之间由于采用了完全不同的文件结构,无法直接实现资源共享,本文就为大家介绍一种利用Samba服务器来实现Unix与Windows间资源共享的办法。
一.SMB协议和samba简介
1.SMB协议:Server Message Block,服务信息块协议,是一个高层协议,它提供了在网络上的不同计算机之间共享文件和打印机的手段,SMB使用NetBIOS API实现面向连接的协议,该协议为Windows客户程序和服务提供了一个通过虚电路按照请求-响应方式进行通信的机制,其工作原理就是让NetBIOS与SMB协议运行在TCP/IP上,并且使NetBIOS的名字解释器让Linux机器可以在Windows的网上邻居中被看到,1992年SMB成为Open Group的国际标准,即X/Open pc机网络互连协议SMB
NetBIOS工作在OSI的网络层和传输层,而SMB工作在OSI的会话层、表示层和应用层
2.samba简介:是linux上支持SMB协议的一组软件包
在缺省情况下,Windows工作站上的Microsoft Client使用服务消息块协议
samba于1991年由奥大利亚Andrew Tridgell研发,samba的核心是两守护进程:
smbd处理到来的SMB数据包 nmbd使其它主机能浏览Linux服务器
smbd 是samba 的核心。它负责建立对话进程、验证用户身份、提供对文件系统和打印机的访问机制。nmbd实现了“network brower” 的功能。它的作用是对外发布samba服务器可以提供的服务。
3.samba软件的功能
共享Linux的文件系统
共享安装在samba服务器上的打印机
支持Windows客户使用网上邻居浏览网络
使用windows客系统共享的文件和打印机
支持windows域控制器和windows成员服务器使用
samba资源的用户进行认证
支持WINS名字服务器解析及浏览
支持SSL安全套接层协议
4.samba的应用环境
二.安装和启动samba
#rpm -qa|grep samba
插入第一张光盘
#mount /mnt/cdrom
#rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm安装包括samba服务器和客户均需要的文件
#rpm -ivh samba-2.2.7a-7.9.0.i386.rpm samba服务器端软件
#rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm安装samba客户端软件
#rpm -ivh redhat-config-samba-1.0.4-1.noarch.rpm安装samba的GUI配置工具
#cd;eject
插入第三张光盘
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm -ivh samba-swat-2.2.7a-7.9.0.i386.rpm安装Samba的Web配置工具
#cd;eject
#service smb restart
三.smb.conf的配置
[global]#global节
netbios name=rhl9设置主机的netbios名,即在2000网络邻居中看得见的机器名
workgroup=WORKGROUP主机的在的工作组名
server string=linux server主机名的字符串提示
security=user|share|Server|Domain使用用户级的安全;其中还有共享级share;Server和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证;Domain这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证
[test]test节
comment=Home Directory注解参数,在browse list中标示该条目的字符串.
path=/test共享目录的路径
guest ok=yes允许所有用户都可以guest帐户访问共享
[printers]
browseable=no指定共享的路径是否可浏览
public=yes指定是否可允许guest帐号访问
printable=yes指定是否可打印
例1.设置linux共享文件夹,如上
使用2000下的共享文件夹可以进行以下操作:
#smbclient –L //192.168.1.47此命令为查看bjxh01下的共享情况,注意在系统要求输入password时,直接回车即可进入2000,此时屏幕上列出2000下的共享。
#smbclient //192.168.1.47/aa -U username(是Windows系统的用户名)用于在linux中访问Windows2000中的共享目录,屏幕上出现MS-DOS的提示符:/时说明用户进入了aa目录。此时可以在提示符后输入“?”查找你可使用的命令。
在2000下,使用samba的共享目录/test,可以进行以下操作:查找计算机rhl9,当rhl9目标出现时,双击图标test,即进入共享文件夹test
#smbmount //192.168.1.57/test test1 此命令可把192.168.1.57下的test挂到本机的test上,同上在系统要求输入password时,直接回车,接着依次输入#cd /pub/pub、#ls,屏幕即列samba的test目录下的文件了.
!执行本地命令 ls:显示文件列表 get下载单个文件 put上传单个文件 mget批量下载文件 mput批量上传文件 mkdir建立目录 rmdir删除目录 rm删除文件
例2.当设置了user的安全等级后,将由本地系统对访问Samba共享资源的用户进行认证.认证需要一个Samba口令文件,该文件由smb passwd file参数指定,默认为/etc/samba/smbpasswd.初始情况下此文件并不存在,两种方法建立
成批添加samba帐户
#cat /etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd
#vi /etc/samba/smbpasswd
#chown root.root /etc/samba/smbpasswd
#chmod 500 /etc/samba
#chmod 600 /etc/samba/smbpasswd
#ll -d /etc/samba
#smbpasswd user1本地系统用户帐号必须事先已存在
添加单个的samba帐户smbpasswd -a user1
#smbadduser user1:user1已存在用户的用户名和密码
例3.使用符号链接组织本地共享资源
#vi /etc/samba/smb.conf
[test]
comment=local resource
path=/test
public=yes
writeable=yes
#ln -s /usr/share/doc doc
例4.为所有用户配置只读共享和读写共享
#vi /etc/samba/smb.conf
[test]
comment=local resource
path=/test
read only=no|yes指定共享的路径是否为只读
public=yes指定是否可以允许guest帐户访问,等价于guest ok=yes
例4.为指定用户和组配置samba共享
#useradd fred
#passwd fred
#smbpasswd -a fred
#mkdir -p /var/samba/fred
#chown fred.fred /var/samba/fred
[test]
comment=local resource
path=/test
valid users=fred ben
public=no
writeable=yes
#useradd tom #passwd tom #useradd ben #passwd ben #smbpasswd -a tom #smbpasswd -a ben #mkdir /var/samba/tomben #chmod 707 /var/samba/tomben #vi /etc/samba/smb.conf
[test]
comment=tom&ben's Service
path=/var/samba/tomben
valid users=tom ben,@g1
public=no
writeable=yes
create mask=0707设置对新创建的文件的正确权限。create mask 定义新创建的文件将允许哪些权限,使用二进制 /"and/" 操作将提供的八进制数与所需的权限结合起来。将导致不在掩码中的任何许可权都从新文件的权限中删除。 例默认创建文件的权限是744and0707=704
//write list=@g1
NFS文件系统
一.NFS的概念
1.NFS概念:Network File System,是主机间通过网络进行文件共享的网络协议,最早由Sun公司提出,多用于Unix操作系统,它允许用户将远程主机的文件系统看做好象是本地文件系统一样,并且是可安装的,可读的和可写的。系统使用与本地文件系统一样的命令mount把NFS文件系统挂接在本地文件树结构上。
2.NFS术语
拥有实际的物理磁盘并且通过NFS将这个磁盘共享的主机叫NFS文件服务器,通过NFS访问远程文件系统的主机叫NFS客户机。一个NFS客户机可以利用许多NFS服务器提供的服务。相反,一个NFS服务器可以与多个NFS客户机共享它的磁盘。一个共享了部分磁盘的NFS服务器可以是另一个NFS服务器的客户机。
NFS服务器输出的目录叫远程资源并且通常写作:host:pathname 其中host是文件服务器的名字而pathname是服务器上被输出目录的绝对路径。
远程资源被安装到客户机上的那个目录叫安装点(mount point)。
3.NFS输入输出规则
规则一:NFS输出目录,服务器输出的是目录而不是文件系统。
规则二:如果服务器已经输出了一个目录,如/usr/local,并且有一个文件系统安装在/usr/local
/extra,那么/usr/local/extra的内容在客户端看不到,除非服务器明确地输出了它,或客户机明确地安装了它。
规则三:客户机可以安装一个输出目录的子目录,前提是此子目录不是另一个文件系统。
规则四:一个主机不可以将一个输入的目录再次输出。例如,如果一个主机通过NFS安装/usr/local,它就不能将/usr/local输出给另外的主机。
规则五:一个已经输出目录的子目录不可以再输出,除非子目录在一个不同的文件系统上。还是举个例子:假设你要按只读方式输出根文件系统的跟(/)目录,但是又要按读写方式输出/tmp目录。你不可能做到这一点,除非/tmp被安装在不同于跟的文件系统上
二.NFS安装
只需安装两个软件包即可,通常被默认安装
#rpm -q nfs-utils portmap
插入linux的第一张光盘
#mount /mnt/cdrom #cd /RedHat/RPMS #rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm #rpm -ivh portmap-4.0-54.i386.rpm
portmap软件包中的portmap服务,为NFS提供RPC服务的支持.nfs-utils软件包中提供了NFS服务器程序和相应的维护工具,#rpm -ql nfs-utils
支持RPC的概念:使进程产生的调用看起来象是一个普通的调用,而真正的执行是在其他进程中——也许是一个远程系统中的进程。各种RPC执行协议都朝着一个共同的目标在发展,那就是用隐藏执行细节来简化进程间通信的复杂性。
RPC机制的核心概念就是将函数调用产生的数据串行化到一个顺序流中,然后在连接接收端对它进行重组。这两种行为同步发生,就好象传统的过程化编程一样。RPC客户端进程发出一个看似标准的函数调用,但是,这个调用不会在本地执行,调用参数被打包并传递到一个远程的执行环境当中,在那里它们再被传入真正的执行函数当中。在完成函数执行后,执行结果又被串行化传回客户端,再由客户端函数传给调用者。
三.NFS的配置
1.服务器的配置:NFS服务器的配置文件exports,export文件在目录/etc/下,用于配置NFS服务器所提供的目录共享.exports文件默认设置为空,这也是出于安全性的考虑,exports(输出)文件
要输出的共享目录 客户端主机地址(设置选项)
/home/share *(sync,ro)
共享目录:设置系统中需要为共享的目录路径
客户端主机地址:例192.168.1.19 abc.com指定域名的主机 192.168.1.0/24指定网段中的所有主机 *.abc.com指定域中的所有主机 *所有主机
设置选项:sync设置NFS服务器同步写磁盘(async:资料会先暂存于内存当中,而非直接写入硬盘),ro设置输出的共享目录只读(与rw不能共同使用)
2.NFS服务器的启动与停止
启动NFS服务器
#service portmap start
#service nfs start
查询NFS服务器状态:#service portmap status #service nfs status
设置NFS服务器的自动启动状态
#chkconfig --list portmap|nfs查看nfs服务的自动启动状态
#chkconfig --level 35 portmap|nfs on指定运行级,由数字 0 到 7 构成的字符串
3.showmount命令:查询NFS服务器的共享目录状态
#showmount -h显示showmount命令的联机帮助
#showmount [NFS服务器主机地址]:显示连接到指定NFS服务器的所有主机
#showmount -e [NFS服务器主机地址]显示指定NFS服务器的输出目录列表
#showmount -d [NFS服务器主机地址]显示指定NFS服务器中已被客户端连接的所有输出目录
#showmount -a [NFS服务器主机地址]显示指定NFS服务器的所有客户端主机及其所连接的目录,例#showmount -a
4.NFS客户端配置
#mount 192.168.1.57:/home/public /mnt/nfshare
#mount |grep nfs查询该目录的挂载状态
#umount /mnt/nfshare卸载卸NFS共享目录
第七章:X Windows的使用
授课内容:X WINDOWS概述、KDE桌面环境、GNOME桌面环境、LINUX作为拨号客户端应用
授课重点:KDE桌面环境、GNOME桌面环境
一.XWindow简介:
1.概念:X Window由斯坦福大学的W试验性视窗系统发展而来,1984年在麻省理工学院开发的
1990年1月推出X11R4版,1991年8推出X11R5版,1994年4月推出X11R6版
X Window是强大的图形操作系统环境,这个图形界面有大约3500个文件、200个程序、超过500种的字体,以及500多个图形,它包括窗口管理程序,还包括游戏、图形应用程序、编辑工具和许多其他的应用程序,是很多程序的集合,是用XView或Motif这些工具所编写的
2.X Window的特点
基于C/S模式:这是X系统的最大特色
网络透明性:程序可以在不同的显示器下执行而无须手新编译和连接
平台无关性:X Window可以安装在各种不同系统平台上
风格多样性:可以支持多种不同风格的用户界面
二.X Window运行原理
X Window只是在系统内核上运行的一个应用程序而已,它是一种C/S的模式,服务器用于显示客户的应用程序,位于硬件和客户机之间,它跟踪所有来自输入设备比如键盘,鼠标的输入动作,然后再由X最低层的界面程序X库提供存取X通信协议的能力,送回客户机.其运行分为4个层次
1.最底层的是X Server,是一种服务程序,它提供了图形界面的驱动,主要负责处理终端的硬件设备,如键盘、鼠标、屏幕和执行绘图作业等.
2.上面的一层是用于网上通信的网络协议,即X协议,X协议是X Window系统中各个元件之间沟通所用的标准,主要负责X客户机和X服务器的沟通.
3.再往上一层Xlib的底层函数接口,它是XWindow系统的程序界面,程序设计只要会使用Xlib就可以实现显示窗口、图形或响应事件等功能
4.最顶层就是管理窗口的窗口管理器(Window Manager)它是用户的操作界面,在这一个层的软件是用户经常接触的,比如fvwm,AfferStep,Enlightment
三.GNOME的使用
1.GNOME是GNU Network Object Model Environment的简称,GNOME是一个友好的桌面环境,GNOME包括一个面板(用于开始应用程序和显示状态)、桌面(用来放置应用程序和桌面).一系列的桌面工具和应用程序,以及一系列的协议,它是一个漂亮的、功能强大且高效的管理器,效高而且稳定性好
2.GNOME的运行界面
面板:底部的长条区域,包括一些有用的面板程序和主菜单
主菜单:是一个包含应用程序的菜单
桌面:屏幕的其他部分称为桌面,可把经常使用的程序或文件、目录放在桌面上,并可以通过双击进入桌面上的应用程序
3.应用程序及其运行
应用程序:文件管理器,可以方便地管理自己的目录和文件
运行应用程序:用主菜单找到事先载入的应用程序,双击桌面上的快捷图标运行应用程序,在GNOME文件管理器双击执行程序,在主菜单中选择Run命令来运行程序例gedit
4.窗口和鼠标的基本操作
窗口的操作:左上解用于改变窗口状态的菜单按钮,右上解最小化(窗口在桌面上消失,系统将其放置在面板的任务栏里)、最大化和关闭按钮
鼠标的使用:左键,用于选中和拖动目标.右键提供一个关于选中目标和各菜单项,中键用于粘贴操作或是移动目标
5.退出GNOME:
使用主菜单中的退出命令Logout,用组合键退出在X系统不能正常工作时,可以同时按下Ctrl+Alt+Backspace三键退出
四.GNOME的面板和桌面
1.面板是GNOME界面和行为的核心
主菜单:运行事先载入的应用程序
快捷工具栏按钮启动相应的应用程序,预设的快捷工具按钮有系统帮助、控制面板、Xterm、Netscape浏览器
任务栏:任务栏上可以看到当前桌面正在运行的所有应用程序
桌面切换工具,这个工具被分成4个象限,分别代表了4个可以利用的虚拟桌面,每个虚拟桌面都有自己的程序窗口
时钟:显示当前的系统时间
隐藏面板按钮
2.面板的基本操作
移动面板、添加面板、向面板中添加小程序Applet是指可以在面板上运行的程序、在面板中添加快捷工具按钮
五.GNOME的文件管理器
1.简介:GNOME的文件管理器是一个让用户方便的查找、打开、移动、复制和删除文件的强大而有效的图形化工具
启动文件管理器:右击/新建窗口或双击自家目录文件夹
定位与浏览:commands/Find File
本章目标:
掌握FTP服务器的工作原理,掌握vsftpd服务器的架设,区分FTP用户类型,掌握FTP客户程序的使用
一.FTP服务的相关概念
1.FTP服务:是进行数据传输的基本服务之一,其实现可以独立于平台.仅用于数据传输和校验,资源独占,具有断点续传的功能
2.FTP协议:File Transfer Protocol,FTP是RFC959说明的,运行于OSI模型的应用层,并利用TCP在不同的主机之间提供可靠的数据传输
3.FTP的运行原理:用户通过一个支持FTP协议的客户机程序,连接到远程主机上的FTP服务器程序.用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令并将执行结果返回给客户机,一个FTP会话通常要包括五个软件元素
CDTP:客户端数据传输协议,负责完成和服务器数据传输过程及客户端本地文件系统的通信
SDTP:服务端数据传输协议,负责完成和客户数据传输过程及服务器端文件系统的通信
CPI:客户端协议解释器,向远程服务器协议机发送命令并且驱动客户的数据传输过程
SPI:服务器端协议解释器,响应客户协议机的命令并驱动服务器数据传输过程
用户接口:UI,使用客户端协议解释器的服务
在FTP会话中,会存在两个独立的TCP连接,一个是CPI和SPI使用的控制连接,另一个是由CDTP和SDTP使用的数据连接,控制连接主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应,控制连接建立后,服务器通过一的方式来验证客户的身份,以决定是否可以建立数据连接.数据连接用来传输用户的数据,在客户端进行上列表,上传和下载操作
4.FTP的数据传输模式:
主动传输:control connection建立后,客户提出目录列表、传输文件时,客户端发出PORT命令与服务器进行协商,FTP服务器使用一个标准的端口20作为服务器端的数据连接端口(ftp-data)与客户建立数据连接.FTP命令行客户程序支持主动传输
被动传输:客户端发送PASV命令使服务器处于被动模式,FTP服务器等待客户与其联系.FTP服务器在非20端口的其他数据传输端口监听客户的请求,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get等);CuteFTP支持被动连接
单端口传输模式:当FTP的控制连建立后,且客户提出目录列表、传输文件时,FTP服务器就会使用FTP协议的数据传输端口20和客户端的控制连接源端口建立一个数据传输连接.这就需要客户程序在这个端口上监听,客户端的控制连接端口和数据端口是一致的.在FTP服务器支持的前提下,要使用此种模式,必须:在客户程序上使用sendport命令关闭FTP协议的PORT控制指令,在客户程序上使用passiv命令关闭被动传输模式
5.FTP的典型消息
125数据连接打开,传输开始
200命令OK
226数据传输完毕
331用户名OK,需要输入密码
425不能打开数据连接
426数据连接被关闭,传输中断
452错误写文件
500语法错误,不可识别的命令
二.Linux下的FTP服务器
1.linux下的FTP客户
2.linux下的FTP服务器
wu-ftpd:非商业FTP服务器程序之一,功能强大而稳定,服务器的组织较为零散,安全性较差,但稳定性好
Proftpd:安全而易于设定
vsftpd:Very Secure,是一个基于GPL发布的类UNIX系统上使用的FTP服务器的软件,具有安全、稳定(单机上支持4000个以上的并发用户同时连接)和高速(千兆以太网可达86M/s)的特点
著名的vsftpd站点:ftp.redhat.com ftp.suse.com ftp.gnome.org
3.FTP服务的使用者:本地用户(本地用户可能通过输入自已的帐号和口令登陆到自家目录,即可以下载也可以上传)、虚拟用户(FTP服务器上只用于文件传输的的帐号)和匿名用户(匿名用户可以输入anonmous或ftp和口令用户自己的E-Mail地址来进行登陆)
4.FTP客户的使用:FTP命令行客户程序的使用,ftp子命令
三.FTP服务器的配置
1.安装vsftpd
rpm -qa|grep vsftpd
插入第3张光盘
mount /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm -ivh vsftpd-1.1.3-3.i386.rpm
cd;eject
2.启动vsftpd
service vsftpd start
pstree|grep vsftpd
ntsysv
3.Red Hat Linux9中的配置文件
/etc/vsftpd/vsftpd.conf是主配置文件 /etc/vsftpd.ftpusers指定哪些用户不能访问FTP服务器 /etc/vsftpd.user_list中指定的用户在/etc/vsftpd/vsftpd.conf中设置了userlist_enable=YES且userlist_deny=YES时不能访问FTP服务器
4.vsftpd的默认主配置文件
anonymous_enable=YES允许匿名登录
local_enable=YES允许本地用户登录
write_enable=YES开放本地用户的写权限
local_umask设置本地用户的文件生成掩码为022,默认值为077
dirmessage_enable=YES
xferlog_enable=YES激活上传和下载日志
connect_from_port_20=YES启用FTP数据端口的连接请求
xferlog_std_name=vsftpd使用标准的ftpd xferlog日志格式
pam_service_name=vsftpd设置PAM认证服务的配置文件名称,
该文件存放在/etc/pam.d/目录下
userlist_enable=YES文件中所列的用户均不能访问此vsftpd服务器
listen=YES使vsftpd处于独立启动模式
tcp_wrappers=YES使用tcp_wrappers作为主机访问控制方式
例1.允许匿名用户上传
anon_upload_enable=YES允许匿名用户上传
write_enable=YES匿名用户对文件系统的上传目录具有写权限
anon_mkdir_write_enable=YES开启匿名用户的写和创建目录的权限
anon_world_readable_only=NO放开匿名用户YES览权限,即浏览此服务器中全部的内容
anon_other_write_enable=YES开放了文件更名、删除文件等权限
创建匿名上传目录mkdir /var/ftp/incoming
#chmod o+w /var/ftp/incoming/
#service vsftpd restart
测试匿名用户上传
ftp 192.168.1.57
>ls列出文件和目录列表 put install.log将本地文件传送至远程主机 mkdir newdir bye退出ftp
例2.配置基于本地用户的访问控制
限制指定的用户不能访问,而其他本地用户可访问。例如
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
使文件/etc/vsftpd.user_list中指定的本地用户不能访问FTP服务器
限制指定的用户能访问,而其他本地用户不能访问。例如
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
使文件/etc/vsftpd.user_list中指定的本地用户能访问FTP服务器
例3.配置基于主机的访问控制
Vsftpd从版本1.1.3以后内置了对TCP_wrppers支持,为独立的vsftpd提供基于主机的访问控制配置.TCP_wrappers使用/etc/hosts.allow和/etc/hosts.deny两个配置文件实现访问控制
#cat /etc/vsftpd/vsftpd.conf|grep tcp_wrappers
tcp_wrappers=YES
#cat<<! >>/etc/vsftpd/vsftpd.conf
>local_max_rate=10000
>anon_max_rate=10000
>max_per_ip=1
>!
编辑/etc/hosts.deny
ALL: ALL@ALL, PARANOID除非在 allow 文件中说明允许访问,所有服务、所有主机都被拒绝。
编辑/etc/hosts.allow
#cat<<!>>/etc/hosts.allow
>vsftpd:.smartrainig.com,192.168.1.0/24 /
>:setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
>vsftp: 202.54.15.99 foo.com对于你的客户机来说:202.54.15.99为IP地址,foo.com为允许使用ftp的一个客户机。
>vsftpd:192.168.1.0/255.255.255.0:allow
vsftpd:主机表:setenv VSFTPD_LOAD_CONF 配置文件名
vsftpd表示是对vsftpd进程实施访问控制 表示当遇到主机表中的主机访问本FTP服务器时,修改环境变量的值为指定的配置文件名.其意图是让vsftpd守护进程读取新的配置文件中的配置项来覆盖主配置文件中的配置,关于主机表的书写形式Hostname可解析的主机名 IP Address点分十进制表示的IP地址 .domain匹配一个域中的所有主机,表示在DNS域smartraining.com中的任何主机 network-number匹配IP地址的开始部分,如192.168 IPAddress/netmask定义要匹配的网络或子网,例172.19.16/20匹配从172.19.16.0到172.19.31.255
编辑/etc/vsftpd/vsftpd_tcp_wrap.conf
#cat<<!>>/etc/vsftpd/vsftpd.conf
>local_max_rate=0
>anon_max_rate=0
>max_per_ip=0
>!
#service vsftpd restart
例4.配置本地组访问的FTP服务器
本地组softgrp有3个用户soft、soft1和soft2,其中soft对FTP有读写权限,而soft1和soft2对FTP只有读的权限,可借助于本地文件系统的权限设置来实现
#vi /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
chroot_local_user=YES不允许本地用户切换到自家目录以外的目录进行浏览
#mkdir -p /var/local-ftp/softgrp
#groupadd softgrp
#groupadd softgrp
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft -G指定新用户的附加组 -d指定宿主目录 -M不建立新用户的自家目录
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft1
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft2
#passwd soft #passwd soft1 #passwd soft2
#chown soft.softgrp /var/local-ftp/softgrp
#chmod 750 /var/local-ftp/softgrp
#ll -d /var/local-ftp/softgrp
#ftp 192.168.1.57
ftp>put install.log
ftp>close
ftp>open 192.168.1.57
例5.配置vsftpd在非标准端口下提供服务
#echo "listen_port=10021">>/etc/vsftpd/vsftpd.conf
#service vsftpd restart
#ftp 192.168.1.57 10021
ftp>bye
例6.配置独立启动的基于IP的虚拟FTP服务器
配置虚拟IP地址
建立虚拟FTP的服务器目录并设置适当的权限
建立虚拟FTP的服务器的主配置文件
#ifconfig |grep -1 eth0
#ifconfig eth0:1 192.168.1.57 up
#ifconfig |grep -1 eth0:1
#mkdir -p /var/ftp2/pub
#ll -d /var/ftp2/pub
#ll -d /var/ftp2
#echo "hello">/var/ftp2/pub/test_file
#useradd -d /var/ftp2 -M ftp2
#vi /etc/vsftpd/vsftpd.conf
listen_address=192.168.1.67
#cp /etc/vsftpd/vsftpd.conf.rh9 /etc/vsftpd/vsftpd_site2.conf
#vi /etc/vsftpd/vsftpd_site2.conf
listen_address=192.168.1.234
ftp_username=ftp2
ftpd_banner=This is the alternative FTP site,and vsftpd in "standalone" mode.
#service vsftpd restart
测试
例7.配置简单的虚拟用户FTP服务器
生成虚拟用户口令库文件
配置生成vsftpd的认证文件
建立虚拟用户所要访问的目录并设置相应权限
建立配置文件
cat <<! >logins.txt
>tom
>foo
>fred
>bar
单数行为用户名,偶数行为口令
#db_load -T -t hash -f ~/logins.txt /etc/vsftpd/vsftpd_login.db使用db_load命令生成口令库文件前,要先安装db4-utils-4.0.14-20工具插入第二张光盘#rpm -ivh db4_utils-4.0.14-20.i386.rpm
#chmod 600 /etc/vsftpd/vsftpd_login.db
#vi /etc/pam.d/vsfpt.vu
类型(type) 控制(control) 模块路径(module-path) 模块参数(module-arguments)
auth required /lib/security/pam_userdb.so db=/etcvsftpd/vsftpd_login
accout required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
PAM,Pluggable Authentication Modules for Linux
类型:accout验证用户帐号是否被允许访问服务,如用户帐号口令是否已过期等 auth验证用户身份,一般为通过口令进行验证
控制:控制标记告诉PAM如何对待模块认证失败,例:required模块认证失败会导致拒绝用户认证,但在拒绝用户之前PAM仍将调用所有的其他模块
模块路径:module-path告诉PAM使用哪个模块的路径,如未给出模块路径PAM会在默认的PAM模块目录/lib/security中查找
模块参数:module-arguments用于给模块传递参数
#useradd -d /home/ftpsite virtual
#chmod 700 /home/ftpsite/
#su -virtual -c "echo hello>/home/ftpsite/test_file"
#cp /etc/vsftpd/vsftpd/conf/bak /etc/vsftpd/vsftpd.conf
#vi /etc/vsftpd/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
one_process_model=NO这个设定项目比较危险一点,当设定为 YES 时,表示每个建立的连线都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过,除非您的系统比较安全,而且硬体配备比较高,否则容易耗尽系统资源!一般建议设定为 !
chroot_local_user=YES
ftp_banner=This FTP server is virtual user only
guest_enable=YES
guest_username=virtual
pam_service_name=vsftp.vu
#service vsftpd restart
下面分别创建虚拟用户tom的配置文件
#vi /etc/vsftpd.conf
user_config_dir=/etc/vsftpd_user_conf激活对不同的虚拟用户进行不同权限配置的配置语句
#vi /etc/vsftpd_user_conf/tom
anon_upload_enable=YES
write_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
例8.配置安全的vsftpd
仅仅允许匿名用户访问anonymous_enable=YES
不允许本地用户访问local_enable=NO
关闭所有写权限 write_enable=NO
不允许匿名用户上传anon_upload_enable=NO anon_other_write_enable=NO
设置客户端连接时的端口范围pasv_min_port=50000 pasv_max_port=60000
设置匿名用户的最大传输速率限制anon_max_rate=50000
设置空闲的数据连接的中断时间data_connection_timeout=300
设置客户端空闲时的自动中断和激活连接的时间accept_timeout=60 connect_timeout=60
配置每个主机的最大连接数max_per_ip=5
配置总的并发连接数instances=60
配置禁止访问的主机 userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list
配置安全日志xferlog_enable=YES anon_world_readable_only=YES connect_from_port_20=YES
第六章 操作系统间集成(samba服务)
授课内容:SAMBA协议基础、SAMBA的守护进程及配置文件、SAMBA语法及配置、LINUX和WINDOWS系统间文件和打印共享
授课重点:SAMBA的守护进程及配置文件、SAMBA语法及配置
LINUX和WINDOWS系统间文件和打印共享
Windows主机彼此间可以利用网上邻居达到资源共享的目的,Unix系统之间也能通过NFS(Network File System,网络文件系统)实现目录共享,而Unix和Windows之间由于采用了完全不同的文件结构,无法直接实现资源共享,本文就为大家介绍一种利用Samba服务器来实现Unix与Windows间资源共享的办法。
一.SMB协议和samba简介
1.SMB协议:Server Message Block,服务信息块协议,是一个高层协议,它提供了在网络上的不同计算机之间共享文件和打印机的手段,SMB使用NetBIOS API实现面向连接的协议,该协议为Windows客户程序和服务提供了一个通过虚电路按照请求-响应方式进行通信的机制,其工作原理就是让NetBIOS与SMB协议运行在TCP/IP上,并且使NetBIOS的名字解释器让Linux机器可以在Windows的网上邻居中被看到,1992年SMB成为Open Group的国际标准,即X/Open pc机网络互连协议SMB
NetBIOS工作在OSI的网络层和传输层,而SMB工作在OSI的会话层、表示层和应用层
2.samba简介:是linux上支持SMB协议的一组软件包
在缺省情况下,Windows工作站上的Microsoft Client使用服务消息块协议
samba于1991年由奥大利亚Andrew Tridgell研发,samba的核心是两守护进程:
smbd处理到来的SMB数据包 nmbd使其它主机能浏览Linux服务器
smbd 是samba 的核心。它负责建立对话进程、验证用户身份、提供对文件系统和打印机的访问机制。nmbd实现了“network brower” 的功能。它的作用是对外发布samba服务器可以提供的服务。
3.samba软件的功能
共享Linux的文件系统
共享安装在samba服务器上的打印机
支持Windows客户使用网上邻居浏览网络
使用windows客系统共享的文件和打印机
支持windows域控制器和windows成员服务器使用
samba资源的用户进行认证
支持WINS名字服务器解析及浏览
支持SSL安全套接层协议
4.samba的应用环境
二.安装和启动samba
#rpm -qa|grep samba
插入第一张光盘
#mount /mnt/cdrom
#rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm安装包括samba服务器和客户均需要的文件
#rpm -ivh samba-2.2.7a-7.9.0.i386.rpm samba服务器端软件
#rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm安装samba客户端软件
#rpm -ivh redhat-config-samba-1.0.4-1.noarch.rpm安装samba的GUI配置工具
#cd;eject
插入第三张光盘
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm -ivh samba-swat-2.2.7a-7.9.0.i386.rpm安装Samba的Web配置工具
#cd;eject
#service smb restart
三.smb.conf的配置
[global]#global节
netbios name=rhl9设置主机的netbios名,即在2000网络邻居中看得见的机器名
workgroup=WORKGROUP主机的在的工作组名
server string=linux server主机名的字符串提示
security=user|share|Server|Domain使用用户级的安全;其中还有共享级share;Server和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证;Domain这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证
[test]test节
comment=Home Directory注解参数,在browse list中标示该条目的字符串.
path=/test共享目录的路径
guest ok=yes允许所有用户都可以guest帐户访问共享
[printers]
browseable=no指定共享的路径是否可浏览
public=yes指定是否可允许guest帐号访问
printable=yes指定是否可打印
例1.设置linux共享文件夹,如上
使用2000下的共享文件夹可以进行以下操作:
#smbclient –L //192.168.1.47此命令为查看bjxh01下的共享情况,注意在系统要求输入password时,直接回车即可进入2000,此时屏幕上列出2000下的共享。
#smbclient //192.168.1.47/aa -U username(是Windows系统的用户名)用于在linux中访问Windows2000中的共享目录,屏幕上出现MS-DOS的提示符:/时说明用户进入了aa目录。此时可以在提示符后输入“?”查找你可使用的命令。
在2000下,使用samba的共享目录/test,可以进行以下操作:查找计算机rhl9,当rhl9目标出现时,双击图标test,即进入共享文件夹test
#smbmount //192.168.1.57/test test1 此命令可把192.168.1.57下的test挂到本机的test上,同上在系统要求输入password时,直接回车,接着依次输入#cd /pub/pub、#ls,屏幕即列samba的test目录下的文件了.
!执行本地命令 ls:显示文件列表 get下载单个文件 put上传单个文件 mget批量下载文件 mput批量上传文件 mkdir建立目录 rmdir删除目录 rm删除文件
例2.当设置了user的安全等级后,将由本地系统对访问Samba共享资源的用户进行认证.认证需要一个Samba口令文件,该文件由smb passwd file参数指定,默认为/etc/samba/smbpasswd.初始情况下此文件并不存在,两种方法建立
成批添加samba帐户
#cat /etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd
#vi /etc/samba/smbpasswd
#chown root.root /etc/samba/smbpasswd
#chmod 500 /etc/samba
#chmod 600 /etc/samba/smbpasswd
#ll -d /etc/samba
#smbpasswd user1本地系统用户帐号必须事先已存在
添加单个的samba帐户smbpasswd -a user1
#smbadduser user1:user1已存在用户的用户名和密码
例3.使用符号链接组织本地共享资源
#vi /etc/samba/smb.conf
[test]
comment=local resource
path=/test
public=yes
writeable=yes
#ln -s /usr/share/doc doc
例4.为所有用户配置只读共享和读写共享
#vi /etc/samba/smb.conf
[test]
comment=local resource
path=/test
read only=no|yes指定共享的路径是否为只读
public=yes指定是否可以允许guest帐户访问,等价于guest ok=yes
例4.为指定用户和组配置samba共享
#useradd fred
#passwd fred
#smbpasswd -a fred
#mkdir -p /var/samba/fred
#chown fred.fred /var/samba/fred
[test]
comment=local resource
path=/test
valid users=fred ben
public=no
writeable=yes
#useradd tom #passwd tom #useradd ben #passwd ben #smbpasswd -a tom #smbpasswd -a ben #mkdir /var/samba/tomben #chmod 707 /var/samba/tomben #vi /etc/samba/smb.conf
[test]
comment=tom&ben's Service
path=/var/samba/tomben
valid users=tom ben,@g1
public=no
writeable=yes
create mask=0707设置对新创建的文件的正确权限。create mask 定义新创建的文件将允许哪些权限,使用二进制 /"and/" 操作将提供的八进制数与所需的权限结合起来。将导致不在掩码中的任何许可权都从新文件的权限中删除。 例默认创建文件的权限是744and0707=704
//write list=@g1
NFS文件系统
一.NFS的概念
1.NFS概念:Network File System,是主机间通过网络进行文件共享的网络协议,最早由Sun公司提出,多用于Unix操作系统,它允许用户将远程主机的文件系统看做好象是本地文件系统一样,并且是可安装的,可读的和可写的。系统使用与本地文件系统一样的命令mount把NFS文件系统挂接在本地文件树结构上。
2.NFS术语
拥有实际的物理磁盘并且通过NFS将这个磁盘共享的主机叫NFS文件服务器,通过NFS访问远程文件系统的主机叫NFS客户机。一个NFS客户机可以利用许多NFS服务器提供的服务。相反,一个NFS服务器可以与多个NFS客户机共享它的磁盘。一个共享了部分磁盘的NFS服务器可以是另一个NFS服务器的客户机。
NFS服务器输出的目录叫远程资源并且通常写作:host:pathname 其中host是文件服务器的名字而pathname是服务器上被输出目录的绝对路径。
远程资源被安装到客户机上的那个目录叫安装点(mount point)。
3.NFS输入输出规则
规则一:NFS输出目录,服务器输出的是目录而不是文件系统。
规则二:如果服务器已经输出了一个目录,如/usr/local,并且有一个文件系统安装在/usr/local
/extra,那么/usr/local/extra的内容在客户端看不到,除非服务器明确地输出了它,或客户机明确地安装了它。
规则三:客户机可以安装一个输出目录的子目录,前提是此子目录不是另一个文件系统。
规则四:一个主机不可以将一个输入的目录再次输出。例如,如果一个主机通过NFS安装/usr/local,它就不能将/usr/local输出给另外的主机。
规则五:一个已经输出目录的子目录不可以再输出,除非子目录在一个不同的文件系统上。还是举个例子:假设你要按只读方式输出根文件系统的跟(/)目录,但是又要按读写方式输出/tmp目录。你不可能做到这一点,除非/tmp被安装在不同于跟的文件系统上
二.NFS安装
只需安装两个软件包即可,通常被默认安装
#rpm -q nfs-utils portmap
插入linux的第一张光盘
#mount /mnt/cdrom #cd /RedHat/RPMS #rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm #rpm -ivh portmap-4.0-54.i386.rpm
portmap软件包中的portmap服务,为NFS提供RPC服务的支持.nfs-utils软件包中提供了NFS服务器程序和相应的维护工具,#rpm -ql nfs-utils
支持RPC的概念:使进程产生的调用看起来象是一个普通的调用,而真正的执行是在其他进程中——也许是一个远程系统中的进程。各种RPC执行协议都朝着一个共同的目标在发展,那就是用隐藏执行细节来简化进程间通信的复杂性。
RPC机制的核心概念就是将函数调用产生的数据串行化到一个顺序流中,然后在连接接收端对它进行重组。这两种行为同步发生,就好象传统的过程化编程一样。RPC客户端进程发出一个看似标准的函数调用,但是,这个调用不会在本地执行,调用参数被打包并传递到一个远程的执行环境当中,在那里它们再被传入真正的执行函数当中。在完成函数执行后,执行结果又被串行化传回客户端,再由客户端函数传给调用者。
三.NFS的配置
1.服务器的配置:NFS服务器的配置文件exports,export文件在目录/etc/下,用于配置NFS服务器所提供的目录共享.exports文件默认设置为空,这也是出于安全性的考虑,exports(输出)文件
要输出的共享目录 客户端主机地址(设置选项)
/home/share *(sync,ro)
共享目录:设置系统中需要为共享的目录路径
客户端主机地址:例192.168.1.19 abc.com指定域名的主机 192.168.1.0/24指定网段中的所有主机 *.abc.com指定域中的所有主机 *所有主机
设置选项:sync设置NFS服务器同步写磁盘(async:资料会先暂存于内存当中,而非直接写入硬盘),ro设置输出的共享目录只读(与rw不能共同使用)
2.NFS服务器的启动与停止
启动NFS服务器
#service portmap start
#service nfs start
查询NFS服务器状态:#service portmap status #service nfs status
设置NFS服务器的自动启动状态
#chkconfig --list portmap|nfs查看nfs服务的自动启动状态
#chkconfig --level 35 portmap|nfs on指定运行级,由数字 0 到 7 构成的字符串
3.showmount命令:查询NFS服务器的共享目录状态
#showmount -h显示showmount命令的联机帮助
#showmount [NFS服务器主机地址]:显示连接到指定NFS服务器的所有主机
#showmount -e [NFS服务器主机地址]显示指定NFS服务器的输出目录列表
#showmount -d [NFS服务器主机地址]显示指定NFS服务器中已被客户端连接的所有输出目录
#showmount -a [NFS服务器主机地址]显示指定NFS服务器的所有客户端主机及其所连接的目录,例#showmount -a
4.NFS客户端配置
#mount 192.168.1.57:/home/public /mnt/nfshare
#mount |grep nfs查询该目录的挂载状态
#umount /mnt/nfshare卸载卸NFS共享目录
第七章:X Windows的使用
授课内容:X WINDOWS概述、KDE桌面环境、GNOME桌面环境、LINUX作为拨号客户端应用
授课重点:KDE桌面环境、GNOME桌面环境
一.XWindow简介:
1.概念:X Window由斯坦福大学的W试验性视窗系统发展而来,1984年在麻省理工学院开发的
1990年1月推出X11R4版,1991年8推出X11R5版,1994年4月推出X11R6版
X Window是强大的图形操作系统环境,这个图形界面有大约3500个文件、200个程序、超过500种的字体,以及500多个图形,它包括窗口管理程序,还包括游戏、图形应用程序、编辑工具和许多其他的应用程序,是很多程序的集合,是用XView或Motif这些工具所编写的
2.X Window的特点
基于C/S模式:这是X系统的最大特色
网络透明性:程序可以在不同的显示器下执行而无须手新编译和连接
平台无关性:X Window可以安装在各种不同系统平台上
风格多样性:可以支持多种不同风格的用户界面
二.X Window运行原理
X Window只是在系统内核上运行的一个应用程序而已,它是一种C/S的模式,服务器用于显示客户的应用程序,位于硬件和客户机之间,它跟踪所有来自输入设备比如键盘,鼠标的输入动作,然后再由X最低层的界面程序X库提供存取X通信协议的能力,送回客户机.其运行分为4个层次
1.最底层的是X Server,是一种服务程序,它提供了图形界面的驱动,主要负责处理终端的硬件设备,如键盘、鼠标、屏幕和执行绘图作业等.
2.上面的一层是用于网上通信的网络协议,即X协议,X协议是X Window系统中各个元件之间沟通所用的标准,主要负责X客户机和X服务器的沟通.
3.再往上一层Xlib的底层函数接口,它是XWindow系统的程序界面,程序设计只要会使用Xlib就可以实现显示窗口、图形或响应事件等功能
4.最顶层就是管理窗口的窗口管理器(Window Manager)它是用户的操作界面,在这一个层的软件是用户经常接触的,比如fvwm,AfferStep,Enlightment
三.GNOME的使用
1.GNOME是GNU Network Object Model Environment的简称,GNOME是一个友好的桌面环境,GNOME包括一个面板(用于开始应用程序和显示状态)、桌面(用来放置应用程序和桌面).一系列的桌面工具和应用程序,以及一系列的协议,它是一个漂亮的、功能强大且高效的管理器,效高而且稳定性好
2.GNOME的运行界面
面板:底部的长条区域,包括一些有用的面板程序和主菜单
主菜单:是一个包含应用程序的菜单
桌面:屏幕的其他部分称为桌面,可把经常使用的程序或文件、目录放在桌面上,并可以通过双击进入桌面上的应用程序
3.应用程序及其运行
应用程序:文件管理器,可以方便地管理自己的目录和文件
运行应用程序:用主菜单找到事先载入的应用程序,双击桌面上的快捷图标运行应用程序,在GNOME文件管理器双击执行程序,在主菜单中选择Run命令来运行程序例gedit
4.窗口和鼠标的基本操作
窗口的操作:左上解用于改变窗口状态的菜单按钮,右上解最小化(窗口在桌面上消失,系统将其放置在面板的任务栏里)、最大化和关闭按钮
鼠标的使用:左键,用于选中和拖动目标.右键提供一个关于选中目标和各菜单项,中键用于粘贴操作或是移动目标
5.退出GNOME:
使用主菜单中的退出命令Logout,用组合键退出在X系统不能正常工作时,可以同时按下Ctrl+Alt+Backspace三键退出
四.GNOME的面板和桌面
1.面板是GNOME界面和行为的核心
主菜单:运行事先载入的应用程序
快捷工具栏按钮启动相应的应用程序,预设的快捷工具按钮有系统帮助、控制面板、Xterm、Netscape浏览器
任务栏:任务栏上可以看到当前桌面正在运行的所有应用程序
桌面切换工具,这个工具被分成4个象限,分别代表了4个可以利用的虚拟桌面,每个虚拟桌面都有自己的程序窗口
时钟:显示当前的系统时间
隐藏面板按钮
2.面板的基本操作
移动面板、添加面板、向面板中添加小程序Applet是指可以在面板上运行的程序、在面板中添加快捷工具按钮
五.GNOME的文件管理器
1.简介:GNOME的文件管理器是一个让用户方便的查找、打开、移动、复制和删除文件的强大而有效的图形化工具
启动文件管理器:右击/新建窗口或双击自家目录文件夹
定位与浏览:commands/Find File