Linux下通过samb服务器手动和自动挂载


samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议。 
SAMBA 最初发展的主要目就是要用来沟通Windows 与 Unix Like 这两个不同的作业平台。最大的好处就是不必让同样的一份数据放置在不同的地方,而且也可以透过这样的一个档案系统上Linux 与 Windows 的档案传输变得更为简单!也就是说,可以透过『网络上的芳邻』来进行Linux 与 Windows 档案的传输。
SAMBA 的执行文件:
执行档有 ,至于做为 SAMBA Client 的执行档主要则是:smbmount,。 smbd 与nmbd:这两个执行档是那两个主要的 daemons ,每次启动 SAMBA 都会使用到的两个执行档。 testparm,smbd, nmbd, smbpasswd  SAMBA 的执行文件一般来说,做为 SAMBA Server 的
  testparm:当设定完成了smb.conf 这个主要设定档之后,而想要查看一下 SAMBA 的所有设定参数与 smb.conf的设定项目是否正确时,就需要使用这个 testparmtest parameters 的简写!)!所以,每次在修改完 smb.conf之后,请务必要使用 testparm 查看看是否有设定错误。



  smbpasswd:如果SAMBA 设定的较为严格,需要规定使用者的账号与密码,那么那个密码档案的建立就需要使用smbpasswd 来建置才可以,所以这个指令与建立 SAMBA 的密码有关。  smbclient:当Linux 主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用smbclient 来查看啦!这个指令也可以使用在 SAMBA 主机上面,用来查看是否设定成功。 


  smbmount:在Windows 上面可以设定『网络 磁盘驱动器』来连接到 主机上面,同样,在Linux 上面,可以透过 smbmount 来将远程主机分享的档案与目录挂载到Linux 主机上面。不过,其实也可以直接使用 mount 这个指令来进行同样的功能就是了。[



 


 



smb协议:服务信息块 Server Message Block



安装完samba后形成两个服务:



smbd : tcp 139 445 端口 资源共享,连接控制



nmbd: udp 137 138 端口 资源宣告



 



1 建立挂载点,挂载光盘:



[root@localhost ~]# mkdir /mnt/cdrom 
  
 
  

    [root@localhost ~]# mount /dev/cdrom /mnt/cdrom 
  
 
  

    mount: block device /dev/cdrom is write-protected, mounting read-only


2 查看samb安装包:


[root@localhost ~]# cd /mnt/cdrom/Server 
  
 
  

    [root@localhost Server]# ll sm* 
  
 
  

    -r--r--r-- 264 root root 344789 Dec 11 2008 smartmontools-5.38-2.el5.i386.rpm 
  
 
  

    [root@localhost Server]# ll sam* 
  
 
  

    samba-3.0.33-3.14.el5.i386.rpm 主安装包 
  
 
  

    samba-client-3.0.33-3.14.el5.i386.rpm 客户端文件 
  
 
  

    samba-common-3.0.33-3.14.el5.i386.rpm samb配置文件 
  
 
  

    samba-swat-3.0.33-3.14.el5.i386.rpm实现web访问文件 
  
 
  

    3 安装samb: 
  
 
  

    [root@localhost Server]# rpm -qa |grep samb


samba-common-3.0.33-3.14.el5 
  
 
  

    [root@localhost Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm 
  
 
  

    warning: samba-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 
  
 
  

    error: Failed dependencies: 
  
 
  
 
          perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386 
  
 
  

    [root@localhost Server]# rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm 
  
 
  

    warning: perl-Convert-ASN1-0.20-1.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 
  
 
  

    Preparing... 
                   ########################################### [100%] 
  
 
  
 
      1:perl-Convert-ASN1      ########################################### [100%] 
  
 
  

    [root@localhost Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm 
  
 
  

    warning: samba-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 
  
 
  

    Preparing... 
                   ########################################### [100%] 
  
 
  
 
      1:samba                  ########################################### [100%]


 



4 查看安装完后文件:



[root@localhost Server]# rpm -ql samba-common |less

 



Samba设置自动挂载 linux挂载samba服务器_操作系统



5 修改主配置文件:



[root@localhost Server]# vi /etc/samba/smb.conf



 



Samba设置自动挂载 linux挂载samba服务器_数据库_02



6 启动smb并查看四个端口开启情况:



 



 

Samba设置自动挂载 linux挂载samba服务器_Samba设置自动挂载_03

 



7 访问:



 



Samba设置自动挂载 linux挂载samba服务器_数据库_04



添加一个ip192.168.145.101,发现可以继续访问



 [root@localhost Server]# ifconfig eth0:0 192.168.145.101



Samba设置自动挂载 linux挂载samba服务器_Server_05



 



然后修改配置文件:



 



Samba设置自动挂载 linux挂载samba服务器_Samba设置自动挂载_06

 

 

Samba设置自动挂载 linux挂载samba服务器_Server_07



可以发现无法访问。



8 安全级别



samba的安全级别:



share: 不用验证



user :需要身份验证,需要samba账号库



server :需要其他服务器进行身份验证



domain :域 DC进行验证



案例:

Public 
         /abc       any    ro 
  
 
  

    sambuser1 /tmp/user1 user1 
      rw 
  
 
  

    sambuser2 /tmp/user2 user2 
      rw  
  
 
  

    1 编辑 
  
 
  

    [root@localhost Server]# vi /etc/samba/smb.conf

Samba设置自动挂载 linux挂载samba服务器_网络_08



 



测试语法:



Samba设置自动挂载 linux挂载samba服务器_网络_09



 



2 创建目录和用户



 



Samba设置自动挂载 linux挂载samba服务器_数据库_10



3 改变用户所属性



[root@localhost Server]# chown user1.user1 /tmp/user1/ 
  
 
  

    [root@localhost Server]# chown user2.user2 /tmp/user2/


4 建文件夹

[root@localhost ~]# touch /abc/p{1,2} 
  
 
  

    [root@localhost ~]# touch /tmp/user1/f1.user1 
  
 
  

    [root@localhost ~]# touch /tmp/user2/f2.user2 
  
 
  

    5 创建samb数据库 
  
 
  

      
  
 
  

    [root@localhost ~]# smbpasswd -a user1 
  
 
  

    New SMB password: 
  
 
  

    Retype new SMB password: 
  
 
  

    Added user user1. 
  
 
  

    [root@localhost ~]# smbpasswd -a user2 
  
 
  

    New SMB password: 
  
 
  

    Retype new SMB password: 
  
 
  

    Added user user2. 
  
 
  

    重启 
  
 
  

    [root@localhost samba]# service smb restart

访问



 



Samba设置自动挂载 linux挂载samba服务器_操作系统_11



6 实现linux客户端访问windows共享



在windows上共享文件并建立账户



 



Samba设置自动挂载 linux挂载samba服务器_Samba设置自动挂载_12



访问



[root@localhost ~]# smbclient -L //192.168.145.200 -U u1

 



Samba设置自动挂载 linux挂载samba服务器_Samba设置自动挂载_13



 



Samba设置自动挂载 linux挂载samba服务器_网络_14



7 将public手动挂载到linux主机上


先建目录/mnt/liufan/ 
  
 
  

    [root@localhost ~]# mkdir /mnt/liufan 
  
 
  

    [root@localhost ~]# mount -t cifs //192.168.145.200/public /mnt/liufan -o username=u1,password='123'

 



Samba设置自动挂载 linux挂载samba服务器_Server_15



8 也可以编辑/etc/fstab/文件系统表实现自动挂载


先执行[root@localhost ~]# unmount /mnt/liufan

 



Samba设置自动挂载 linux挂载samba服务器_操作系统_16



[root@localhost ~]# vi /etc/fstab 
  
 
  

    加入下列语句 
  
 
  

    //192.168.145.200/public /mnt/liufan 
             cifs     defaults,username=u1,password=123 0 0 
  
 
  

    执行mount –a 查看,有了!!


 



Samba设置自动挂载 linux挂载samba服务器_操作系统_17



由于/etc/fstab文件对所有用户可见,所有能够查看到挂载的用户名和密码不安全。可以将用户名密码写入一个普通文件,再将该文件设置为对其他用户不可见。


[root@localhost ~]# vi /etc/fstab 
  
 
  
//192.168.145.200/public /mnt/liufan cifs defaults,credentials=/etc/samba/f1.txt 0 0
 
  

      
  
 
  
创建文件/etc/samba/f1.txt
 
  
[root@localhost ~]# vim /etc/samba/f1.txt
 
  
username=u1
 
  
password=123
 
  

    9 自动挂载


这样挂载可以隐藏用户名和密码,但是如果客户端开机挂载后,而没有使用,则将一直和samba服务器相连,消耗服务器资源,因此,可以使用自动挂载,当切换到/mnt/smb下时,自动挂载,退出时,自动取消挂载。



当访问/mnt/liufan下的文件夹时,查看/etc/auto.smb 的配置,当退出/mnt/smb后60 秒,自动取消连接


[root@localhost ~]# vi /etc/auto.master


 



Samba设置自动挂载 linux挂载samba服务器_数据库_18



[root@localhost ~]# cd /etc/ 
  
 
  

    [root@localhost etc]# cp auto.misc auto.nfs 
  
 
  

      
  
 
  

    [root@localhost etc]# vi auto.nfs


 



Samba设置自动挂载 linux挂载samba服务器_网络_19



[root@localhost etc]# service autofs restart 
  
 
  

    Stopping automount: 
                                           [ OK ] 
  
 
  

    Starting automount: 
                                           [ OK ]


挂载成功



 



 



Samba设置自动挂载 linux挂载samba服务器_操作系统_20




转载于:https://blog.51cto.com/liufan0321/1095753