原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接: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 samba
apt-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 qfxsamba
smbpasswd -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 = qfxsamba
systemctl 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/ -R
OK!
以上,Enjoy~