当前位置: 首页 >> Linux >> 【服务器】linux下的文件服务器 >> 正文

【服务器】linux下的文件服务器

2015年01月22日 11:48:40    作者:Jiaozn    分类:Linux     评论(0)

    对于一个真实的运行环境而言,配置和启用文件服务器都是很有必要的。把重要的数据集中存储和管理,其安全性显然比分布存储要可靠得多。为此,建议系统管理员配制和启用文件服务器作为基本的管理策略。

根据使用的方式来看,可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。ftp的客户可以是任意平台,samba是专门针对windows客户,而NFS则是面向linux/unix用户的。下面是三种服务器的对比情况:

服务器名称

用户客户端平台

使用范围

服务端口

FTP

Windows/linux/unix/macOS

发布网站,文件共享

Tcp/21

Samba

Windows

文件共享(网上邻居)

Tcp/445,tcp/139

NFS

Linux/unix

网站发布,文件共享(mount

Tcp/2049

接下来我们就逐个来配置和运行这些服务器。

NFS服务器

NFS是SUN Microsystem公司开发的网络文件系统,它是一种基于远程过程调用(RPC)的分布式文件系统架构。与Samba相比较,NFS的数据吞吐能力更强。

1、用命令 # rpm –qa | grep nfs检查软件包NFS是否安装 ,如果输出没有输出,表明没有被安装,请自行安装之。

2、配置NFS服务器。用任何文本编辑器配置文件/etc/exports,来确定需要给客户共享的目录。它的基本格式为 DirectoryHost(options)# comments ,这3个字段/列要在一行,directory与host(options)之间要有间隙,# comments 可有可无。主机选项主要是给与挂接用户什么样的权限。目录directory表示要共享出去的目录,值得注意的是,在启用NFS服务以前,系统管理员应该仔细一些,比如不小心共享了根目录/,并且给与用户读写权限,这是十分糟糕的问题。因此,尽可能少的共享目录和赋予较小的访问权限。主机名host是一个很灵活的项目,可以是单个的主机名称(由/etc/hosts得到),主机ip地址,由域名服务器解析的主机名称,IP网络---网络号和子网掩码中间用“/”连接,NIC等。下面列举一个例子。

/home/serysery(r,w)#把目录/home/sery共享给主机sery,并且主机对目录#/home/sery有读写权限

/tmp192.168.100.18(ro)#主机192.168.100.18对目录/tmp具备只读共#享权限

/media/cdrom192.168.100.0/255.255.255.0(r,o) #整个网络有读取挂接在NFS

#服务器上的光驱光盘的读取权限

3、启用NFS服务。分两步:首先启用portmap,然后启用NFS服务。# service portmap start;

# service nfs start。其中portmap的功能是启用远程过程调用,有时启用NFS不能成功,不妨检查一下portmap服务是否启动(# ps aux | grep portmap)。

4、在客户端挂接NFS共享出来的目录。先在客户端创建一个挂接点,如 # mkdir /mnt/nfs ,而后使用命令把nfs服务器共享出来的目录挂接上,以第2步那个共享为例,我们挂接目录 /tmp , # mount –t nfs 192.168.100.100:/tmp/mnt/nfs //假定nfs服务器的ip地址是192.168.100.100。

5、访问NFS共享资源。接上步,改变文件目录 # cd /mnt/nfs就方便地实现了对nfs服务器目录/tmp的远程访问。

6、卸载NFS文件系统。在客户端执行命令 # umount /mnt/nfs 就卸下了第4步挂接的NFS文件系统。

7、其他事项。前面我们描述了在客户段用手工挂接NFS文件系统的操作,有的场合可能需要自动实现对NFS的挂接操作;修改文件/etc/fstab,把挂接项插入进去就可以了。对一个有较多连接的NFS服务器而言,有这样一个问题---用户在使用完挂接的文件系统后,并不会总记得卸载掉NFS挂接,这必然会增大NFS服务器的维护工作量以及白白占用有限的系统和网络资源;解决这个问题的办法是使用自动挂接器(automounter)。关于自动挂接器属于性能调优的范畴,在此不做描述。

Samba服务器

这个世界既非只有linux/unix,也不是由microsoft windows 独霸天下的格局。也许出于linux/unix与windows既竞争又共存的事实,人们开发了 linux给windows用户提供文件共享的工具Samba,这应该算得上linux的开放精神吧!

1、检查是否安装samba软件包。# rpm –qa | grep smb ,如果没有则自行安装samba。

2、修改配置文件/etc/samba/smb.conf。早期的linux版本的配置文件smb.conf的安全选项“security=share”,这个默认值是个安全隐患,不过现在流行的linux版本的安全选项的默认值是“security=user”。如果只想用户对他的目录拥有只读权限,就把选项“writeable=yes”改成“read only=yes”。其他的选项根据自己的要求更改即可。对于一般的应用而言,基本上不用修改这个文件。

3、添加系统账户。由于smb的访问是使用系统账号进行的,因此添加账号是必不可少的。这个比较简单,用命令 # useradd sery , # passwd sery,就可以依次添加若干系统账号。

4、建立Samba用户密码文件。虽然samba的用户是系统用户,但出于安全考虑,samba用户的密码并非创建系统用户时设定的用户密码。为了生成smb所需的密码,应该进行下面的操作:

# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

# smbpasswd sery//为系统用户设置smb口令

# chown root.root/etc/samba/smbpasswd

# chmod 600 /etc/samba/smbpasswd//不准别的用户访问

5、启用Samba服务器。我比较喜欢用 # service smb start 这种方式。

6、检查服务是否正常启动。# service smb status 或者 # ps aux | grep smb。

7、windows客户端访问 Samba服务器共享目录。在windows环境下,右键点击“网上邻居”图标,然后左击“搜索计算机”,把Samba服务器的IP地址填写在“计算机名”搜索栏,点击立即搜索。找到后双击图标,然后输入在Samba服务器上预先设定的用户名和密码,就能合法访问Samba服务器设定的共享资源。为了方便使用,可以把Samba服务器提供的共享目录映射成本地驱动器。

8、其他。上述配置的samba服务器,用户的访问共享目录是系统账号的主目录。要想把共享目录设置到其他位置,修改Samba 的配置文件/etc/samba/smb.conf文件即可。

FTP服务器

在linux 环境下,有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd。因为安全方面的原因,vsftpd目前已经牢牢的占据了主导地位。从字面上我们就可以理解vsftpd所具备的主要特征---very secure(非常安全之ftp)。资料表明:1、使用ASCII方式下载文件,在1G以太网上的下载速度可以达到86M/s。2、vsftpd可以支持15000个并发用户的访问。

1、检查是否安装vsftp包。# rpm –qa | grep vsftpd。如果没有则安装它。

2、修改配置文件。Vsftpd的配置文件为/etc/vsftpd/vsftpd.conf,如果不打算提供匿名访问的话,需要修改配置文件/etc/vsftpd/vsftpd.conf的项“anonymous_enable=Yes”为“anonymous_enable=No”。

3、启用vsftpd服务。#service vsftpd start。

4、客户端连接访问。可以是专用的ftp客户端工具,也可以使用浏览器。用工具访问vsftpd服务器的速度要比用浏览器快很多。

5、vsftpd服务器的用户。Vsftpd服务器支持三种类型的拥护:本地用户(拥有系统账号)、虚拟用户(guest)、匿名账号;系统管理员应该根据安全需求来确定vsftpd服务器的用户访问策略。

TFTP服务器

Tftp服务器主要用于远程系统引导或远程备份象CISCO这样的网络设备的配置文件,例如tftp服务器与DHCP、FTP服务器相配合,就可以成为一组linux安装服务器,以利于进行大规模的网络安装linux操作系统。

与上文提及的几种服务器不同,tftp服务器是由超级守护进程xinetd运行的。这使的tftp服务器的配置操作比独立运行守护进程的服务器(如vsftpd)简单很多。一般情况下,只要修改文件/etc/xinetd.d/tftp,把“disable =yes”改成“disable =no”,而后保存重新启动超级守护进程xinetd , # service xinetd restart 。

通过上面的实践,尽管我们已经能够顺利的完成各种文件服务器的搭建和运行,也基本上可以满足基本的用户服务需求,也许在实际的工作中,可能有更多的性能或安全要求。一个明显的例子就是,如果一个用户的服务器使用的磁盘空间没有做任何限制,那么他完全有可能把他从internet下载的连续剧上传到他自己的文件服务器目录,从而把有限空间的硬盘塞满。另外一个就是目录和文件的权限问题,特别是以本地账号(系统账号)访问文件服务器的情况,如果授权不当,将给系统管理带来极大的麻烦。

Linux所倡导的自由精神也同样在这些服务器的配置操作中得以体现。可以通过修改这些服务器的配置文件来满足特定的需求,而且这些修改是非常灵活的。比如vsftpd服务器的配置文件/etc/vsftpd/vsftpd.conf就有很多项目可以修改。

附表:几种文件服务器的维护

服务器名称

启动脚本

守护进程

配置文件

NFS

/etc/init.d/nfs

/etc/init.d/nfslock

/usr/sbin/rpc.nfsd

/usr/sbin/rpc.mountd

/etc/exports

Samba

/etc/init.d/smb

/etc/init.d/winbind

/usr/sbin/smbd

/usr/sbin/nmbd

/etc/samba/smb.conf

vsftpd

/etc/xinetd.d/vsftpd

/usr/sbin/vsftpd

/etc/vsftpd/vsftpd.conf

人最近通过学习,粗略的了解了LINUX下的文件共享服务器配置的方法,希望在这里能和大家分享一下:

1.通过NFS服务实现单纯linux主机环境下的文件共享:

(1)首先确认服务器上是否安装了nfs-util以及portmap两个软件 (前者为此项服务提供管理工具,后者提供RPC远程调用)。使用rpm -qa | grep nfs-util以及rpm -q | grep portmap验证就可以了。

(2)如果已经安装了这两个软件的话,修改位于/etc/exports配置文件,添加共享目录,以及共享权限,例格式如下:

         /home/share      192.168.1.0/24(sync,rw)

此处,sync为磁盘同步读写,避免造成不必要的数据丢失;rw为访问的权限,为读写权,还可以设置为ro只读权限。

若没有安装以上软件的话,先使用rpm命令安装再按以上步骤修改配置文件就可以了。

(3)使用service nfs start以及service portmap start启用两个服务

(4)发布共享目录,使用exportfs -rv命令发布。

(5)在客户端使用showmount -e ip(此处ip为nfs服务器的ip)。目的是为了查看是否应经发布成功,然后使用mount -t nfs 192.168.1.1:/home/share /mnt/将共享目录挂载在/mnt/目录,此处的目录/mnt/可以为其他的目录,只要是空目录就可以。

这样通过上述的设置就可以在客户端访问到共享目录了,如果希望开机自动挂载的话还需要修改/ect/fstab文件在这里就不做介绍了。

2.通过samba服务器实现linux和windows之间的文件共享:

   因为在linux中smb服务默认安装,所以在这里不介绍smb的安装过程了。

(1)修改配置文件/ect/samba/smb.conf,将其中的security = user修改为security = share注意中间有空格隔开。

(2)将最后的[myshare]下的注释全部取消,分别修改path = /home/share;valid users = nobody;public = yes。注意此处的空格!

(3)回到/home/下新建share目录作为共享目录。

(4)启动smb服务,使用service smb start命令。

完成后就可以使用windows主机访问linux文件服务器了。


除非注明,发表在“Jiaozn的博客”的文章『【服务器】linux下的文件服务器』版权归Jiaozn所有。 转载请注明出处为“本文转载于『Jiaozn的博客』原地址https://jiaozn.com/reed/91.html

评论

发表评论   

昵称*

E-mail*

网站