一、关闭SELinux和防火墙

1. 临时关闭(不用重启机器): 

[root@localhost ~]# setenforce 0        ##设置SELinux 成为permissive模式  (关闭SELinux)
[root@localhost ~]# setenforce 1        ##设置SELinux 成为enforcing模式   (开启SELinux)

2. 修改配置文件需要重启机器:

[root@localhost ~]# vi /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled(需重启机器)

3. 可自己做策略开放相应端口,这里我直接关闭:

[root@localhost ~]# systemctl status firewalld.service       ##查看防火墙状态
[root@localhost ~]# systemctl stop firewalld.service         ##关闭防火墙

二、安装Samba服务

1. 直接yum安装

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

2. 启动并查看Samba

[root@localhost ~]# systemctl start smb nmb        ##注:NMB对客户端提供NetBIOS服务
[root@localhost ~]# systemctl status smb nmb

wKioL1mT_6nR7gtNAAF0CGBf3i8307.png

三、配置Samba服务

1. 配置/etc/samba/smb.conf

# =================== Global Settings[全局选项] ==============================
[global]

workgroup = WORKGROUP                      ##设定Samba Server所要加入的工作组或域
server string = Samba Server Version %v    ##设定注释,宏%v表示显示Samba的版本号
netbios name = CentOS                      ##设置Samba Server的NetBIOS名称
 
map to guest = bad user                    ##开启匿名访问
     
# ----------------- Logging Options [日志选项]-----------------------------
log file = /var/log/samba/log.%m           ##设置日志文件存储位置及名称,宏%m(主机名)
                                           ##表示对每台访问Samba Server的机器都单独记录一个日志文件

        max log size = 50                  ##设置Samba Server日志文件的最大容量,单位为KB,0代表不限制
# ---------------- Standalone Server Options[独立运行进程] ---------------------
        security = share                   ##共享级别:共享目录只能被授权的用户访问
        passdb backend = tdbsam            ##建立安全账户管理数据库
# ----------------- Printing Options[打印选项]-----------------------------
        load printers = yes               ##设置是否在启动Samba时共享打印机
        cups options = raw                ##通用unix打印选项
# ================== Share Definitions[共享参数] ==============================
  
[homes]                                    ##设置用户宿主目录
        comment = Home Directories         ##描述该共享:家目录
        browseable = no                    ##指定该共享是否可以浏览
        writable = yes                     ##指定该共享路径是否可写
[printers]                                 ##设置打印机宿主目录
        comment = All Printers             ##描述:所有打印机
        path = /var/spool/samba        
        browseable = no
        guest ok = no                      ##指定该共享是否允许guest账户访问
        writable = no
        printable = yes                    ##指定是否可打印
[public]
        comment = Public Stuff             ##定义说明信息
        path = /home/samba                 ##共享目录路径
        public = yes                       ##指定该共享是否允许guest账户访问
        writable = yes
        printable = no
        write list = +staff                ##允许写入该共享的用户

注:

+ =====》 只在本机的密码文件组中查找
& =====》只在nis服务中查找
@ =====》先通过NIS服务器查找,nis找不到再到本机查找

2. 测试语法

[root@localhost ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions


3. 建立共享目录

[root@localhost ~]# mkdir /home/samba
[root@localhost ~]# cd /home/samba/
[root@localhost share]# touch samba.txt


四、测试


①在windows下输入\\192.168.10.128访问


wKiom1YI5lTi_lCoAACChSW6aCY629.jpg

②在Linux下输入smbclient //192.168.10.128/public访问

wKioL1YI57bhMCTCAADxzgkftL4653.jpg


③配置只允许个别用户访问

a、配置smb.conf,添加如下

1
2
3
4
5
6
7
8
[ time ]
         comment = Ashes Of Time
         path =  /share/time
         valid  users  = zhi
         write list = zhi
         printable = no
         create mask = 0755
         directory mask = 0755


b、建立共享目录、添加相应用户和组

1
2
3
4
5
6
# mkdir -p /share/time
# groupadd admin
# useradd zhi -s /sbin/nologin
# cd /share/time
# echo "12345" > abc.txt
# pdbedit -a -u zhi              ##新建Samba用户

wKiom1YI7JvT4mbKAAIhYBiBXdc292.jpg

1
2
# pdbedit -L               ##查看Samba用户列表
# systemctl restart smb nmb        ##重启Samba

注: 可使用命令smbpasswd -a + 用户名为该用户添加Samba密码,但用户必须是系统用户。


c、验证

windows客户端验证:

在"这台电脑"右键,"映射网络驱动器"

wKiom1YI8d_Bio2gAAFk5kqC_8o458.jpg

提示输入用户名密码

wKiom1YI8cyzPJw_AADMSDHvQQU635.jpg

输入后

wKioL1YI8wixQr7TAACsEWcAHBk300.jpg并会在这台电脑上显示

wKiom1YI80TimjrUAABGkMT6gPM738.jpg

错误:输入用户名、密码后弹出如下内容:

“指定的网络文件夹目前是以其他用户名和密码进行映射的。要用其他用户名和密码进行连接,首先请断开所有现有的连接到网络共享的映射。”

解决:使用命令net use查看

wKiom1YI9F3iqeLUAACmj0IRDHA309.jpg

然后使用命令net use * /delete结束所有连接,即可连接。

wKioL1YI9OGClvzhAACCAuA3fLM961.jpg


Linux客户端验证:

1
$  smbclient -L 192.168.10.128 -U zhi

wKiom1YI9k-xXJqlAAFd9-LDnAg333.jpg

1
$ smbclient  //192 .168.10.128 /time  -U zhi

wKiom1YI9z7AiwGLAADpN0KOoaw457.jpg

问题:能下载不能上传

wKiom1YI-xbzYRYIAACaKrbFdHE575.jpg

解决:

1
# setfacl -m u:zhi:rwx /share/time/      ##赋予用户写权限

wKiom1YI_XvBke0xAAEeBG8q_5I064.jpg

已经可以上传了


Linux进行挂载

1
2
3
sudo  apt-get  install  cifs-utils      ##网络文件共享系统套件
sudo  mkdir  /mnt/samba
sudo  mount  -t cifs  //192 .168.10.128 /time  /mnt/samba  -o username=zhi

wKioL1YJAUOAm2OqAAB6SKUrRgw012.jpg


Linux实现自动挂载

1
2
3
4
5
6
7
8
9
sudo  vi  /etc/fstab      ##添加如下
//192 .168.10.128 /time      /mnt/samba    cifs   credentials= /etc/samba/zhi . passwd  0 0
sudo  vi  /etc/samba/zhi . passwd          ##防止密码泄露,所以另建文件
username=zhi
password=abcdef
sudo  chmod  og=---  /etc/samba/zhi . passwd           ##设置该密码文件权限
sudo  umount  /mnt/samba                      ##卸载
sudo  mount  -a                        ##挂载fstab下的所有选项
ls  /mnt/samba/

本文出自 “记事本” 博客,http://wangzhijian.blog.51cto.com/6427016/1698879