SAMBA的功能:
- 共享文件和打印,实现在线编辑
- 实现登录SAMBA用户的身份认证
- 可以进行NetBIOS名称解析
- 外围设备共享
samba服务端配置
PS:关闭防火墙和selinux
管理SAMBA用户
添加用户
[root@server ~]# useradd -r -s /sbin/nologin smb1
#添加系统用户
[root@server ~]# smbpasswd -a smb1
New SMB password:
Retype new SMB password:
Added user smb1.
#把系统账号加入samba账号
[root@server ~]# pdbedit -a -u smb1
# 这个是pdbedit工具的使用,与smbpasswd的用途相同
修改密码
[root@server ~]# smbpasswd smb1
删除用户和密码
[root@server ~]# smbpasswd -x smb1
[root@server ~]# pdbedit -x -u smb1
查看samba用户列表
[root@server ~]# pdbedit -L -v
下载samba
[root@server ~]# yum install -y samba
[root@server ~]# yum install -y samba-common-tools
[root@server ~]# smbstatus
#查看samba服务器状态
修改配置文件
[root@server ~]# vim /etc/samba/smb.conf
#最后追加
[share]
path = /app/dir #此为共享的目录
vaild user=smb1,@smb1
writeable = no
#read only=no #和writable=yes等价
browseable = yes
[root@server ~]# mkdir -p /app/dir
[root@server ~]# systemctl restart smb
在本机电脑中访问


