在CentOS上配置SAMBA共享目录

https://blog.csdn.net/qiumei1101381170/article/details/53265341

SAMBA 是linux下的一个服务,在Linux服务器上设置一个共享目录,让windows主机可以访问(rw)这个目录

首先查看系统上有没有安装samba服务器端,使用命令rpm -qa | grep samba

我的系统查看结果显示:


从上面的结果可以看出我的系统上面目前只是安装了samba的客户端,没有安装服务器端,首先得安装samba服务器端,使用命令:yum insatll samba,然后再次查看服务端是否已经安装好:rpm -qa | grep samba

下面开始配置samba:

配置samba之前应该先关闭selinux和firwall服务器,然后重启系统


配置samba共享目录的步骤如下(以下操作均在root用户下进行):

1)修改配置文件smb.n

vi /etc/samba/smb.conf,修改的地方有两处,将setsebool -P samba_enable_home_dirs on打开,将homes模块下valid users =%s语句前面的":"去掉



2)配置samba用户

smbpasswd -a root 注:a = add

smbpasswd -a mytest

此时设置的密码是windows访问此目录时要输入的密码

设置完用户之后重启samba:

service smb restart

或者server smb stop, service smb start

或者通过命令 ntsysv启动smb服务,这样的话每次开机就会启动samba服务了,不需要再通过命令启动了


3)访问samba共享目录

在“我的电脑”中打开“计算机”,在地址栏中输入:\\192.168.159.128此为我的虚拟机的IP,也是samba服务器的IP

之后会提示你输入用户名和密码

如果配置SAMBA用户时只是配置了root用户的话,则以root用户登录,即用户名为root,密码为配置samba用户时设置的密码

登录成功之后就进入了samba的共享目录了,如下图所示:




如果我在windows上更新了这个目录里面的内容,那么在linux上就可以立马看到更新的内容

4)映射网络驱动器:像访问本地目录一下访问远程目录

比如在家目录建立一个\prject,然后右键计算机,点击“映射网络驱动器”,拷贝地址\\192.168.159.128\root\prject,即刚刚建立的文件夹目录,点击“完成”。

这样我们就可以看到在本地多了一个盘符“z”,我们就可以像访问本地磁盘一样访问远程目录了。

如下所示:



 

 

工作中,很多时候,我导出文件,或者上传文件的时候经常失败,报samba fail,但我并不知道samba是干什么用的,也老是听同事说什么samba没有挂载,但我基本上不知道什么是samba,更不要说什么是挂载了,于是乎,我就各种找资料,终于知道什么是samba了。在我经历的三个项目中,都是用samba来实现多台服务器之间的文件共享,而且挺好用的,所以今天写下这篇博客,正所谓好记性不如烂笔头。

  一、什么是samba

  samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互。samba服务程序已经成为在Linux系统和Windows系统之间共享文件的最佳选择,当然在Linux系统与Linux系统之间的文件共享也选择samba。

  二、安装samba

  我使用的是centos7,直接用yum安装就可以

yum install samba

  三、配置smb.conf

  smb.conf是服务端的配置文件,刚安装的就自带smb.conf文件,里面有很多注释的行,但实际工作是用不了,所以我们把自带的文件备份一个,复制一个简洁的主配置文件

mv /etc/samba/smb.conf /etc/samba/smb_bak.conf
cat /etc/samba/smb_bak.conf | grep -v "#"  | grep -v ";" > /etc/samba/smb.conf

  编辑smb.conf文件,删除homes、printers、print$三项配置,实际工作用不了,然后再后面加上你的共享文件配置,最后内容如下:

复制代码
[global]
        workgroup = SAMBA           #设定 Samba Server 所要加入的工作组或者域。
        security = user             #设置用户访问Samba Server的验证方式,一共有四种验证方式
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
[database]
        comment = share database     #这个是共享文件的描述
        path = /data/share           #设置共享文件夹的路径
        public = no                  #设置是否允许匿名访问
        writable = yes
复制代码

  四、创建samba登录用户

  这个用户可以直接用Linux用户,但密码也需要设置,所以我在这里新建一个samba专用用户

useradd smb_root
smbpasswd -a smb_root  #然后输入两次密码就可

  五、创建共享路径

mkdir -p /data/share
cd /data chmod -R 775 share chown -R smb_root:smb_root share

  六、Windows下访问共享文件

  在Windows资源管理器地址上输入 \\+ip(比如我的samba服务器IP地址是192.168.1.14,则输入\\192.168.1.14),登陆samba服务

 

  输入的刚才新增的samba用户及密码就行,比如我的就是smb_root和smb_root,这样就可以访问了

 

  可以把这个文件映射为一个盘符,选中database,点击右键,选中映射网络驱动器

 

 

  点击确定就可

  七、Linux下共享文件

  首先在客户端安装支持文件共享服务的软件包cifs-utils

yum install cifs-utils

  在Linux客户端,按照samba服务端的用户名和密码、共享域的顺序将相关的信息写入到一个认证文件中

复制代码
vim auth.smb
写入如下内容:
username = smb_root
password = smb_root
domain = ZIJIN
复制代码

  在客户端创建共享目录,把挂载信息写入/etc/fstab文件中

mkdir -p /data/share
vim /etc/fstab
在最后追加一下信息:
//192.168.1.14/data/share  /data/share  cifs  credentials=/root/auth.smb   0 0

  挂载文件系统

mount -a

  测试,在服务端的/data/share目录下新建一个文件,然后再客户端查看,是否能看到,如果能就可以了

posted on 2021-02-22 16:16  yipianchuyun  阅读(902)  评论(0编辑  收藏  举报

导航