samba 基本配置及自定义控制
Samba简介:
Samba实现的是Linux和Windows之间的一种共享,为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,共享文件系统、打印机及其他资源。
实验环境:
基本配置
[root@lhh ~]# yum install samba -y # server安装Samba服务 [root@lhh ~]# firewall-cmd --add-service=samba # 防火墙开启Samba服务 success [root@lhh ~]# firewall-cmd --add-service=samba --permanent # 永久生效 success
[root@lhh samba]# cd /etc/samba/ # Samba配置文件目录
[root@lhh samba]# ls
lmhosts smb.conf
[root@lhh ]# vim /etc/samba/smb.conf # Samba的主配置文件 ---------------- 配置文件重要的条目注释说明 ------------------------ [global] # Samba全局配置 workgroup = MYGROUP # 工作组名称,Windows的为:WORKGROUP server string = Samba Server Version %v # 服务器介绍信息,参数%v为显示SMB版本号 # interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 # Samba运行端口,默认是运行在所有端口上 # hosts allow = 127. 192.168.12. 192.168.13. # 访问控制,默认是允许所以都可以访问 log file = /var/log/samba/log.%m # 定义日志文件的存放位置与名称,参数%m为来访的主机名 max log size = 50 # 定义日志文件的最大容量为50KB security = user # 安全验证的方式,总共有4种,如下: #share:来访主机无需验证口令;比较方便,但安全性很差 #user:需验证来访主机提供的口令后才可以访问;提升了安全性 #server:使用独立的远程主机验证来访主机提供的口令(集中管理账户) #domain:使用域控制器进行身份验证 passdb backend = tdbsam #定义用户后台的类型,共有3种 ,如下: # smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码 # tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户 # ldapsam:基于LDAP服务进行账户验证 load printers = yes # 设置在Samba服务启动时是否共享打印机设备,保存默认即可! cups options = raw # 打印机的选项,保存默认即可!
创建Samba用户时,本地必须存在此用户,但是Samba密码可以与系统密码不一致。
[root@lhh ~]# useradd -s /sbin/nologin test1 [root@lhh ~]# useradd -s /sbin/nologin test2 # /sbin/nologin:表示此用户不可以登录系统,可以作为服务用户使用 [root@lhh ~]# echo 123456 | passwd --stdin test1 [root@lhh ~]# echo 123456 | passwd --stdin test2 # 设置两个测试用户密码为:123456
[root@lhh ~]# yum whatprovides */smbpasswd # 查询命令相关的包 samba-client-4.1.1-31.el7.x86_64 : Samba client programs [root@lhh ~]# yum install samba-client -y # 安装命令
[root@lhh ~]# smbpasswd -a test1 # -a:添加用户 New SMB password: # 设置 test1 密码 Retype new SMB password: # 再次确认密码 Added user test1. # 添加用户完成
[root@lhh ~]# smbpasswd -a test2 # 继续添加test2 New SMB password: Retype new SMB password: Added user test2. 命令说明:# smbpasswd [选项] 用户名 # -a:添加用户 # -d:禁用用户 # -e:启用用户 # -x:删除用户 [root@lhh ~]# pdbedit -L # 查看Samba的用户 test1:1001: test2:1002:
------------- 配置文件重要的条目注释说明 ---------------- [homes] # 共享参数 comment = Home Directories # 描述信息 browseable = no # 指定共享信息是否在“网上邻居”中可见 writable = yes # 定义是否可以执行写入操作,与“read only”相反 [printers] # 打印机共享参数 comment = All Printers path = /var/spool/samba # 共享文件的实际路径(重要)。 browseable = no guest ok = no # 是否所有人可见,等同于"public"参数。 writable = no printable = yes
[root@lhh ~]# mkdir /aaa # 创建一个 aaa目录作为共享 [root@lhh ~]# vim /etc/samba/smb.conf # 编辑主配置文件,在底部编辑条目将aaa共享出去 -------------------- 省略部分输出信息 ------------------------ [aaa-test] # 共享名称,可以随意定义 comment = aaa-test # 描述名称,可以随意定义 path = /aaa # 共享的路径 [root@lhh ~]# systemctl restart smb # 重启Samba服务
虽然可以访问samba-server的共享了,但是无访问里面的目录!
[root@lhh ~]# chcon -R -t samba_share_t /aaa/ # 修改上下文,就可以访问共享目录了
[root@lhh ~]# setsebool -P samba_enable_home_dirs on # 开启家目录的bool值
检查思路:
1、检查配置文件
[root@lhh ~]# vim /etc/samba/smb.conf # 进入主配置文件 ----------------------- 省略部分输出信息 ---------------------------------- [aaa-test] # 共享名称,可以随意定义 comment = aaa-test # 描述名称,可以随意定义 path = /aaa # 共享的路径 writable = yes # 可写权限 [root@lhh ~]# systemctl restart smb # 重启Samba服务 # 发现还是无法创建
2、检查文件系统权限
[root@lhh ~]# ls -ld /aaa/ # 查看共享目录权限,发现test1没有可写权限!
drwxr-xr-x. 2 root root 6 8月 13 20:16 /aaa/
[root@lhh ~]# chmod o+w /aaa/ # 给其他用户加上可写权限,因为test1是属于其他用户
访问控制设置
一、自定义用户写的权限
[root@lhh ~]# vim /etc/samba/smb.conf # 进入主配置文件 ---------------- 省略部分输出信息 ---------------------- [aaa-test] # 共享名称,可以随意定义 comment = aaa-test # 描述名称,可以随意定义 path = /aaa # 共享的路径 writable = no # 可写权限 write list = test1 # 指定某个用户可写,如需要多个用户格式为:test,test2.......... [root@lhh ~]# systemctl restart smb # 重启Samba服务
[root@mail ~]# yum install samba-client -y # 安装Samba客户端 [root@mail ~]# smbclient //192.168.115.201/aaa-test -U test2%123456 ----------------------- 命令注释 ------------------------ # //192.168.115.201/aaa-test:共享IP地址+ 共享名称 # test2%123456:用户为:test2;密码为:123456
-------------------- 输出信息 ------------------ Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.1] smb: \> mkdir test2 # 创建目录 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \test2 # test2是没有权限无法创建
二、自定义用户浏览的权限
[root@lhh ~]# vim /etc/samba/smb.conf # 进入主配置文件 ------------- 省略部分输出信息 ---------------------- [aaa-test] # 共享名称,可以随意定义 comment = aaa-test # 描述名称,可以随意定义 path = /aaa # 共享的路径 writable = no # 可写权限 write list = test1 # 指定某个用户可写 browseable = no # 拒绝所有用户浏览共享目录,增加条目 [root@lhh ~]# systemctl restart smb # 重启Samba服务
[root@mail ~]# smbclient -L //192.168.115.201/ -U test2%123456 --------------- 省略了输出信息 ------------------- test2 Disk Home Directories # 此时就无法浏览aaa-test目录,只能看见test2家目录
------------ 省略输出信息,跳到配置文件90行左右,添加条目 ------------ [global] 89 workgroup = WORKGROUP # 保存默认 90 server string = Samba Server Version %v # 保存默认 91 config file = /etc/samba/smb.conf.%U # 添加此条目 ===================== 添加的条目简单注释 ============= # 哪个用户登录过来的时候,回去看/etc/samba/有没有 smb.conf.用户名 的配置文件 # 如果有,则使用自己后缀名的配置文件 # 如果没有,则使用 /etc/samba/smb.conf 主配置文件
[root@lhh ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.test1
# 将主配置文件复制一份作为test1的配置文件
[root@lhh ~]# vim /etc/samba/smb.conf.test1 # 编辑test1生成的配置文件 -------------------- 省略输出信息,直接跳到底端 ---------------------- [aaa-test] comment = aaa-test path = /aaa writable = no write list = test1 browseable = yes # 原本是:no;修改为:yes
但是Linux客户端浏览不了共享目录,就实现了自定义浏览控制
[root@mail ~]# smbclient -L //192.168.115.201/ -U test2%123456 ----------------- 省略了输出信息 ----------------------- test2 Disk Home Directories [root@lhh ~]# ls /etc/samba/ lmhosts smb.conf smb.conf.test1
------------------ 最后整体的解释 ---------------------- # 因为上面主配置文件添加了:config file = /etc/samba/smb.conf.%U # 当test1访问Samba时,会使用自己后缀名的配置文件(smb.conf.test1) # test1 不会使用主配置文件,自己的配置文件时允许可以浏览的,所以就可以浏览共享目录 # test2 没有自己的配置文件,只能使用主配置文件( smb.conf),但是主配置文件是拒绝所有用户浏览的,所有无法浏览
三、自定义IP地址访问
[root@lhh ~]# vim /etc/samba/smb.conf # 进入主配置文件 --------------- 省略部分输出信息 ----------------------- [aaa-test] comment = aaa-test path = /aaa writable = yes hosts allow = 192.168.x.x # 如果增加这条目,只允许某个IP地址访问 # hosts deny = 192.168.x.x # 如果增加这条目,只拒绝某个IP地址访问 # 接下来我们只测试允许的条目,拒绝的同理
[root@mail ~]# smbclient //192.168.115.201/aaa-test -U test2%123456 ---------------- 省略部分输出信息 -------------- 111 D 0 Mon Aug 13 21:18:33 2018 222 D 0 Mon Aug 13 21:18:37 2018 # Linux是可以正常访问的
到此已经完成Samba的基本配置和自定义控制了。
作者:神奇二进制
文章出处:https://www.cnblogs.com/l-hh/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
文章如有叙述不当的地方,欢迎指正。如果觉得文章对你有帮助,可以精神上的支持 [推荐] 或者 [关注我] ,一起交流,共同进步!