-
检查Linux服务器是否安装了samba
rpm -qa | grep samba
如果有安装samba,会在下一行命令行显示samba,如果没有,则什么都不显示。
-
安装samba服务
yum install samba
[root@localhost ~]# yum install samba
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 samba.x86_64.0.4.10.16-19.el7_9 将被 安装
......
省略中间的安装日志
......
已安装:
samba.x86_64 0:4.10.16-19.el7_9
作为依赖被安装:
avahi-libs.x86_64 0:0.6.31-20.el7 cups-libs.x86_64 1:1.6.3-43.el7 libldb.x86_64 0:1.5.4-2.el7
libtalloc.x86_64 0:2.1.16-1.el7 libtdb.x86_64 0:1.3.18-1.el7 libtevent.x86_64 0:0.9.39-1.el7
libwbclient.x86_64 0:4.10.16-19.el7_9 pyldb.x86_64 0:1.5.4-2.el7 pytalloc.x86_64 0:2.1.16-1.el7
python-tdb.x86_64 0:1.3.18-1.el7 samba-client-libs.x86_64 0:4.10.16-19.el7_9 samba-common.noarch 0:4.10.16-19.el7_9
samba-common-libs.x86_64 0:4.10.16-19.el7_9 samba-common-tools.x86_64 0:4.10.16-19.el7_9 samba-libs.x86_64 0:4.10.16-19.el7_9
完毕!
[root@localhost ~]#
最后会提示已安装的samba版本和是否安装完毕。
-
创建系统用户(用于登陆samba服务)
useradd 用户名 //添加用户
passwd 用户名 //给用户创建密码
[root@localhost ~]# useradd fenghx
[root@localhost ~]# passwd fenghx
更改用户 fenghx 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
上面这里是由于我两次密码输入不一样导致的。当你的密码很简单时,会提示无效密码,但输入两次后也是可以成功的。
-
在用户的家目录下建立一个共享文件夹
名字随便起,我这里是code,准备共享这个文件夹倒windows下。
cd /home/fenghx/
mkdir code
[root@localhost ~]# cd /home/fenghx/
[root@localhost fenghx]# ls
[root@localhost fenghx]# mkdir code
[root@localhost fenghx]# ls
code
[root@localhost fenghx]# cd code/
[root@localhost code]# ls
-
编辑samba配置文件
vim /etc/samba/smb.conf
在文件内容最后添加:
[share]
comment = smb share test
path = /home/fenghx/code
browseable = yes
writable = yes
valid users = fenghx
public = yes
如下:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[share]
comment = smb share test
path = /home/fenghx/code
browseable = yes
writable = yes
valid users = fenghx
public = yes
~
~
~
~
~
~
~
"/etc/samba/smb.conf" 45L, 837C 45,2-9 全部
-
将用户添加倒samba用户列表中
smbpasswd -a 用户名
[root@localhost ~]# smbpasswd -a fenghx
New SMB password:
Retype new SMB password:
Added user fenghx.
[root@localhost ~]#
-
启动samba服务
service smb start
[root@localhost ~]# service smb start
Redirecting to /bin/systemctl start smb.service
[root@localhost ~]#
-
将samba服务添加倒防火墙例外中,避免防火墙原因导致无法共享
写这篇文章的关键在这里,我查询了很多文章,都是只说了将samba添加到防火墙例外中,但是没说具体的命令。
firewall-cmd --zone=public --add-service=samba
[root@localhost ~]# firewall-cmd --zone=public --add-service=samba
success
[root@localhost ~]#
-
在Windows上访问共享文件夹
第一次访问共享文件夹的时候会弹出对话框,让输入账号和密码,输入添加到samba用户列表的用户名和对应的samba密码即可。就可以看到以下内容。
此时我想打开share文件夹,却提示如下:
这种原因应该是由于SELinux在捣乱,运行以下命令设置SELinux 成为permissive模式 临时关闭SELlinux防火墙就可以了
setenforce 0
在Linux服务器上的code目录下创建一个文件,写上内容
[root@localhost code]# touch test.txt
[root@localhost code]# vim test.txt
hjasjkldfhasdkjasdkjf
~
~
~
~
~
"test.txt" 1L, 22C 1,1 全部
保存退出后,在windows下查看