注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

autofs & NFS,SAMBA  

2009-12-18 22:59:32|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Autofs 具体配置:
1. 一般情况下autofs service 已经自动安装并默认设定为自动启动,可以用下面的方式确认
   chkconfig --list autofs

   如果没有安装,就自己装上;软件包名字 autofs-x.x.x.x.i386.rpm

2. 修改/etc/auto.master, 关闭下面一行的注释(当然如果你熟悉,完全可以新建一个自己的Autofs config file)
   /misc    /etc/auto.misc --timeout=60
3. 修改/etc/auto.misc ,添加你自定义的、想要automount的内容
   cd     -fstype=iso9660,ro,nosuid,nodev                       :/dev/cdrom 
   nfs    -fstype=nfs,rw,soft,rsize=8192,wsize=8192             10.10.10.10:/home/share
   samba1  -fstype=smbfs,username=[username],password=[password] ://server/share

   为了安全起见,mount smbfs 还可以这样用:
   samba2  -fstype=cifs,credentials=/etc/smb.auth                ://server/share
   /etc/smb.auth 内容很简单,分别输入username=[username],password=[password],各占一行;并将权限改为600

   该文件内已经有一些默认的挂载目录,可当作操作范例。文件每一行都说明某一个文件系统如何被挂接。每一行的第二个值-fstype是一个可选项,用来表明所挂接的文件系统的类型和挂接选项,在mount命令中能使用的挂接选项同样适用于-fstype
4.  配置完成后,重启服务
     service autofs restart
5.  使用Autofs
     切换目录到你定义的挂载点,如输入 cd /misc/nfs 即可使用。



---------------------------------------
本文主要介绍nfs服务器以及客户端的安装以及使用,和autofs的使用,中间还会简单介绍tcpd的一些情况
1.安装
服务器:
# aptitude install  nfs-common nfs-kernel-server portmap
客户端:
# aptitude install  nfs-common portmap
启动服务
# /etc/init.d/nfs-kernel-server start
停止服务
# /etc/init.d/nfs-kernel-server stop
重启服务
# /etc/init.d/nfs-kernel-server restart

2.创建共享目录
# mkdir /home/share
# chown nobody.nogroup /home/share

3.创建或修改/etc/exports 配置文件
这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:
[共享的目录] [主机名或IP(参数,参数)]
其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

下面是一些NFS共享的常用参数:
ro                      只读访问
rw                      读写访问
sync                    所有数据在请求时写入共享
async                   NFS在写入数据前可以相应请求
secure                  NFS通过1024以下的安全TCP/IP端口发送
insecure                NFS通过1024以上的端口发送
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide                    在NFS共享目录中不共享其子目录
no_hide                 共享NFS目录的子目录
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check        和上面相对,不检查父目录权限
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash           保留共享文件的UID和GID(默认)
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas           root用户具有根目录的完全管理访问权限
anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID

配置文件/etc/exports内容如下:
$ cat /etc/exports
/home/share 192.168.102.15(rw,sync) *(ro)
配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。

重启NFS服务
# /etc/init.d/nfs-kernel-server restart

在客户机上查看NFS的资源共享情况
# showmount -e 192.168.102.47
Export list for 192.168.102.47:
/home/share (everyone)

