Linux系统samba服务

来源:互联网 发布:淘宝网百雀羚旗舰店 编辑:程序博客网 时间:2024/06/04 17:53

一、samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages
Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS
over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 (
document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;
samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 (
testparm )等等; samba-client:这个套件则提供了当 Linux 做为SAMBA Client
端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。

安装配置1 yum install samba samba-client.x86_64 samba-common -y                                                   ##安装samba-->systemctl start smb                  ##开启samba-->systemctl enable smb.service         ##设置开启启动-->systemctl stop firewalld             ##关闭firewalld服务

安装samba , samba-client, samba-servr套件
这里写图片描述

开启并设置开机启动
这里写图片描述

1.创建用户及基本命令

server1 smbpasswd -a student                              ##创建samba用户,该用户必须系统已经存在,不然创建失败2 pdbedit -L                  ##列出samba用户3 pdbedit -x student          ##删除samba用户测试client      1 smbclient //172.25.254.127/student -U student                                     ##用samba用户student登陆127主机共享目录-->ls无法看到家目录server1 getsebool -a | grep samba   ##查找过滤samba的selinux值--> setsebool -P samba_enable_home_dirs on                                    ##开启samba的家目录可以看client1 smbclient //172.25.254.127/student -U student33                                 ##再次登陆,测试成功-->ls

创建samba用户
这里写图片描述

列出samba用户,-x删除samba用户,再建立
这里写图片描述

client登陆无法访问家目录
这里写图片描述

打开samba共享家目路可见的selinux值
这里写图片描述

测试成功
这里写图片描述

二、共享目录

1.自创建的目录

server1 mkdir /hello                          ##创建根下的hello目录 -->touch /hello/hello{1..3}             ##在该目录下创建三个文件2 semanage fcontext -a -t samba_share_t '/hello(/.*)?’                                         ##更改hello目录的安全上下文3 restorecon -RvvF /hello/              ##重新刷新安全上下文4 vim /etc/samba/smb.conf               ##编辑samba的配置文件  89 workgroup = hello                  ##设置共享目录为hello目录  321 [DATA]                            ##目录名称  322 comment = local directory /hello  ##介绍  323 path = hello                      ##共享目录的绝对路径-->systemctl restart smb                ##重启samba服务5 测试clientsmbclient //172.25.254.127/DATA -U student                                      ##用samba用户student登陆127主机共享目录DATA

编辑samba的配置文件,共享目录是hello
这里写图片描述

名字是DATA,具体如图
这里写图片描述

创建共享目录,更改目录的安全上下文,并刷新安全上下文
这里写图片描述

测试成功
这里写图片描述

2.系统目录

1 vim /etc/samba/smb.conf               ##编辑samba的配置文件  324 [CONFIG]                          ##目录名称  325 comment = local directory /mnt    ##介绍  326 path = /mnt                       ##共享目录的绝对路径-->systemctl restart smb                ##重启samba服务2 getsebool -a | grep samba             ##共享目录的绝对路径--> setsebool -P samba_export_all_ro on ##开启系统目录可以看3 测试clientsmbclient //172.25.254.127/CONFIG -U student                                ##用samba用户student登陆127主机共享目录CONFIG  

将系统目录写入配置文件如图
这里写图片描述

登陆成功不可见
这里写图片描述

打开系统目录可见的selinux值
这里写图片描述

测试成功
这里写图片描述

三、参数配置

1.读写控制

 允许系统目录可写1 vim /etc/samba/smb.conf             ##编辑samba的配置文件  330 writable=yes                    ##允许用户可写-->systemctl restart smb              ##重启samba服务2 setsebool -P samba_export_all_rw on ##开启系统目录可以写的selinux3 测试client mount -o username=student,password=student //172.25.254.127                                      ##用studnet用户可以直接登陆挂载-->df-->cd /mnt->ls-->touch hello

配置文件允许用户可写
这里写图片描述

打开系统共享目录可写的selinux值
这里写图片描述

测试成功
这里写图片描述

指定用户可写1 vim /etc/samba/smb.conf  330# writable=yes              ##注释掉全部用户可写  331 write list = student       ##指定student用户可写-->systemctl restart smb2 测试client mount -o username=student,password=student //172.25.254.127                                     ##用studnet用户可以直接登陆挂载-->df-->cd /mnt->ls-->rm -fr hello mount -o username=nihao,password=nihao //172.25.254.127                                        ##nihao用户可挂载但不可以写-->df-->cd /mnt->ls-->touch nihao

指定student用户可写
这里写图片描述

测试nihao用户不可写
这里写图片描述

student用户可写
这里写图片描述

指定用户组可写1 vim /etc/samba/smb.conf  331 write list = +student         ##指定student用户组可以写-->systemctl restart smb                2 usermod -G student nihao          ##给nihao用户增加student附加组-->id nihao                         ##查看nihao用户的id3 测试client mount -o username=nihao,password=nihao //172.25.254.127 ##用studnet用户可以直接登陆挂载-->df-->cd /mnt->ls-->touch nihao                      ##创建文件成功,测试成功

指定student用户组可写
这里写图片描述

nihao用户也student组
这里写图片描述

指定nihao用户为系统管理员
这里写图片描述

测试成功,可写,同时建立文件是root用户权限
这里写图片描述

2 .访问控制

匿名访问

1 vim /etc/samba/smb.conf  125 map to guest = bad user     ##指向匿名用户  324 guet ok = yes               ##允许匿名登陆client测试 2 smbclient //172.25.254.127/DATA ##匿名登陆访问成功

匿名用户指向
这里写图片描述

允许匿名用户登陆
这里写图片描述

匿名用户登陆测试成功
这里写图片描述

通过IP控制访问

1 vim /etc/samba/smb.conf  325 hosts deny =172.25.254.227   ##拒绝227主机访问2 vim /etc/samba/smb.conf  325 hosts allow =172.25.254.27   ##允许27主机访问

拒绝227主机访问
这里写图片描述

227主机访问被拒绝
这里写图片描述

允许27主机登陆访问
这里写图片描述

27主机登陆成功
这里写图片描述
指定用户登陆

3 vim /etc/samba/smb.conf  326 valid users = student       ##允许student用户登陆

指定student用户可以登陆
这里写图片描述

student用户登陆成功
这里写图片描述
指定用户组登陆

4 vim /etc/samba/smb.conf  326 valid users = +student       ##允许student用户组登陆

指定student组可以登陆
这里写图片描述

增加nihao用户,并加入samba用户
这里写图片描述

给nihao用户增加附加组student
这里写图片描述

nihao用户登陆成功
这里写图片描述

2.多用户挂载

client1 yum install cifs-utils -y               ##安装cifs-utils2 vim /root/hello                         ##编辑认证文件  username=nihao                          ##用户  password=nihao                          ##密码3 chmod 660 /root/hello                   ##给认证660权限测试1 monut -o credentials=/root/hello,multiuser,sec=ntlmssp //172.25.254.127/CONFIG /mnt/                      ##匿名的登陆-->df2 su - student                            ##切换student用户-->cd /mnt/-->ls                                     ##被拒绝3 cifscreds add -u student 172.25.254.127 ##增加student用户登陆认证-->ls                                     ##测试成功

安装cifs-utils插件
这里写图片描述

编辑认证文件,并给该文件660权限
这里写图片描述

多用户挂载登陆,切换到student用户查看被拒绝,用cifscreds增加student用户,测试成功
这里写图片描述

原创粉丝点击