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

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



转载于:https://blog.51cto.com/forthedream/1884805