想要在电脑中直接访问和创建文件
[root@server ~]# vim /etc/samba/smb.conf
[share]
path = /app/dir
vaild user=smb1,@smb1
writeable = yes #修改此行
browseable = yes
[root@server ~]# cd /app
[root@server ~]# chmod a+w dir
#可以在share中直接建立文件123.txt
samba客户端配置
PS:关闭防火墙和selinux
下载samba
[root@client ~]# yum -y install samba
[root@client ~]# yum -y install samba-client
[root@client ~]# systemctl start smb
[root@client ~]# systemctl start nmb
使用smbclient 访问SAMBA服务器
[root@client ~]# smbclient -L //192.168.106.10/share -U smb1
[root@client ~]# smbclient //192.168.106.10/share -U smb1
smb: \> ls
smb: \> get 123.txt /root
#可以直接操作下载文件
手动挂载
[root@client ~]# yum -y install cifs-utils
[root@client ~]# mkdir /mnt/smb
[root@client ~]# mount -o user=smb1,password=123456 //192.168.106.10/share /mnt/smb
[root@client ~]# df -f
#查看挂载
[root@client ~]# cd /mnt/smb | ll
#可以查看到server的文件
通过用户名共享文件
共享销售部/xsb
这个目录,只有知道用户名和密码的同时可以看这个共享,在/xsb目录中存放销售部重要的数据。需要将security设置为user级别,这样可以启用samba身份验证机制,然后在共享目录/xsb
下设置valid user 字段,配置只允许销售部员工能访问这个共享目录
修改配置文件(服务端)
[root@server ~]# vim /etc/samba/smb.conf
#[share] #把之前的添加的[share]都#了
[global]
workgroup = SAMBA
security = user
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd #xsb组内共享的文件
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[root@server ~]# systemctl restart smb
[root@server ~]# ll /etc/samba/smbpasswd
添加销售部用户和组和相应的samba账户
[root@server ~]# groupadd xsb
[root@server ~]# useradd -g xsb -M -s /sbin/nologin xsb01
[root@server ~]# useradd -g xsb -M -s /sbin/nologin xsb02
[root@server ~]# useradd jsb01
#无法共享文件的用户
[root@server ~]# smbpasswd -a xsb01
New SMB password:
Retype new SMB password:
Added user xsb01.
[root@server ~]# smbpasswd -a xsb02
New SMB password:
Retype new SMB password:
Added user xsb02.
创建共享目录
[root@server ~]# mkdir /xsb
[root@server ~]# echo '123456' >/xsb/importantfile.txt
[root@server ~]# vim /etc/samba/smb.conf
[xsb]
comment = 销售部重要文件 #此为文字描述
path = /xsb
valid user = xsb01 xsb02
#valid user = xsb01,@xsb
[root@server ~]# systemctl restart smb nmb
使用smbclient 访问SAMBA服务器
[root@client ~]# smbclient -L //192.168.106.10/xsb -U xsb01
[root@client ~]# smbclient //192.168.106.10/xsb -U xsb01
smb: \>ls
手动挂载
[root@client ~]# mkdir /xsbdata
[root@client ~]# vim auth.smb
#用户账号密码
username=xsb01
password=123456
[root@client ~]# vim /etc/fstab
//192.168.106.10/xsb /xsbdata cifs defaults,credentials=/root/auth.smb 0 0
[root@client ~]# mount -a
[root@client ~]# df -h
#查看挂载
不同账户访问不同目录
创建系统用户
[root@server ~]# useradd -s /sbin/nologin -r smb1 #加选项-r 不创建家目录
[root@server ~]# useradd -s /sbin/nologin -r smb2
[root@server ~]# useradd -s /sbin/nologin -r smb3
创建smb用户
[root@server ~]# smbpasswd -a smb1
[root@server ~]# smbpasswd -a smb2
[root@server ~]# smbpasswd -a smb3
[root@server ~]# pdbedit -L #查看samba账号
smb1:995:
smb3:993:
smb2:994:
修改配置文件
[root@server ~]# vim /etc/samba/smb.conf
#在[global]的workgroup下加一行
config file= /etc/samba/conf.d/%U 说明:%U表示用户名 #这个步骤为关键步骤
[share] #共享文件夹在最后添加
Path=/data/dir #指定分享文件夹的路径
writeable = yes
browseable = yes
Guest ok=yes #是否所有人可见,等同于"public"参数。
创建共享目录
[root@server ~]# mkdir -p /data/dir
[root@server ~]# mkdir -p /data/dir1
[root@server ~]# mkdir -p /data/dir2
[root@server ~]# touch /data/dir/share.txt #新建共享文件,没有创建特定文件的smb3会访问这个
[root@server ~]# touch /data/dir1/smb1.txt #新建给smb1用户访问特定文件
[root@server ~]# touch /data/dir2/smb2.txt #新建给smb2用户访问特定文件
[root@server ~]# mkdir /etc/samba/conf.d/ -p
[root@server ~]# vim /etc/samba/conf.d/smb1
#配置特定文件的访问目录
[share]
Path=/data/dir1
[root@server ~]# vim /etc/samba/conf.d/smb2
[share]
path=/data/dir2
[root@server ~]# systemctl restart smb nmb
使用smbclient 访问SAMBA服务器
不同用户访问的文件不同
[root@client ~]# smbclient //192.168.106.10/share -U smb1
Enter SAMBA\smb1's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Fri Sep 22 14:38:28 2023
.. D 0 Fri Sep 22 14:37:43 2023
smb1.txt N 0 Fri Sep 22 14:38:28 2023
17811456 blocks of size 1024. 13225324 blocks available
[root@client ~]# smbclient //192.168.106.10/share -U smb2
Enter SAMBA\smb2's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Fri Sep 22 14:38:37 2023
.. D 0 Fri Sep 22 14:37:43 2023
smb2.txt N 0 Fri Sep 22 14:38:37 2023
17811456 blocks of size 1024. 13225304 blocks available
[root@client ~]# smbclient //192.168.106.10/share -U smb3
Enter SAMBA\smb3's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Fri Sep 22 14:38:16 2023
.. D 0 Fri Sep 22 14:37:43 2023
share.txt N 0 Fri Sep 22 14:38:16 2023
17811456 blocks of size 1024. 13225324 blocks available
Comments | NOTHING