原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://cloud.tencent.com/developer/article/1596370
- @[toc]Samba软件的安装与卸载1.1.安装1.2.卸载1.3.检查Samb版本1.4.检查和启动Samba服务2.配置前准备2.1. 建立Samba访问目录2.2. 创建用户账户2.3. 给samba服务添加用户(刚刚创建的那个用户)3.编辑配置文件4.重启服务5.Windows访问samba添加多个用户或组2018.12.17 Add:
新增:[Linux]Samba服务器支持访问软连接文件和目录: https://cloud.tencent.com/developer/article/1596390
apt-get install samba samba-common
# 或者
aptitude install -y sambaapt-get autoremove samba方法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检查Samba服务是否正在运行
systemctl status smbd
systemctl status nmbd要启动这两个服务
systemctl start smbd
systemctl start nmbd开始运行后,smbd将在139和445端口上侦听。
建立samba访问目录,并且增加目录的权限
mkdir /srv/qfxFtp/HDD_sdb1/qfxSamba_share
chmod 777 /srv/qfxFtp/HDD_sdb1/qfxSamba_share我把硬盘挂载到HDD_sdb1目录下,而整个qfxFtp目录是FTP服务器的目录,只是权限为只读。
默认情况下,Samba将用户设置为安全模式,这意味着客户端必须输入共享文件夹的用户名和密码。
简单的来讲:添加的Samba用户首先必须是Linux用户,所以先得创建一个新的Linux用户,你也可以用你原来的用户,只要你不怕泄露账户信息。
要在Ubuntu上添加用户,请运行以下命令(我在添加用户的时候,为了安全让该用户无法登陆)。 用你所需的用户名替换用户名,我这里命名为qfxsamba(原来个名字起名qfxSamba,其中S是大写,怎么添加名字都不对,最后仔细看提示,才知道命名有问题,但是命名到底错哪了?)
adduser -s /sbin/nologin qfxsambasmbpasswd -a qfxsamba #[输入访问Samba的密码,不是qfxsamba用户密码]PS:
smbpasswd命令的常用方法:
smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空.
要在global中写入 null passwords -true
smbpasswd -x 删除用户只有一个配置文件需要处理:/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 = qfxsambasystemctl restart smbd假设我的Linux的IP地址为 10.12.55.69
在Windows的文件浏览器中输入:
\\10.12.55.69然后会跳出来登陆对话框,输入用户名和密码就可以登陆了(密码是通过smbpasswd -a qfxsamba设置的那个密码)

有可能出现的问题
Samba只支持NTLM认证,而WIN7或VISTA则采用NTLMv2认证,因此必须经过一些设置才行,具体设置如下:
开始 ->
运行 ->
secpol.msc->
本地策略->
安全选项->
网络安全:LAN管理器身份验证级别->
发送 LM 和 NTLMv2 ,如果已协商,则使用NTLMv2 (会话安全 &)->
完成设置
现在能登录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/ -ROK!
以上,Enjoy~