您的位置:首页 > 运维架构 > Linux

Centos7 版本的Linux下安装Samba

2017-01-22 00:00 369 查看
这篇指南介绍了如何在CentOS7中配置匿名和安全的Samba服务器。Samba是一个开源/自由软件套件,提供无缝的文件和打印服务SMB/CIFS客户端.Samba是免费的,不像其他的SMB/CIFS的实现着,Samba允许在Linux/Unix服务器和给予Windows的客户端之间协同工作,

初步说明

我有个一新安装的CentOS7服务器,这是我要安装Samba服务器的机子。当然,你需要有一个windows机器来检查这台CentOS7的服务器是可被连接的。

注意:Windows机器必须和这台CentOS7在同一个工作组。可以用下面的命令来检查:

netconfigworkstation
为了确保windows机器可以在窗口中处理类似的访问。在终端中添加服务器IP地址:

notepadC:\Windows\System32\drivers\etc\hosts
在我的例子中是这样保存的:

[...]
192.168.0.100server1.example.comcentos
Samba匿名共享

首先我将解释安装Samba和匿名共享的方法。安装Samba运行

yuminstallsambasamba-clientsamba-common
安装之后请备份一份原始的Samba配置文件:

1
mv/etc/samba/smb.conf/etc/samba/smb.conf.bak
然后来新建我们的conf文件:

vi/etc/samba/smb.conf

[global]
workgroup=WORKGROUP
serverstring=SambaServer%v
netbiosname=centos
security=user
maptoguest=baduser
dnsproxy=no
#============================ShareDefinitions==============================
[Anonymous]
path=/samba/anonymous
browsable=yes
writable=yes
guestok=yes
readonly=no

:wq#保存并退出
mkdir-p/samba/anonymous
systemctlenablesmb.service
systemctlenablenmb.service
systemctlrestartsmb.service
systemctlrestartnmb.service
在下面CentOs7的防火墙cmd会阻止Samba的访问,为了摆脱这个,我们运行:

[root@server1~]#firewall-cmd--permanent--zone=public--add-service=samba
success
[root@server1~]#
[root@server1~]#firewall-cmd--reload
success
[root@server1~]#
现在你可以在Windows中访问CentOS7的共享文件了,在命令提示行中输入:

\\centos
下面是浏览到的文件夹,如果你尝试着去创建一个文件,你会得到一个没有权限的错误信息、

检查这个共享文件夹的权限:

ls-l
drwxr-xr-x.2rootroot6Jul1713:41anonymous
[root@server1samba]#

我们下面给匿名用户一个权限:

cd/samba
chmod-R0755anonymous/
chown-Rnobody:nobodyanonymous/
ls-lanonymous/
total0
drwxr-xr-x.2nobodynobody6Jul1713:41anonymous
[root@server1samba]#

进一步我们需要配置Selinux

chcon-tsamba_share_tanonymous/
现在我们可以浏览和创建文件了

在服务器上查看:

ls-lanonymous/
total0
-rwxr--r--.1nobodynobody0Jul1716:05anonymous.txt
[root@server1samba]#

安全的Samba服务器

为了这个,我创建了一个组:smbgrp和用户srijan通过认证来访问Samba服务器。

groupaddsmbgrp
useraddsrijan-Gsmbgrp
smbpasswd-asrijan

[root@server1samba]#smbpasswd-asrijan
NewSMBpassword:<--yoursambapasswordRetypenewSMBpassword:<--yoursambapasswordAddedusersrijan.
[root@server1samba]#
现在在Samba文件夹下创建一个文件夹:Secured,并且给出权限:

mkdir-p/samba/secured
同样的,我们允许Selinux来监听:

cd/samba
chmod-R0777secured/
chcon-tsamba_share_tsecured/
再次编辑配置文件:

vi/etc/samba/smb.conf

[...]
[secured]
path=/samba/secured
validusers=@smbgrp
guestok=no
writable=yes
browsable=yes

systemctlrestartsmb.service

systemctlrestartnmb.service
像下面这样测试:

testparm

[root@server1samba]#testparm
Loadsmbconfigfilesfrom/etc/samba/smb.conf
rlimit_max:increasingrlimit_max(1024)tominimumWindowslimit(16384)
Processingsection"[Anonymous]"
Processingsection"[secured]"
LoadedservicesfileOK.
Serverrole:ROLE_STANDALONE
Pressentertoseeadumpofyourservicedefinitions<--ENTER[global]
netbiosname=CENTOS
serverstring=SambaServer%v
maptoguest=BadUser
dnsproxy=No
idmapconfig*:backend=tdb

[Anonymous]
path=/samba/anonymous
readonly=No
guestok=Yes

[secured]
path=/samba/secured
validusers=@smbgrp
readonly=No
[root@server1samba]#
现在在windows机器中可以使用相应的凭证来查看文件夹。

你的用户srijan同样面对着写入权限的问题,让我们来给出权限:

cd/samba
chown-Rsrijan:smbgrpsecured/
现在Samba用户在共享的目录中有写入的权限了,开始High吧.

注:

如果你的chcon命令不成功,请按下面的方式尝试:

chcon-hsystem_u:object_r:forderA/path/to/B
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux Samba