1.nfs共享
具体数值:
Package: nfs-utils
Daemons: nfsd, rpc.mountd, rpc.statd, lockd, rpc.quotad
Scripts: nfs(nfsd,rpc.mountd,rpc.quotad), nfslock(rpc.statd,lockd)
Ports: 2049/tcp and 2049/udp (nfsd), others semi-random (found through portmap (111/tcp and 111/udp)
Configuration: /etc/exports, /etc/sysconfig/nfs
本机已经装了nfs-utils所以直接启动就可以了
附:
要说nfs就必须说portmap和rpcinfo了
rpcinfo实用工具显示那些使用portmap注册的程序的信息,并向程序进行RPC调用,检查它们是否正常运行。有关portmap的更多信息,请参见《基础篇》10.4.8节。rpcinfo实用工具可以带有以下选项和参数:
  rpcinfo- p [host]
  rpcinfo [-n port] -u - t host program [version]
  rpcinfo -b -d program version
  -p(probe,探测)列出所有在host用portmap注册的RPC程序,如果没有指定host,就查找本机上的RPC程序。
  -n (port number,端口号) 根据-t或者-u,使用编号为port的端口,而不是由portmap指定的端口号。
  -u (UDP) UDPRPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应。

  -t (TCP) TCPRPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应。
  -b (broadcast,广播) 向程序program的version版本进行RPC广播,并列出响应的主机。
  -d(delete,删除)将程序program的version版本从本机的RPC注册表中删除。只有具有root特权的用户才可以使用这个选项。


设置挂在点在/etc/exports中配置,例如:
/data 172.16.131.1
也可为ip段(如果路径中有空格,必须用单引号引起来,否则会被判定为两个目录)
/data 172.16.0.0/16
Options有
ro只读挂载
rw读写挂在
async异步
sync同步
root_squash如果是别的电脑root用户挂在的话则转成普通用户
no_root_squash不转成普通用户,直接予以root权限
all_squash全部转为普通用户
例:
虚拟机A172.16.131.1
vim /etc/exports
/data 172.16.0.0/16(rw,no_root_squash)
然后重启服务
虚拟机B172.16.19.1
mount -t nfs 172.16.131.1:/data /qinqin
也可写进/etc/fstab中实现开机挂载

nfs锁
    读锁,共享锁
 写锁,独占锁

另:如果修改了/etc/exports而又不想重启服务,可以使用exportfs命令
exportfs
        -a:全部挂载(或卸载)/etc/exports文件内的设定。
        -r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容
        -u:卸载某一目录。
        -v:在export时将共享的目录显示在屏幕上。
附:
showmount命令显示host参数指定的机器上已远程安装文件系统的所有客户机的列表.host参数上的mountd守护程序维护这些信息./etc/rmtab 文件保存这些信息以防服务器崩溃.Host参数的缺省值是由hostname命令返回的值.
        -a 以hostname :directory 格式显示所有远程客户机安装,其中hostname是客户机的名称,directory是远程安装的目录路径名.
        -d 仅列出客户机远程安装的目录.
        -e 显示导出目录的列表.
  
2.samba软件实现(windows与linux)共享
 smbd(文件共享)/etc/rc.d/init.d/smb
 nmbd(NetBIOS)
 
首先在windows(172.16.132.1)上建立test文件夹,并设置共享
然后在linux中使用smbclient命令查看
smbclient -L 172.16.132.1

linux文件共享_nfs


可以看到我刚建立的test目录(乱码是因为是中文的原因)
smbclient命令:
  -B<IP地址>   传送广播数据包时所用的IP地址。
  -d<排错层级>   指定记录文件所记载事件的详细程度。
  -E   将信息送到标准错误输出设备。
  -h   显示帮助。
  -i<范围>   设置NetBIOS名称范围。
  -I<IP地址>   指定服务器的IP地址。
  -l<记录文件>   指定记录文件的名称。
  -L   显示服务器端所分享出来的所有资源。
  -M<NetBIOS名称>   可利用WinPopup协议,将信息送给选项中所指定的主机。
  -n<NetBIOS名称>   指定用户端所要使用的NetBIOS名称。
  -N   不用询问密码。
  -O<连接槽选项>   设置用户端TCP连接槽的选项。
  -p<TCP连接端口>   指定服务器端TCP连接端口编号。
  -R<名称解析顺序>   设置NetBIOS名称解析的顺序。
  -s<目录>   指定smb.conf所在的目录。
  -t<服务器字码>   设置用何种字符码来解析服务器端的文件名称。
  -T<tar选项>   备份服务器端分享的全部文件,并打包成tar格式的文件。
  -U<用户名称>   指定用户名称。
  -W<工作群组>   指定工作群组名称。
 
在虚拟机B(172.16.19.1)上挂载windows共享的目录
mount -t cifs //172.16.132.1/test /mnt

smbclient //172.16.132.1/test直接进入交互式页面(可以输入help,查看详细可用指令)
使用samba共享linux文件给windows
新建个目录/share
然后修改samba的配置文件/etc/samba/smb.conf
在其末行添加
[tools]
    comment = some tools(注释)
    path = /data(路径)
    public = yes(公开的,来宾帐号也可访问)和guest ok = yes相同
    writable = yes(可写)与read only = no相同
    browseable =yes(客户端可浏览)

linux文件共享_nfs_02


然后重启smb服务,即可通过windows访问该共享了,会提示使用用户密码,这里用户是linux系统的用户
但是密码确实smb的密码,该文件在/etc/samba/passdb.db
使用命令
smbpasswd -a redhat为redhat用户设定密码
     -a 添加一个用户密码到smb中
    -d 暂时禁用一个用户
    -e 启用一个用户
    -x 删除一个用户
重启服务
然后便可登录进去了(实现上传的话,请确定用来登录的用户是否有对linux系统共享的目录的写权限,也可用过[tools]中的另一个选项write list = redhat即可,也可为多个用户,用空格隔开)

linux文件共享_samba_03

制定登录的用户和密码
使用credentials=/path(存放用户名密码的路径)
从别的linux制定用户名密码挂载挂载
//172.16.131.1/tools /mnt cifs credentials=/path 0 0

附:可通过全局[global]选项限定网卡,和ip
interfaces = lo eth0
host allow = 127. 172.16.
   
samba还有图形化界面,即samba-swat
说道这个就得提到超级守护进程xinetd(这两个包可以通过rpm serech下载到)

xinetd:/etc/xinetd.d里面就有我们要用到的swat,可以看到
将其中的only_from改为172.16.0.0/16,disable表示禁用,和chkconfig swat off效果一样,将其改为no启用swat

linux文件共享_samba_04


然后重启xinetd服务
打开网页http://172.16.131.1:901即可查看(以root用户身份登录)

linux文件共享_nfs_05