4.使用mount命令即可挂栽共享资源
在客户机 192.168.102.15 上加载共享资源
# mount 192.168.102.47:/home/share /mnt
# cd /mnt
# echo '12345'> 123
即可发现对服务器共享目录可写
# umount /mnt
在客户机 192.168.102.61 上加载共享资源
# mount 192.168.102.47:/home/share /mnt
# cd /mnt
# ls
123
# touch 321
touch: cannot touch `321': Permission denied
# echo '123455' >123
-bash: 123: Permission denied
即可发现对服务器共享目录只有读取权限,
这与我们在服务器端的权限设置是相符的。
是不是我们每次修改了配置文件都需要重启nfs服务呢? 这个时候我们就可以用exportfs命令重新扫描/etc/exports文件,来使改动立刻生效。
比如:
# exportfs -au 卸载所有共享目录
# exportfs -rv 重新共享所有目录并输出详细信息
exportfs 命令有软件包 nfs-kernel-server 提供,详细的 exportfs 命令说明请查看:
man exportfs
当完成资源共享, 我们如何知道发布了哪些权限呢?这时我们可以查看 /var/lib/nfs/etab 文件,它是有 exportfs 命令根据 /etc/exports 生成的。
# cat /var/lib/nfs/etab
/home/share     192.168.102.15(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,
subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
/home/share     *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,subtree_check,
secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)

现在我们来查看服务器上有关NFS服务器启动了哪些端口:

tonybox:/home/share# lsof -i|grep rpc
portmap   1931 daemon    3u  IPv4   4289       UDP *:sunrpc
portmap   1931 daemon    4u  IPv4   4290       TCP *:sunrpc (LISTEN)
rpc.statd 3206  statd    3u  IPv4   7081       UDP *:1029
rpc.statd 3206  statd    6u  IPv4   7072       UDP *:838
rpc.statd 3206  statd    7u  IPv4   7085       TCP *:1031 (LISTEN)
rpc.mount 3483   root    6u  IPv4   7934       UDP *:691
rpc.mount 3483   root    7u  IPv4   7937       TCP *:694 (LISTEN)

5.iptables 防火墙
如果我们的NFS服务器在防火墙后边,则需要在防火强策略中加入如下策略:
-A INPUT -p tcp -m state --state NEW -m multiport --dport 111,2049,4001,32764:32767 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m multiport --dport 111,2049,4001,32764:32767 -j ACCEPT

6.使用 /etc/hosts.allow和/etc/hosts.deny 控制客户端的访问
/etc/hosts.allow和/etc/hosts.deny这两个文件是tcpd服务器的配置文件。
tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件的格式如下:
#服务进程名:主机列表:当规则匹配时可选的命令操作
server_name:hosts-list[:command]
/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP。
如果两个文件的配置有冲突,以 /etc/hosts.deny为准。下面是一个/etc/hosts.allow的示例:
ALL:127.0.0.1         #允许本机访问本机所有服务进程
smbd:192.168.0.0/255.255.255.0     #允许192.168.0.网段的IP访问smbd服务
ALL关键字匹配所有情况,EXCEPT匹配除了某些项之外的情况,
PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。
比如,在服务器的 /etc/hosts.deny 文件作如下设置:
# cat /etc/hosts.deny
portmap:192.168.102.15
然后在客户机192.168.102.15上加载共享目录
#  mount 192.168.102.47:/home/share /mnt
mount to NFS server '192.168.102.47' failed.
我们发现现在已经无法加载共享目录的。

7.资源使用
除了使用mount的命令手动挂栽共享资源,还可以使用其他方法实现共享资源的自动挂栽:
启动时自动挂栽
修改客户机的 /etc/fstab文件,加入类似如下行:
192.168.102.47:/home/share      /mnt    nfs     rsize=8192,wsize=8192,timeo=14,intr
重启客户机,即可实现系统启动时自动挂栽共享资源

8.使用 autofs 实现资源挂栽
autofs 使用 automount 守护进程来管理你的挂载点,它只在文件系统被访问时才动态地挂载它们。
autofs 查询主配置文件 /etc/auto.master 来决定要定义哪些挂载点。
然后,它使用适用于各个挂载点的参数来启动 automount 进程。
主配置中的每一行都定义一个挂载点,然后用单独的配置文件定义在该挂载点下要挂载的文件系统。
安装 autofs

# apt-get install autofs
修改/etc/auto.master文件, 加入如下内容:
/mnt      /etc/auto.nfs

创建 /etc/auto.nfs 文件内容如下:
nfs -rw,soft,intr,rsize=8192,wsize=8192 192.168.102.47:/home/share

这样,每当您进入 /mnt/nfs 目录时,系统都会尝试将服务器的共享资源挂栽到该目录上。
应当注意nfs目录是由 automount 动态地创建的,它不应该在客户机器上实际存在。

tonybox2:/# cd /mnt
tonybox2:/mnt# ls
tonybox2:/mnt# cd nfs
tonybox2:/mnt/nfs# ls
123
tonybox2:/mnt/nfs# ls -l
total 4
-rw-r--r-- 1 nobody nogroup 6 2006-08-22

--------------------------------

  评论这张
 
阅读(1907)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017