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
可以看到我刚建立的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(客户端可浏览)
然后重启smb服务,即可通过windows访问该共享了,会提示使用用户密码,这里用户是linux系统的用户
但是密码确实smb的密码,该文件在/etc/samba/passdb.db
使用命令
smbpasswd -a redhat为redhat用户设定密码
-a 添加一个用户密码到smb中
-d 暂时禁用一个用户
-e 启用一个用户
-x 删除一个用户
重启服务
然后便可登录进去了(实现上传的话,请确定用来登录的用户是否有对linux系统共享的目录的写权限,也可用过[tools]中的另一个选项write list = redhat即可,也可为多个用户,用空格隔开)
制定登录的用户和密码
使用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
然后重启xinetd服务
打开网页http://172.16.131.1:901即可查看(以root用户身份登录)