samba

一、什么是samba

SAMBA用于解决多系统之间的文件共享工作:
Samba是一套让UNIX系统能够应用Microsoft网络通讯协议的软件。
它使执行UNIX系统的机器能与执行Windows系统的电脑分享驱动与打印机。
Samba属于GNU Public License (简称GPL)的软件;因此,你可以合法且免费地使用它。

二、Samba 的主要功能如下:

  1. 提供Windows NT风格的文件和打印机共享 Windows 95、Windows 98、Windows NT等以
    据此共享UNIX等其他操作系统的资源,外表看起来和共享NT的资源没有区别。
  2. 解析NetBIOS名字IP 在Windows网络中,为了能够利用网上资源,同时自己的资源也能被
    别人所利用; 各个主机都定期地向网上广播自己的身份信息。而负责收集这些信息,为别
    的主机;提供检索情报的服务器就被称为浏览服务器.Samba可以有效地完成这项功能在
    跨越网关的时候Samba还可以作WINS服务器使用。
  3. 提供SMB客户功能 利用Samba提供的smbclint程序可以从UNIX下以类似于 FTP的方式访
    问Windows的资源。
  4. 备份PC上的资源 利用一个叫smbtar的shell 脚本,可以使用 tar 格式备份和恢复一台
    远程 Windows上的共享文件。
  5. 提供一个命令行工具,在其上可以有限

三、Linux安装samba(Centos)

  • yum安装:
    yum install -y samba
  • 配置文件路径
vim /etc/samba/smb.conf
内容如下:
[global]
        workgroup = SAMBA           #工作组名称
        security = user             #安全验证的方式,总共有4种

        passdb backend = tdbsam     #定义用户后台的类型,共有三种

        printing = cups             
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories  
        valid users = %S, %D%w%S
        browseable = No         #指定共享信息是否在网上邻居可见
        read only = No          #定义是否可以自行写入操作,与writable相反
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
  • 建立samba账户:
[[email protected] log]# pdbedit -a -u zhaoyujie
new password:
retype new password:
Unix username:        zhaoyujie
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3221912060-1364506397-2513977622-1000
Primary Group SID:    S-1-5-21-3221912060-1364506397-2513977622-513
Full Name:            
Home Directory:       \\zyj-01\zhaoyujie
HomeDir Drive:        
Logon Script:         
Profile Path:         \\zyj-01\zhaoyujie\profile
Domain:               ZYJ-01
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    一, 26 11月 2018 20:34:51 CST
Password can change:  一, 26 11月 2018 20:34:51 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  • 命令pdbedit的常用选项
参数 作用
-a 用户名 建立samba用户
-x 用户名 删除samba账户
-L 列出账户信息
-Lv 列出账户详细信息
  • 创建用于共享的目录
mkdir /tmp/samba
chown -R zhaoyujie.zhaoyujie /tmp/samba
  • 修改samba配置文件,内容如下:
[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
[database]
        comment = Do not arbitrarily modify the database file
        path = /tmp/samba                  #指定共享路径
        public = no
        writable = yes
  • 关闭iptables防火墙和selinux
  • 在windows端输入服务器IP
\\192.168.157.130
输入之前创建的用户名和密码即可访问

samba

  • 在windows端创建文件

samba

  • 在linux 服务端查看,创建成功:
[[email protected] samba]# ll
总用量 0
-rwxr--r-- 1 zhaoyujie zhaoyujie 0 11月 26 20:52 test.txt

四、在linux端访问samba

  • yum安装访问samba服务的软件包
yum install cifs-utils
  • 创建用于挂载samba的目录:
mkdir /samba
  • 命令行挂载samba:
mount.cifs -o user=zhaoyujie,pass='zhaoyujie.123'  //192.168.157.128/database/samba
  • 写入/etc/fstab文件中,开机自动挂载
  1. 创建认证文件,并修改权限:
vim auth.smb
内容如下:
username=zhaoyujie
password=zhaoyujie.123
domain=SAMBA
chmod 600 auth.smb
  1. 写入/etc/fstab文件中
    格式为: //服务端IP/服务端定义的名称(不是路径) /挂载目录 cifs credentiale=认证文件路径
//192.168.157.128/database /mnt cifs credentials=/root/auth.smb 0 0
  1. 挂载服务:
mount -a