侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 446 篇文章
  • 累计创建 182 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Samba Server Installation and Configuration on CentOS 7

WinJay
2018-08-22 / 0 评论 / 0 点赞 / 371 阅读 / 9459 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

本教程介绍如何使用匿名和安全的samba共享在CentOS 7上配置Samba服务器。Samba是一个开源/免费软件套件,为Windows/SMB等CIFS客户端提供无缝文件和打印服务。与其他SMB/CIFS实现不同,Samba是免费提供的,并且允许Linux/Unix服务器和基于Windows的客户端之间的互操作性。


**************************************************************

1.初步说明

我有一个全新安装的CentOS7服务器,我将在其上安装samba服务。当然,需要有一台Windows机器来检查必须可以通过CentOS7服务器访问的samba服务。我的CentOS7服务器的主机名为10.191.142.16

注意:

  • Windows计算机必须位于同一工作组中。要检查Windows机器中的值,请在cmd提示符下运行命令

net config workstation

它会是这样的:

image.png

您的Windows机器必须与CentOS 7.0服务器中的工作站域相同,即在我的情况下是WORKGROUP。

  • 要使Windows机器在Windows中可访问,请按以下步骤操作。在运行终端中,添加服务器IP地址的条目:

notepad C:\Windows\System32\drivers\etc\hosts

就我而言,就像这样,只需保存值。

10.191.142.16 SambaShare  SambaShare

2.匿名Samba共享

首先,我将解释使用匿名共享安装Samba的方法。要安装Samba软件,请运行:

[root@VMWare ~]# yum install samba samba-client.x86_64 samba-common-tools.x86_64

image.pngimage.png

它将从CentOS软件库安装当前的Samba版本。

现在进行配置samba,编辑文件/etc/samba/smb.conf。 在更改配置文件之前,我们先将原来的文件备份成 /etc/samba/smb.conf.bak

[root@VMWare ~]# cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak image.png

因为我想从一个空文件开始,我将使用cat命令清空smb.conf。这比删除vi中的所有行更快。

[root@VMWare ~]# cat /dev/null > /etc/samba/smb.conf image.png

然后用vim命令进行编辑smb.conf配置文件

[root@VMWare ~]# vim /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================ 
[Public]
path = /mnt/Samba.Share/01.Public
browsable =yes
writable = yes
guest ok = yes
read only = no

image.png

以上编辑完成后保存退出并将服务加入开机启动项及重启服务:

[root@VMWare ~]# systemctl enable smb.service nmb.service && \
 systemctl restart smb.service nmb.service

image.png

看一下服务器的防火墙服务是否开启:

[root@SoftBase samba]# systemctl status firewalld.service image.png

可以看到Firewall是关闭的状态,如果是开启的话是显示如此: image.png

如果防火墙是启动状态,CentOS7的FireWall防火墙将会阻止samba的访问,为了能让samba程序正常运行,我们运行以下命令

firewall-cmd --permanent --zone=public --add-service=samba

[root@SoftBase samba]# firewall-cmd --permanent --zone=public --add-service=samba

image.png

Finally, reload the firewall to apply the changes./最后,重新加载防火墙以应用更改。

[root@SoftBase samba]# firewall-cmd --reload

image.png

Now you can access the Centos 7 share in Windows as follows. Go to the Run prompt and type \\SambaShare,或者直接用IP替代

\\10.191.142.16 image.png

从Windows机器上,在尝试打开文件夹时,却提示没有权限image.png

下面我们来检查一下文件夹的共享权限:

[root@VMWare /]# cd /mnt && ll
total 96  
drwxr-xr-x  2 root root  10 Apr 22 06:44 Samba.Share

image.png

可以看到文件夹的权限没有问题,但是所属用户及用户组却都是root,我们需要修改一下相应权限及所属用户信息:

[root@VMWare mnt]# chown -Rf nobody:nobody Samba.Share/ image.png

并且,我们需要允许SELinux的samba配置如下:
[root@VMWare mnt]# chcon -t samba_share_t Samba.Share/ image.png

然后再通过Windows访问试一下,如下图,是可以正常打开并且有相应权限的。 image.png

**************************************************************

3.安全的samba服务器

我将创建一个组GKFZ和用户admin来访问具有适当身份验证的samba服务器,共享的文件夹为:/mnt/Samba.Share/002.Private [root@VMWare Samba.Share]# groupadd GKFZ && useradd admin -G GKFZimage.png

创建完用户后进行密码设置:

[root@VMWare Samba.Share]# smbpasswd -a admin 
New SMB password:
Retype new SMB password:
Added user admin.
[root@VMWare Samba.Share]# 

image.png

然后对想要共享的文件夹进行相应权限及SELinux设置:
由于我挂载的是NTFS类型的分区,所以在用chmod 及chown修改相应权限时不起作用。只能通过修改/etc/fstab文件里增加相应参数进行修改。(具体可以参考:https://bbs.archlinuxcn.org/viewtopic.php?id=2806 及 https://blog.csdn.net/shendl/article/details/6291239 在此不多赘述)

我的fstab文件配置为:

/dev/sdb1   /mnt/sdb1   ntfs    defaults,gid=keer,uid=kejianerbu,umask=000    0 0

image.png

umask 值的说明参考

1、查看用户的权限掩码 命令: umask

目录:最大权限是777,减去umask的后三位(022),该用户创建的目录权限即默认是755
文件:文件的权限必须为偶数。如果是奇数,则需-1变成偶数。777-022=755,每一位都-1变成偶数,即为644。

image.png

2、修改用户权限掩码 命令:umask *** ---临时生效

***可以是1-3位数,每一位的数值必须<= 7

image.png

3、修改默认umask 修改 .bash_profile 文件 ---永久生效

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
alias ls='ls -CF'
PS1='SZDATA_suheadof:$PWD> '; export PS1
umask 022                        ###就是这个问题

SELinux设置如下:
image.png

可能还是跟我的Ntfs类型分区有关,暂时先不管他,继续往下走。

继续编辑samba的配置文件:

[root@VMWare Samba.Share]# vim /etc/samba/smb.conf

#新增以下内容
[Private]
path = /mnt/Samba.Share/02.Private
valid users = @admin
guest ok = no
writable = yes
browsable = yes

image.png

最后进行重启服务器测试配置文件:
[root@VMWare Samba.Share]# systemctl restart smb.service nmb.service

通过Windows系统访问试一下,可以看到游客是没有权限的,需要我们进行登录,输入帐号与密码:admin nerc登录成功。image.png

在新建目录与文件时还是报错了。。image.png

对两个目录进行权限配置:

[root@VMWare Samba.Share]# chmod -Rf 777 01.Public/
[root@VMWare Samba.Share]# chmod -Rf 777 02.Private/

再次尝试建立文件及目录测试正常 image.png

查看一下SELinux状态:
[root@VMWare Samba.Share]# cat /etc/selinux/config image.png

因为我这是内网服务器,暂时先把SELinux给关掉了,如果是互联网服务器的话还是建议开启。。

[root@VMWare Samba.Share]# vim /etc/selinux/config image.png

可以看到已经可以正常访问了。。。关于权限的设置,目前好像只能通过fstab文件挂载进行修改。。

暂时先到这里吧。。

0

评论区