Samba服务器创建与使用

本文详细介绍了如何在CentOS7上设置和管理Samba服务器,包括简单使用步骤、高级配置选项,如工作群组、服务器全局配置、目录共享设置,以及用户管理和挂载Samba共享的方法。同时,还涵盖了NetBIOS名称解析和多用户通过同一UNC路径访问不同目录的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单使用

服务器端

[root@centos7 ]# yum install samba -y
[root@centos7 ]# useradd smbuser -s /sbin/nologin #samba用户必须是Linux用户
[root@centos7 ]# smbpasswd -a smbuser #添加samba用户
[root@centos7 ]# systemctl start smb

客户端

[root@centos7 ]# yum install samba-client -y
[root@centos7 ]# smbclient -L 192.168.6.6 -U smbuser%123456 #查看服务器共享目录
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]

    Sharename       Type      Comment
    ---------       ----      -------
    centos          Disk      centos7
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (Samba 4.4.4)
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]

    Server               Comment
    ---------            -------
    DATACENTER           Samba 4.6.2
    SHARE                Samba 4.4.4

    Workgroup            Master
    ---------            -------
    SAMBA                DATACENTER
    WORKGROUP            ROUSI
[root@centos7 ]# smbclient //192.168.6.6/centos -U smbuser%123456
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> 

默认进入登录用户家目录

Samba高级设置详解

SAMBA服务器配置

全局设置:
[global] 服务器通用或全局设置的部分
特定共享设置:
[homes] 用户的家目录共享
[printers] 定义打印机资源和服务
[sharename] 自定义的共享目录配置
其中: #和;开头的语句为注释,大小写不敏感

配置文件里的宏定义

宏定义含义宏定义含义
%m客户端主机的NetBIOS名%M客户端主机的FQDN
%H当前用户家目录路径%U当前用户用户名
%g当前用户所属组%hsamba服务器的主机名
%Lsamba服务器的NetBIOS名%I客户端主机的IP
%T当前日期和时间%S可登录的用户名

SAMBA服务器全局配置

workgroup 指定工作组名称
server string 主机注释信息
netbios name 指定NetBIOS名
interfaces 指定服务侦听接口和IP
hosts allow 可用“,” ,空格,或tab分隔,默认允许所有主机访问, 也可在每个共享独立配置,如在[global]设置将应用并覆盖所有共享设置
IPv4 network/prefix: 172.25.0.0/24 IPv4前缀: 172.25.0.
IPv4 network/netmask: 172.25.0.0/255.255.255.0
主机名: desktop.example.com
以example.com后缀的主机名: .example.com
示例:

hosts allow = 172.25.  #172.25这个网段
hosts allow = 172.25. .example.com

hosts deny 拒绝指定主机访问
config file=/etc/samba/conf.d/%U 用户独立的配置文件
Log file=/var/log/samba/log.%m 不同客户机采用不同日志
max log size=50 日志文件达到50K,将轮循rotate,单位KB
Security三种认证方式:
share:匿名(CentOS7不再支持)
user: samba用户(采有linux用户, samba的独立口令)
domain:使用DC(DOMAIN CONTROLLER)认证
passdb backend = tdbsam 密码数据库格式

Samba配置目录共享选项解释

每个共享目录应该有独立的[ ]部分
[共享名称] 远程网络看到的共享名称
comment 注释信息
path 所共享的目录路径
public 能否被guest访问的共享,默认no,是否能匿名登录

smbclient //192.168.6.7/centos  #直接敲回车即可登录,在不设置其他登录权限下

browsable 是否允许所有用户浏览此共享,默认为yes

    Sharename       Type      Comment
    ---------       ----      -------
    centos          Disk      centos7  <--
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (Samba 4.4.4)
是否能看到共享目录

