前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >centos创建samba共享_centos设置samba

centos创建samba共享_centos设置samba

作者头像
全栈程序员站长
发布2022-11-09 17:04:01
发布2022-11-09 17:04:01
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

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

初步说明

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

我的CentOS7的服务器主机名:server1.example.com ,IP是:192.168.0.100

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

代码语言:javascript
代码运行次数:0
复制
net config workstation

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

代码语言:javascript
代码运行次数:0
复制
notepad C:\Windows\System32\drivers\etc\hosts

在我的例子中是这样保存的:

[…] 192.168.0.100 server1.example.com centos

Samba匿名共享

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

代码语言:javascript
代码运行次数:0
复制
yum install samba samba-client samba-common

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

代码语言:javascript
代码运行次数:0
复制
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

然后来新建我们的conf文件:

代码语言:javascript
代码运行次数:0
复制
vi /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#============================ Share Definitions ============================== 
[Anonymous]
path = /samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no

:wq#保存并退出
代码语言:javascript
代码运行次数:0
复制
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service

在下面CentOs7的防火墙cmd会阻止Samba的访问,为了摆脱这个,我们运行:

代码语言:javascript
代码运行次数:0
复制
[root@server1 ~]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@server1 ~]#
[root@server1 ~]# firewall-cmd --reload
success
[root@server1 ~]#

现在你可以在Windows中访问CentOS7的共享文件了,在命令提示行中输入:

代码语言:javascript
代码运行次数:0
复制
\\centos

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

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

代码语言:javascript
代码运行次数:0
复制
[root@server1 samba]#ls -l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[root@server1 samba]#

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

代码语言:javascript
代码运行次数:0
复制
[root@server1 samba]#cd /samba
[root@server1 samba]#chmod -R 0755 anonymous/
[root@server1 samba]#chown -R nobody:nobody anonymous/
[root@server1 samba]#ls -l anonymous/
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[root@server1 samba]#

进一步我们需要配置Selinux

代码语言:javascript
代码运行次数:0
复制
chcon -t samba_share_t anonymous/

现在我们可以浏览和创建文件了

在服务器上查看:

代码语言:javascript
代码运行次数:0
复制
[root@server1 samba]#ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[root@server1 samba]#

安全的Samba服务器

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

代码语言:javascript
代码运行次数:0
复制
[root@server1 samba]#groupadd smbgrp
[root@server1 samba]#useradd srijan -G smbgrp
[root@server1 samba]#smbpasswd -a srijan

[root@server1 samba]# smbpasswd -a srijan
New SMB password:<--yoursambapasswordRetype new SMB password:<--yoursambapasswordAdded user srijan.
[root@server1 samba]#

现在在Samba文件夹下创建一个文件夹:Secured ,并且给出权限:

代码语言:javascript
代码运行次数:0
复制
mkdir -p /samba/secured

同样的,我们允许Selinux来监听:

代码语言:javascript
代码运行次数:0
复制
cd /samba
chmod -R 0777 secured/
chcon -t samba_share_t secured/

再次编辑配置文件:

代码语言:javascript
代码运行次数:0
复制
vi /etc/samba/smb.conf

[...]
[secured]
 path = /samba/secured
 valid users = @smbgrp
 guest ok = no
 writable = yes
 browsable = yes

systemctl restart smb.service

systemctl restart nmb.service

像下面这样测试:

代码语言:javascript
代码运行次数:0
复制
testparm

[root@server1 samba]# testparm 
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Anonymous]"
Processing section "[secured]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <--ENTER[global]
    netbios name = CENTOS
    server string = Samba Server %v
    map to guest = Bad User
    dns proxy = No
    idmap config * : backend = tdb

[Anonymous]
    path = /samba/anonymous
    read only = No
    guest ok = Yes

[secured]
    path = /samba/secured
    valid users = @smbgrp
    read only = No
[root@server1 samba]#

现在在windows机器中可以使用相应的凭证来查看文件夹。

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

代码语言:javascript
代码运行次数:0
复制
cd /samba
chown -R srijan:smbgrp secured/

现在Samba用户在共享的目录中有写入的权限了,开始High吧.

注:

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

代码语言:javascript
代码运行次数:0
复制
chcon -h system_u:object_r:forderA  /path/to/B

———————————– 在CentOS 7中Samba服务安装和配置 https://blog.51cto.com/lybing/1676515

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月25日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初步说明
  • Samba匿名共享
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档