[Linux]搭建Samba服务器(ubuntu16.04)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/humanking7/article/details/83796786


原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.csdn.net/humanking7/article/details/83796786


2018.12.17 Add:
新增:[Linux]Samba服务器支持访问软连接文件和目录: https://blog.csdn.net/humanking7/article/details/85058471

1. Samba软件的安装与卸载

1.1.安装

apt-get install samba samba-common
# 或者
aptitude install -y samba

1.2.卸载

apt-get autoremove samba

1.3.检查Samb版本

方法1:

root@HP-xw4600:~# smbd --version
Version 4.3.11-Ubuntu

方法2:

root@HP-xw4600:~# smbstatus
Samba version 4.3.11-Ubuntu
PID     Username      Group         Machine            Protocol Version       
------------------------------------------------------------------------------

Service      pid     machine       Connected at
-------------------------------------------------------

No locked files

1.4.检查和启动Samba服务

检查Samba服务是否正在运行

systemctl status smbd
systemctl status nmbd

要启动这两个服务

systemctl start smbd
systemctl start nmbd

开始运行后,smbd将在139445端口上侦听。

2.配置前准备

2.1. 建立Samba访问目录

建立samba访问目录,并且增加目录的权限

mkdir /srv/qfxFtp/HDD_sdb1/qfxSamba_share
chmod 777 /srv/qfxFtp/HDD_sdb1/qfxSamba_share

我把硬盘挂载到HDD_sdb1目录下,而整个qfxFtp目录是FTP服务器的目录,只是权限为只读。

2.2. 创建用户账户

默认情况下,Samba将用户设置为安全模式,这意味着客户端必须输入共享文件夹的用户名密码

简单的来讲:添加的Samba用户首先必须是Linux用户,所以先得创建一个新的Linux用户,你也可以用你原来的用户,只要你不怕泄露账户信息。

要在Ubuntu上添加用户,请运行以下命令(我在添加用户的时候,为了安全让该用户无法登陆)。 用你所需的用户名替换用户名,我这里命名为qfxsamba(原来个名字起名qfxSamba,其中S是大写,怎么添加名字都不对,最后仔细看提示,才知道命名有问题,但是命名到底错哪了?)

adduser -s /sbin/nologin qfxsamba

2.3. 给samba服务添加用户(刚刚创建的那个用户)

smbpasswd  -a   qfxsamba  #[输入访问Samba的密码,不是qfxsamba用户密码]

PS:
smbpasswd命令的常用方法:

smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空.
             要在global中写入 null passwords -true
smbpasswd -x  删除用户

3.编辑配置文件

只有一个配置文件需要处理:/etc/samba/smb.conf

首先养成备份的好习惯,然后用Vim编辑:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
vim /etc/samba/smb.conf

以下是要修改的部分

[global]
# 确保工作组的值与Windows计算机的工作组设置相同
 workgroup = WORKGROUP


# =====================================
#            add by Qfx
# =====================================
# "Qfx Share Dir"是将在Windows网络上显示的文件夹名称
# 该注释是共享文件夹的描述
# 可以访问/srv/qfxFtp/HDD_sdb1/qfxSamba_share/目录
# 可以写
# 指定有效用户
[Qfx Share Dir]
comment = Qfx share Folder
path = /srv/qfxFtp/HDD_sdb1/qfxSamba_share
writable = yes 
valid users = qfxsamba

4.重启服务

systemctl restart smbd

5.Windows访问samba

假设我的LinuxIP地址10.12.55.69

在Windows的文件浏览器中输入:

\\10.12.55.69

然后会跳出来登陆对话框,输入用户名和密码就可以登陆了(密码是通过smbpasswd -a qfxsamba设置的那个密码)

登录
有可能出现的问题

Samba只支持NTLM认证,而WIN7VISTA则采用NTLMv2认证,因此必须经过一些设置才行,具体设置如下:

开始 -> 
运行 -> 
secpol.msc->
本地策略->
安全选项->
网络安全:LAN管理器身份验证级别->
发送 LM 和 NTLMv2 ,如果已协商,则使用NTLMv2 (会话安全 &)->
完成设置

设置

6. 添加多个用户或组

现在能登录samba服务器的用户只有qfxsamba

以下方法还未检测:

如果多个帐户更适合访问共享文件夹,请在/etc/samba/smb.conf文件中更改如下所示的有效用户。

valid users = user1, user2, user3

还可以使用smbpasswd为每个用户设置Samba密码。

smbpasswd -a user1  #[输入访问Samba的密码,不是 user1 用户密码]
# 设置
smbpasswd -a user2  #[输入访问Samba的密码,不是 user2 用户密码]
# 设置
smbpasswd -a user3  #[输入访问Samba的密码,不是 user3 用户密码]
# 设置

要允许一组用户访问共享文件夹,请在/etc/samba/smb.conf中使用以下配置。

valid users = @sambashare

创建组

groupadd sambashare

然后将用户添加到此组

gpasswd -a qfxsamba  sambashare
gpasswd -a user1     sambashare
gpasswd -a user2     sambashare
gpasswd -a user3     sambashare

该组需要对共享文件夹具有写入权限,可以通过以下两个命令实现。

sambashare设置为共享文件夹的组所有者:

chgrp sambashare /path/to/shared/folder -R

授予组的写入权限:

chmod g+w /path/to/shared/folder/ -R

OK!
以上,Enjoy~


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/humanking7/article/details/83796786