writeable=yes 可以被所有用户读写,默认为no
read only=no 和writable=yes等价,如与以上设置冲突,放在后面的设置生效,默认只读
write list 三种形式:用户, @组名, +组名,用,分隔如writable=no,列表中用户或组可读写,不在列表中用户只读
valid users 特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔

管理SAMBA用户

添加samba用户
smbpasswd -a
pdbedit -a -u
修改用户密码
smbpasswd
删除用户和密码:
smbpasswd –x
pdbedit –x –u
查看samba用户列表:
/var/lib/samba/private/passdb.tdb
pdbedit –L –v
查看samba服务器状态
smbstatus

挂载Samba共享

手动挂载

mount -t cifs -o user=smbuser,password=123456,sec=ntlmssp //192.168.6.6/home/smbuser /mnt/smb

自动挂载

cat /etc/fstab 可以用文件代替用户名和密码的输入
//192.168.6.6/home/smbuser /mnt/smb cifs credentials=/etc/smb.txt,sec=ntlmssp 0 0
cat /etc/smb.txt
username=smbuser
password=123456
chmod 600 /etc/smb.txt

注:如果挂载出错,提示找不到mount.cifs,可以安装软件包cifs-utils,sec=ntlmssp设置密码hash格式,如果不写会报 mount error(13): Permission denied 错误

NetBIOS名称解析

[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = no
cups options = raw
netbios name = share  #名称解析,可以通过这个名字访问Samba服务器
log file = /var/log/samba/log.%I #日志文件带访问客户端IP,每个IP一个日志文件
log level = 2 #日志记录级别

[root@centos7 ]# systemctl start nmb
[root@centos7 ]# systemctl restart smb

访问

[root@centos7 ]# smbclient //share/centos -U smbuser%123456

不同用户通过同一个UNC路径访问不同目录

服务器端

useradd -s /sbin/nologin smb1
useradd -s /sbin/nologin smb2
smbpasswd -a smb1
smbpasswd -a smb2
mkdir /etc/samba/conf.d
vi /etc/samba/smb.conf
[global]
    config file = /etc/samba/conf.d/%U #添加一行
vi /etc/samba/conf.d/smb1
[centos]
     comment = smb1
     path = /home/smb1
vi /etc/samba/conf.d/smb2
[centos]
     comment = smb2
     path = /home/smb2  

touch /home/smb2/smb2.txt
touch /home/smb2/smb2.txt

客户端

smbclient -L 192.168.6.7 -U smb1%123456
smbclient //192.168.6.7/centos -U smb1%123456
切换用户,可以看到所进入的目录不同

多用户挂载(centos7支持)

服务器端

mkdir /multiuser
vim /etc/samba/smb.conf
[smbshare]
path=/multiuser
writable=no
write list= @admins

useradd –s /sbin/nologin smbuser
smbpasswd –a smbuser
useradd –s /sbin/nologin –G admins haha
smbpasswd –a haha
useradd –s /sbin/nologin xixi
smbpasswd –a xixi

setfacl –m u:haha:rwx /testdir/multiuser
setfacl –m g:admins:rwx /testdir/multiuser

客户端

yum -y install cifs-utils
mkdir /mnt/smb
echo 'username=smbuser' >/etc/multiuser #创建的用户在服务器上要有
echo 'password=centos' >>/etc/multiuser
chmod 600 /etc/multiuser
以多用户方式挂载:
vim /etc/fstab
//smbserver/smbshare /mnt/smb cifs credentials=/etc/multiuser,multiuser,sec=ntlmssp 0 0
mount -a

在samba客户端实现多用户访问

useradd haha
useradd xixi
用root访问
ls /mnt/smb
touch /mnt/smb/root.txt
用haha访问
cifscreds add –u haha smbserver
touch /mnt/smb/haha.txt
用xixi访问
cifscreds add –u xixi smbserver
touch /mnt/smb/xixi.txt #没有写权限(对目录、服务没有写权限),只能查看

注:当没有写权限是记得把共享目录权限设成777,打开writeable,默认都有读权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值