首页 > 代码库 > 基础服务汇总 NFS+SAMBA+AUTOFS(太长了,三个服务做一篇吧)

基础服务汇总 NFS+SAMBA+AUTOFS(太长了,三个服务做一篇吧)

1:nfs

  常用的linux之前的网络共享,内网用的,最简单的,没设置任何权限的设置类似于:

vim /etc/exports:

/home/samba * 

技术分享复杂点的 配置权限和限定ip来源的:

/home/david 192.168.1.0/24(rw)

查看nfs

showmount -e nfs_server_ip

[root@10 etc]# showmount -e 10.1.2.136

Export list for 10.1.2.136:

/home/samba *

挂载 mount -t nfs 10.1.2.136(nfs_server_ip):/home/samba /mnt(注:mountpoint)

   技术分享下面这段是抄的 我平时就用rw,ro:

--start

NFS主要有3类选项:

访问权限选项

  • 设置输出目录只读:ro

  • 设置输出目录读写:rw

用户映射选项

  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

  • no_all_squash:与all_squash取反(默认设置);

  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

  • no_root_squash:与rootsquash取反;

  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

  • secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

  • wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

  • no_wdelay:若有写操作则立即执行,应与sync配合使用;

  • subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

  • no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

---end


关于nfs的文件

/etc/exports                   NFS服务的主要配置文件

/usr/sbin/exportfs               NFS服务的管理命令

/usr/sbin/showmount              客户端的查看命令

/var/lib/nfs/etab               记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab               记录曾经登录过的客户端信息


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

2:samba

    一般windows和linux之间用samba windows那个共享出来的默认都是samba

需要smb服务和nmb服务

    配置/etc/samba/smb.conf,在文件最后边添加:

    

 [hello]

        comment = hello

        path = /home/samba

        public = yes

        writable = yes

path是共享文件夹,public公共的,writable 可写

还有一种详细的:

[global]

    workgroup = Hello

    netbios name = Hello1

    server string = Hello world

    security = share


[hello]

    path = /home/samba

    writeable = yes

    browseable = yes

    guest ok = yes

匿名用户guest,browseable是否能在组目录里浏览,其他的不是很清楚 serverstring明显是介绍之类的;netbios name就是在windows中显示出来的计算机名


创建samba用户 必须是系统已存在的,可以自己创建 useradd hello,然后创建samba用户hello的samba密码:smbpasswd hello

[root@10 etc]# smbpasswd hello

New SMB password:

Retype new SMB password:

xxx成功之类的话

设置iptable的:

    iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT

    iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

    iptables -I INPUT -p udp -m udp --dport 137 -j ACCEPT

    iptables -I INPUT -p udp -m udp --dport 138-j ACCEPT

    iptables-save

    service iptables  restart

设置selinux的(抄的 ,我基本不开selinux,没那么高功力,受不了,直接disabled)

   setsebool -Psamba_enable_home_dirs on

   setsebool -Psamba_export_all_rw on

   getsebool  -a  | grep  samba


下面还是抄的,很多都不怎么用:

--start

  dos charset = GB2312 ←将Windows 客户端的文字编码设置为简体中文 GB2312

   unix charset =GB2312 ←指定Samba所在的CentOS服务端新建文件或目录时的编码为 GB2312

   display charset= GB2312 ←指定使用SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码

   directory mask =0777 ←指定新建目录的属性(以下4行)

   force directorymode = 0777

   directorysecurity mask = 0777

   force directorysecurity mode = 0777

   create mask =0777 ←指定新建文件的属性(以下4行)

   force createmode = 0777

   security mask =0777

   force securitymode = 0777

--end

查看用smbclient -L smb_server_ip -U hello:


[root@10 etc]# smbclient -L localhost -U hello

Enter hello‘s password: 

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]


Sharename       Type      Comment

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

hello           Disk      hello

IPC$            IPC       IPC Service (Samba Server Version 3.6.9-151.el6)

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]


Server               Comment

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

10                   Samba Server Version 3.6.9-151.el6


Workgroup            Master

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

MYGROUP              10


挂载 mount -t cifs //smb_server_ip/hello /mnt -o username=hello,password=hello


3:autofs

这个是自动挂载,进入目录的时候才会自动挂载 有点像网页异步加载那种的,原理不知道是否相同,反正现象挺像的:

vim /etc/auto.master:

里头添加:

/mnt /etc/auto.test  mnt是挂载点  auto.test 是详细(子)配置,定义挂载的

vim /etc/auto.test:

    pub    -ro,intr.soft    localhost:/home/samba

重启autofs

    service autofs restart

cd /mnt这个挂载点下 执行ls 什么都没有,但是输入cd pub,系统就会自动挂载,并cd进已挂载的目录中,如下:

[root@10 etc]# cd /mnt/

[root@10 mnt]# ls            ----这里显示是什么都没有的

[root@10 mnt]# cd pub            

[root@10 pub]# ls            ----进入pub 也就是/home/samba中了

CentOS-7.0-1406-x86_64-DVD.iso

[root@10 pub]# cd ..            

[root@10 mnt]# ls            ----退回到刚才ls什么都没有的/mnt中 再次ls,pub出现

pub

[root@10 mnt]#

再给个例子 :iso -fstype=iso9660,ro,nosuid,nodev,loop :/root/rhel5u5.iso 

这个参数跟挂载方式有关

下边还是抄的:

--start

mount命令参数非常多,如下为与NFS相关的参数。
(1)-a:把/etc/fstab中列出的路径全部挂载。
(2)-t:需要mount的类型,如nfs等。
(3)-r:将mount的路径定为read only。
(4)-v mount:过程的每一个操作都有message传回到屏幕上。
(5)rsize=n:在NFS服务器读取文件时NFS使用的字节数,默认值是1 024个字节。
(6)wsize=n:向NFS服务器写文件时NFS使用的字节数,默认值是1 024个字节。
(7)timeo=n:从超时后到第1次重新传送占用的1/7秒的数目,默认值是7/7秒。
(8)retry=n:在放弃后台mount操作之前可以尝试的次数,默认值是7 000次。
(9)soft:使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息。
(10)hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应。
(11)intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。
(12)fg:一直在提示符下执行重复挂载。
(13)bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。
(14)tcp:对文件系统的挂载使用TCP,而不是默认的UDP。
说明:mount NFS服务器的另一个重要参数是hard(硬)mount或soft(软)mount

&&各种文件系统的挂载实例如下

( 这里以/etc/auto.misc为例) 

nfs -ro,soft,intr 172.16.0.3:/pub/syd168(可以使用域名) 

cd -fstype=iso9660,iocharset=cp936,ro     :/dev/cdrom 

fd -fstype=vfat     :/dev/fd0 

win -fstype=smbfs     ://10.8.22.18/syd168 

local -fstype=ext3    :/dev/hda1


Daily english:

    Think like a man of action,act like a man of thought

    像行动者那样思考,像思考者一样行动


基础服务汇总 NFS+SAMBA+AUTOFS(太长了,三个服务做一篇吧)