centos7 配置samba

安装

[root@localhost ~]# yum -y install samba samba-client samba-common

放行端口

iptables -A INPUT -p tcp -m multiport --dport 139,445 -j ACCEPT

##原理
windows 和samba服务进行通信使用的是NETBIOS协议
linux和linux 之间通信使用的是SMB协议

配置文件

[root@server samba]# cat smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]  
    workgroup = myshare
    security = user
    map to guest = bad user
    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
    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 = root
    create mask = 0664
    directory mask = 0775
[share]
    path=/smbshare
    public=yes
    writable=yes
[share1]
    path=/smbu
    valid users = smbuser1,smbuser2,@g1
    writable=yes

配置匿名访问配置

[global]
        workgroup = myshare
        security = user
        map to guest = bad user # 添加此行
        passdb backend = tdbsam

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

末尾曾加

[share]
        path = /smbshare
        public = yes
        writable=yes        

重启

   [root@localhost ~]# systemctl enable smb nmb # smb是Linux和Linux之间的协议,nmb是Linux和Windows之间的协议
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service.

[root@localhost ~]# systemctl restart smb nmb   

后面连接出错,请先关selinux 然后重启服务

客户端连接

[root@node-server-1 ~]# mount -t cifs //192.168.50.156/public /media/
mount: wrong fs type, bad option, bad superblock on //192.168.50.156/public,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

需要安装

yum -y install cifs-utils

windows连接

1

然后再次连接

[root@desktop ~]# mount -t cifs //172.10.100.128/share /media/
Password for root@//172.10.100.128/share:
[root@desktop ~]# cd /media/
[root@desktop media]# ls
ls: reading directory .: Permission denied
[root@desktop media]#

添加用户

1.创建samba用户

[root@server samba]# useradd -s /sbin/nologin smbuser1
[root@server samba]# smbpasswd -a smbuser1
New SMB password:
Retype new SMB password:
Added user smbuser1.

配置文件假如 smbuser1

[share1]
    path=/smbu
    valid users = smbuser1
    writable=yes

挂载

mount -t cifs //172.10.100.128/share1 -o username=smbuser1 /mnt/u1/

设置开机启动

[root@desktop mnt]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat May  6 22:20:05 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=8567c1db-cc09-442e-83ce-cfcdd1f8f0df /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
//172.10.100.128/share1 /mnt/u4 cifs defaults, username=smbuser1,password=123456 0 0    

多用户设置

1.创建多个 Samba 用户

[root@server samba]# useradd -s /sbin/nologin smbuser2
[root@server samba]# smbpasswd -a smbuser2
New SMB password:
Retype new SMB password:
Added user smbuser2.
[root@server samba]# groupadd g1
[root@server samba]# useradd -s /sbin/nologin -g g1 smbu3
[root@server samba]# smbpasswd -a smbu3
New SMB password:
Retype new SMB password:
Added user smbu3.    

2.配置文件修改为

[share1]
    path=/smbu
    valid users = smbuser1,smbuser2,@g1 //多个用户用,隔开,@代表组,这里表示组1
    writable=yes

3.客户端挂载

mount -t cifs //172.10.100.128/share1 -o username=smbuser1 /mnt/u1/
mount -t cifs //172.10.100.128/share1 -o username=smbuser2 /mnt/u2/
mount -t cifs //172.10.100.128/share1 -o username=smbu3 /mnt/u3/    

4.配置文件多个用户共享

[root@desktop samba]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat May  6 22:20:05 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=8567c1db-cc09-442e-83ce-cfcdd1f8f0df /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
//172.10.100.128/share1 /mnt/u4 cifs defaults,credentials=/smb.mount 0 0    

创建一个文件

[root@desktop samba]# cat /smb.mount
username=smbuser1
password=123456
username=smbuser2
password=123456    

挂载

[root@desktop samba]# mount -a
[root@desktop samba]# mount | tail -1
//172.10.100.128/share1 on /mnt/u4 type cifs (rw,relatime,vers=1.0,cache=strict,username=smbuser2,domain=SERVER,uid=0,noforceuid,gid=0,noforcegid,addr=172.10.100.128,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=65536,echo_interval=60,actimeo=1)    

故障处理

1.报错 Unable to find suitable address.

[root@client mnt]# mount -t cifs -o username=smb1  //172.10.100.129/share /mnt
Password for smb1@//172.10.100.129/share:  ******
Unable to find suitable address.

检查防火墙