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

Linux下通过samb服务器手动和自动挂载_第1张图片

5 修改主配置文件:
[root@localhost Server]# vi /etc/samba/smb.conf
 

Linux下通过samb服务器手动和自动挂载_第2张图片

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

 

Linux下通过samb服务器手动和自动挂载_第3张图片

 

7 访问:
 

Linux下通过samb服务器手动和自动挂载_第4张图片

添加一个ip192.168.145.101,发现可以继续访问
 [root@localhost Server]# ifconfig eth0:0 192.168.145.101

Linux下通过samb服务器手动和自动挂载_第5张图片

 
然后修改配置文件:
 

Linux下通过samb服务器手动和自动挂载_第6张图片 

 

Linux下通过samb服务器手动和自动挂载_第7张图片

可以发现无法访问。
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

Linux下通过samb服务器手动和自动挂载_第8张图片

 
测试语法:

Linux下通过samb服务器手动和自动挂载_第9张图片

 
2 创建目录和用户
 

Linux下通过samb服务器手动和自动挂载_第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
访问
 

Linux下通过samb服务器手动和自动挂载_第11张图片

6 实现linux客户端访问windows共享
在windows上共享文件并建立账户
 

Linux下通过samb服务器手动和自动挂载_第12张图片

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

Linux下通过samb服务器手动和自动挂载_第13张图片

 

Linux下通过samb服务器手动和自动挂载_第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'
 

Linux下通过samb服务器手动和自动挂载_第15张图片

8 也可以编辑/etc/fstab/文件系统表实现自动挂载
先执行[root@localhost ~]# unmount /mnt/liufan
 

Linux下通过samb服务器手动和自动挂载_第16张图片

[root@localhost ~]# vi /etc/fstab
加入下列语句
//192.168.145.200/public /mnt/liufan           cifs     defaults,username=u1,password=123 0 0
执行mount –a 查看,有了!!
 

Linux下通过samb服务器手动和自动挂载_第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
 

[root@localhost ~]# cd /etc/
[root@localhost etc]# cp auto.misc auto.nfs
 
[root@localhost etc]# vi auto.nfs
 

Linux下通过samb服务器手动和自动挂载_第18张图片

[root@localhost etc]# service autofs restart
Stopping automount:                                         [ OK ]
Starting automount:                                         [ OK ]
挂载成功
 
 

Linux下通过samb服务器手动和自动挂载_第19张图片