爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      samba

      首页 知识中心 云端实践 文章详情页

      samba

      2023-06-25 07:12:33 阅读次数:442

      samba,客户端,服务端

       

      前言

      ftp用户端与服务端之间是通过协议访问的,但不支持通过挂载的方式访问,因为他不是一个文件系统。

      samba这款软件使用的是CIFS协议,使用CIFS这个协议的软件不仅有SAMBA软件,还有windows 系统的共享功能;samba可以实现跨操作系统平台的文件共享,比如linux和windows之间的文件共享、linux与linux之间的共享、windows与windows之间的共享;

      ​centos7搭建注意点​:

        •  
      • 注意地址解析问题
      • 无需重启服务配置文件就能生效,但最好重启服务,重启两个服务smb、nmb
      • 注意版本问题
      • 注意smb的权限与文件系统权限的交集
        •  

      ​samba的问题​:

      最大的问题就是权限问题,在权限当中搞的太灵活了,valid users、write list、read only之间的关系相互有冲突,让人搞不清是哪一条在起作用,让人非常恼火,我们可以在samba当中很轻松的让某些用户或组有读写权限,让匿名用户有只读权限,但是很难让某个普通用户拥有只读权限;

      第二个就是需要周围设置,比如有时候需要windows开启smb1.0功能,有时候还要注意其解析问题。总的来说,肯定是不如windows使用共享用鼠标点几下来的方便。

      需求

        •  
      • development_1的成员:zhangsan、lisi、wanger
      • development_2的成员:jia、yi、bing
        •  

      希望实现匿名用户有读权限,而以上两个组的成员具有读写权限;

      ###################################服务端配置
      [root@c71 ~]# !17
      ip addr show ens33 | awk -F" " 'NR==3{print $2}'
      192.168.80.136/24
      # 下面这几项必须保持一致,不然的话,当我们用客户端访问卡的要死
      [root@c71 ~]# hostname
      c71
      [root@c71 ~]# cat /etc/hostname
      c71
      [root@c71 ~]# cat /etc/hosts
      127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 c71
      ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 c71
      [root@c71 ~]# ping c71
      PING localhost (127.0.0.1) 56(84) bytes of data.
      64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.037 ms

      [root@c71 ~]# cat /etc/redhat-release
      CentOS Linux release 7.9.2009 (Core)
      [root@c71 ~]# systemctl stop firewalld
      [root@c71 ~]# systemctl disable firewalld
      [root@c71 ~]# cat /etc/selinux/config | grep disabled
      # disabled - No SELinux policy is loaded.
      SELINUX=disabled
      [root@c71 ~]# yum -y install samba &> /dev/null;
      [root@c71 ~]#systemctl enable smb ; systemctl enable nmb ; systemctl start smb ; systemctl start nmb ;
      [root@c71 ~]# ss -tunlp | egrep '(445|137|138|139)'
      [root@c71 /]# mkdir /smb_share ; chmod 777 /smb_share

      [root@c71 ~]# groupadd development_2
      [root@c71 ~]# groupadd development_1
      [root@c71 ~]# useradd -s /sbin/nologin -g development_1 zhangsan
      [root@c71 ~]# useradd -s /sbin/nologin -g development_1 lisi
      [root@c71 ~]# useradd -s /sbin/nologin -g development_1 wanger
      [root@c71 ~]# useradd -s /sbin/nologin -g development_2 jia
      [root@c71 ~]# useradd -s /sbin/nologin -g development_2 yi
      [root@c71 ~]# useradd -s /sbin/nologin -g development_2 bing
      Failed to find entry for user zhangsan.
      [root@c71 ~]# smbpasswd -a zhangsan
      New SMB password:
      Retype new SMB password:
      Added user zhangsan.
      [root@c71 ~]# smbpasswd -a lisi
      New SMB password:
      Retype new SMB password:
      Added user lisi.
      [root@c71 ~]# smbpasswd -a wanger
      New SMB password:
      Retype new SMB password:
      Added user wanger.
      [root@c71 ~]# smbpasswd -a jia
      New SMB password:
      Retype new SMB password:
      Added user jia.
      [root@c71 ~]# smbpasswd -a yi
      New SMB password:
      Retype new SMB password:
      Added user yi.
      [root@c71 ~]# smbpasswd -a bing
      New SMB password:
      Retype new SMB password:
      Added user bing.
      [root@c71 ~]# smbpasswd -e bing
      Enabled user bing.
      [root@c71 ~]# smbpasswd -e yi
      Enabled user yi.
      [root@c71 ~]# smbpasswd -e jia
      Enabled user jia.
      [root@c71 ~]# smbpasswd -e zhangsan
      Enabled user zhangsan.
      [root@c71 ~]# smbpasswd -e wanger
      Enabled user wanger.
      [root@c71 ~]# smbpasswd -e lisi
      Enabled user lisi.

      [root@c71 ~]# testparm
      Load smb config files from /etc/samba/smb.conf
      Loaded services file OK.
      Server role: ROLE_STANDALONE
      Press enter to see a dump of your service definitions
      # Global parameters
      [global]
      printcap name = cups
      security = USER
      workgroup = SAMBA
      idmap config * : backend = tdb
      cups options = raw

      [smb_share]
      comment = smb_share
      guest ok = Yes
      path = /smb_share
      write list = @development_1 @development_2
      ###################################客户端测试##########
      root@u21:~# apt -y install samba-client &> /dev/null
      root@u21:~# smbclient //192.168.80.136/smb_share
      Enter WORKGROUP\root's password:
      Anonymous login successful
      Try "help" to get a list of possible commands.
      smb: \> ls
      . D 0 Sun Feb 20 11:14:50 2022
      .. D 0 Sun Feb 20 11:12:48 2022
      issue N 23 Sun Feb 20 11:14:50 2022
      fstab N 541 Sun Feb 20 11:14:50 2022
      hostname N 4 Sun Feb 20 11:14:50 2022
      passwd N 1434 Sun Feb 20 11:14:50 2022

      52403200 blocks of size 1024. 50726628 blocks available
      smb: \> rm issue
      NT_STATUS_ACCESS_DENIED deleting remote file \issue

      root@u21:~# smbclient //192.168.80.136/smb_share -U jia%cba-123
      Try "help" to get a list of possible commands.
      smb: \> ls
      . D 0 Sun Feb 20 11:14:50 2022
      .. D 0 Sun Feb 20 11:12:48 2022
      issue N 23 Sun Feb 20 11:14:50 2022
      fstab N 541 Sun Feb 20 11:14:50 2022
      hostname N 4 Sun Feb 20 11:14:50 2022
      passwd N 1434 Sun Feb 20 11:14:50 2022

      52403200 blocks of size 1024. 50726764 blocks available
      smb: \> rm issue
      NT_STATUS_ACCESS_DENIED deleting remote file \issue
      smb: \> exit
      root@u21:~# smbclient //192.168.80.136/smb_share -U jia%cba-123
      Try "help" to get a list of possible commands.
      smb: \> ls
      . D 0 Sun Feb 20 11:14:50 2022
      .. D 0 Sun Feb 20 11:12:48 2022
      issue N 23 Sun Feb 20 11:14:50 2022
      fstab N 541 Sun Feb 20 11:14:50 2022
      hostname N 4 Sun Feb 20 11:14:50 2022
      passwd N 1434 Sun Feb 20 11:14:50 2022

      52403200 blocks of size 1024. 50726744 blocks available
      smb: \> rm issue
      smb: \> exit
      root@u21:~# smbclient //192.168.80.136/smb_share -U zhangsan%cba-123
      Try "help" to get a list of possible commands.
      smb: \> ls
      . D 0 Sun Feb 20 11:16:14 2022
      .. D 0 Sun Feb 20 11:12:48 2022
      fstab N 541 Sun Feb 20 11:14:50 2022
      hostname N 4 Sun Feb 20 11:14:50 2022
      passwd N 1434 Sun Feb 20 11:14:50 2022

      52403200 blocks of size 1024. 50726748 blocks available
      smb: \> rm passwd
      smb: \> exit

      基本原理

      samba组件

        •  
      • netbios(网络基本输入输出系统,windows主机之间基于主机名互相通信的机制,是广播机制)
        •  

      windows既然不开共享,也会侦听137和138,因为netbios就是windows通过主机名进行互相访问的基础服务,smb也需要这种服务,每一次特别慢,因为第一次是广播。netbiosnmbd服务器控制,这个服务最好要打开,因为如果不打开windows访问的时候会非常慢。

        •  
      • wins
        •  

      netbios广播解析太慢了,后面出现了单节点解析,也就是netbios的升级版,也叫wins服务,

        •  
      • winbind
        •  

      samba的三个子服务之一、当samba启用了AD域功能之后,才会启动此服务,使用AD域需要打开winbindd

      配置文件

       

      配置文件结构:配置文件的结构是这样的,总体分为全局设定和特定共享设定,而特定共享设定又分为:家目录、打印机、自定义共享;

       

      全局设定

      global:netbios、workgroup

        •  
      • smb服务端有两种服务模式:域模式、工作组;
      • smb服务端有个服务:smb和nmb、smb侦听在tcp/139和tcp/445,主要用来传输使用(windows共享也是如此),nmb主要用来解析netbios地址,侦听在udp/137和udp/138端口。
        •  
      [root@C8 ~]# rpm -ql samba | grep sys  有两个system文件意味着有两个服务,一个常用,一个不常用
      /usr/lib/systemd/system/nmb.service
      /usr/lib/systemd/system/smb.service

      # 解释配置文件,example里面有比较详细的解释
      [root@C8 ~]# cd /etc/samba/ && ls
      lmhosts smb.conf smb.conf.example
      [root@C8 samba]# egrep -v '(^$|^#)' smb.conf
      # 全局设置
      [global]
      # workgroup = SAMBA # 工作组的名称,这和windows的工作组是一个意思,沿袭了windows一部分东西,windows的默认工作组是workgroup,好改一下;
      # 在centos6是可以通过sambaclient -L 探测服务端的工作组,centos7不行;
      workgroup = WORKGROUP
      # netbios的作用就是访问的时候可以使用netbiosname,而不用使用IP,有点类似于域名的概念,smbclient -L 后面直接跟netbios名字,但要依赖nmb服务
      # 也就是说要先启动nmb之后,客户端才能使用netbios名字进行访问,smb是侦听在137、138两端口,注意,Ping netbios是不行的
      netbios name = linux40
      security = user
      passdb backend = tdbsam
      printing = cups
      printcap name = cups
      load printers = yes
      cups options = raw
      [homes]
      comment = Home Directories
      valid users = %S, %D%w%S
      browseable = No
      read only = No
      inherit acls = Yes
      [printers]
      comment = All Printers
      path = /var/tmp
      printable = Yes
      create mask = 0600
      browseable = No
      [print$]
      comment = Printer Drivers
      path = /var/lib/samba/drivers
      write list = @printadmin root
      force group = @printadmin
      create mask = 0664
      directory mask = 0775

      user

      smb用户必须先是系统用户,用户的密码是通过samba自己维护的。

      # 当我们通过windows访问centos的smb的时候,让我们输入的账号并不是centos系统用户的账号,而是samba用户的账号和密码。
      # 添加访问的用户,smb用户首先得是一个系统用户,其次才能成为一个smb用户;
      # 列出smb用户
      [root@C8 ~]# pdbedit -L
      [root@C8 ~]# useradd -s /sbin/nologin smb1
      [root@C8 ~]# useradd -s /sbin/nologin smb2
      # 添加smb用户
      [root@C8 ~]# smbpasswd -a smb1
      New SMB password:
      Retype new SMB password:
      Added user smb1.
      [root@C8 ~]# smbpasswd -a smb2
      New SMB password:
      Retype new SMB password:
      Added user smb2.
      # 修改用户密码
      [root@C8 ~]# smbpasswd smb1
      New SMB password:
      Retype new SMB password:
      # 再列出
      [root@C8 ~]# pdbedit -L
      smb1:1001:
      smb2:1002:
      # 删除账号
      [root@C8 ~]# smbpasswd -x smb1

      # 下面这个文件就是smb的用户数据库文件
      [root@C8 ~]# ll /var/lib/samba/private/passdb.tdb
      -rw-------. 1 root root 421888 11月 14 18:51 /var/lib/samba/private/passdb.tdb

      # 查看用户的详细信息,有一个SID,也是从微软当中模拟而来的
      [root@C8 ~]# pdbedit -L -v smb1
      Unix username: smb1
      NT username:
      Account Flags: [U ]
      User SID: S-1-5-21-3762892953-1983712240-1896709800-1000 # 用户SID
      Primary Group SID: S-1-5-21-3762892953-1983712240-1896709800-513
      Full Name:
      Home Directory: \\LINUX40\smb1
      HomeDir Drive:
      Logon Script:
      Profile Path: \\LINUX40\smb1\profile
      Domain: LINUX40
      Account desc:
      Workstations:
      Munged dial:
      Logon time: 0
      Logoff time: 三, 06 2月 2036 23:06:39 CST
      Kickoff time: 三, 06 2月 2036 23:06:39 CST
      Password last set: 日, 14 11月 2021 18:54:12 CST
      Password can change: 日, 14 11月 2021 18:54:12 CST
      Password must change: never
      Last bad password : 0
      Bad password count : 0
      Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

      # 查看smb当前状态,当前没有人任何人连接
      [root@C8 ~]# smbstatus

      Samba version 4.13.3
      PID Username Group Machine Protocol Version Encryption Signing
      ----------------------------------------------------------------------------------------------------------------------------------------
      Service pid Machine Connected at Encryption Signing
      ---------------------------------------------------------------------------------------------
      No locked files

      host allow

      # 允许哪台主机访问,10. 就代表网络位是10就可以,也可以写死
      [global]
      hosts allow = 10. 192.168. 192.168.0.105

      log

      为每一个客户端单独准备一个日志文件

      [global]
      log_file = /var/log/samba/log.%I
      log level = 2 日志级别,默认是0,不记录。
      # 效果是为每一个客户端单独准备一个日志文件
      [root@C8 ~]# ls /var/log/samba/
      cores log.0.0.0.0 log.192.168.0.105 log.nmbd log.smbd old
      # 测试一下
      [root@template ~]# smbclient -L 192.168.0.104 -U smb1%123

      Sharename Type Comment
      --------- ---- -------
      print$ Disk Printer Drivers
      IPC$ IPC IPC Service (Samba 4.13.3)
      smb1 Disk Home Directories # 默认把自己家目录给共享出来了
      Reconnecting with SMB1 for workgroup listing.
      smbXcli_negprot_smb1_done: No compatible protocol selected by server.
      protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
      Unable to connect with SMB1 -- no workgroup available

      [root@C8 samba]# cat log.192.168.0.105
      [2021/11/14 19:24:06.145968, 2] ../../source3/auth/auth.c:329(auth_check_ntlm_password)
      check_ntlm_password: authentication for user [smb1] -> [smb1] -> [smb1] succeeded # 看到客户端信息
      [2021/11/14 19:24:06.146691, 2] ../../source3/param/loadparm.c:2864(lp_do_section)
      Processing section "[homes]"
      [2021/11/14 19:24:06.146856, 2] ../../source3/param/loadparm.c:2864(lp_do_section)
      Processing section "[printers]"
      [2021/11/14 19:24:06.146964, 2] ../../source3/param/loadparm.c:2864(lp_do_section)
      Processing section "[print$]"

      # 在客户端上直接访问服务端家目录
      [root@template ~]# smbclient //192.168.0.104/smb1 -U smb1%cba-123
      Try "help" to get a list of possible commands.
      smb: \> ls
      NT_STATUS_ACCESS_DENIED listing \*

      # 在服务端上看连接
      [root@C8 ~]# smbstatus
      Samba version 4.13.3
      PID Username Group Machine Protocol Version Encryption Signing
      ----------------------------------------------------------------------------------------------------------------------------------------
      37329 smb1 smb1 192.168.0.105 (ipv4:192.168.0.105:43574) SMB3_11 - partial(AES-128-CMAC)

      Service pid Machine Connected at Encryption Signing
      ---------------------------------------------------------------------------------------------
      smb1 37329 192.168.0.105 日 11月 14 19时26分42秒 2021 CST - -

      No locked files

      # 默认家目录共享,全是因为这个模块下的内容
      [homes]
      comment = Home Directories
      valid users = %S, %D%w%S
      browseable = No
      read only = No
      inherit acls = Yes

      其它

        •  
      • security = user,通过什么方式访问,user的意思是通过账号和密码的方式访问
      • passdb backend = tdbsam,这就是用户名密码存储的地方
        •  

      家目录

      [homes]
      # 注释信息
      comment = Home Directories
      # 有效用户,就是自己
      valid users = %S, %D%w%S

      # 是否允许它人浏览自己的家目录,默念不允许
      browseable = No
      read only = No
      inherit acls = Yes

      自定义

      [shared_name]
      path = /path/to/share_directory
      # 注释信息
      comment = COMMENT

      # 是否允许来宾访问
      guest ok = yes

      # 是否可写,另一种写法是read only = No 是不是只读的,如果是只读的,那就是writable的no;
      writable = yes

      # 允许写入的用户列表,多个用户之间用逗分隔,组的话前面加@
      write list = user1,user2,user3,@g1

      # 允许读取的用户列表
      valid users = user3,user4,@g2
      # 测试语法是否有错 
      testpram

      客户端

      # c7探测目标c8主机共享了哪些文件夹
      [root@template ~]# smbclient -L 192.168.0.104
      Enter SAMBA\root's password: #这里没输入密码,直接回车,因为服务端暂时还没为sab用户创建用户名和密码
      Anonymous login successful # 表示支持匿名访问

      Sharename Type Comment # 当前结果显示没有共享任何内容
      --------- ---- -------
      print$ Disk Printer Drivers
      IPC$ IPC IPC Service (Samba 4.13.3)
      Reconnecting with SMB1 for workgroup listing.
      smbXcli_negprot_smb1_done: No compatible protocol selected by server.
      protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
      Unable to connect with SMB1 -- no workgroup available
      # c7探测目标windows主机共享了哪些文件夹
      yum list samba*
      yum -y install samba-client
      [root@template ~]# smbclient -L 192.168.0.115 -U zhanghe%PASSWD

      Sharename Type Comment
      --------- ---- -------
      ADMIN$ Disk 远程管理
      C$ Disk 默认共享
      D$ Disk 默认共享
      IPC$ IPC 远程 IPC
      VT Disk
      Reconnecting with SMB1 for workgroup listing.
      do_connect: Connection to 192.168.0.115 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
      Unable to connect with SMB1 -- no workgroup available

      [root@template ~]# smbclient //192.168.0.115/VT -U zhanghe%PASSWD
      Try "help" to get a list of possible commands.
      smb: \> ls
      smb: \> pwd
      Current directory is \\192.168.0.115\VT\
      smb: \> get 网络安全公开课20211012.mp4
      smb: \> !ls # 查看当前目录
      anaconda-ks.cfg 网络安全公开课20211012.mp4
      smb: \> put anaconda-ks.cfg
      putting file anaconda-ks.cfg as \anaconda-ks.cfg (290.3 kb/s) (average 290.3 kb/s)

      挂载访问

      mount -t cifs //SERVER/shared_name /local_point -o username=USERNAME,password=PASSWORD

      /etc/fstab写到里面,开机自动挂载放到fstab会有密码泄露的风险,不建议开机自动挂载;

      测试

      仅有path

       

      所有人都能读、也就是说所有人都能下载,但不能上传和删除,不能匿名

       

      # 服务端
      [root@c71 ~]# grep development /etc/group
      development_1:x:1000:
      development_2:x:1001:
      [root@c71 ~]# tail -6 /etc/passwd
      lisi:x:1001:1000::/home/lisi:/sinb/nologin
      wanger:x:1002:1000::/home/wanger:/sinb/nologin
      jia:x:1003:1001::/home/jia:/sinb/nologin
      yi:x:1004:1001::/home/yi:/sinb/nologin
      bing:x:1005:1001::/home/bing:/sinb/nologin
      zhanghe:x:1006:1006::/home/zhanghe:/sbin/nologin
      [root@c71 ~]# egrep -v '(^[[:space:]*$]]|^#)' /etc/samba/smb.conf
      [global]
      workgroup = SAMBA
      security = user
      passdb backend = tdbsam
      printing = cups
      printcap name = cups
      load printers = yes
      cups options = raw
      [samba_share]
      path = /smb_share

      # 客户端
      [root@c72 ~]# smbclient -L 192.168.80.130
      Enter SAMBA\root's password:
      Anonymous login successful

      Sharename Type Comment
      --------- ---- -------
      samba_share Disk
      IPC$ IPC IPC Service (Samba 4.10.16)
      Reconnecting with SMB1 for workgroup listing.
      Anonymous login successful

      Server Comment
      --------- -------

      Workgroup Master
      --------- -------
      SAMBA C71

      # 能下载,不能删除和上传
      [root@c72 ~]# smbclient //192.168.80.130/samba_share -U zhangsan%cba-123
      Try "help" to get a list of possible commands.
      smb: \> ls
      . D 0 Sun Feb 20 01:52:18 2022
      .. D 0 Sat Feb 19 20:49:26 2022
      fstab A 465 Sat Feb 19 21:36:34 2022
      passwd N 1483 Sun Feb 20 01:52:18 2022
      issue N 23 Sun Feb 20 01:52:18 2022

      52403200 blocks of size 1024. 50726904 blocks available
      smb: \> get issue
      getting file \issue of size 23 as issue (4.5 KiloBytes/sec) (average 4.5 KiloBytes/sec)
      smb: \> rm issue
      NT_STATUS_ACCESS_DENIED deleting remote file \issue
      smb: \> put anaconda-ks.cfg
      NT_STATUS_ACCESS_DENIED opening remote file \anaconda-ks.cfg

      # 不能匿名
      [root@c72 ~]# smbclient //192.168.80.130/samba_share
      Enter SAMBA\root's password:
      Anonymous login successful
      tree connect failed: NT_STATUS_ACCESS_DENIED

      public

       

      public其实主浊guest ok ,如果我们写成public 那就是翻译成guest,是一个意思,就是是否允许匿名访问,打开了之后匿名用户也只是拥有下载权限;

       

      # 服务端
      [root@c71 ~]# grep -v "^#" /etc/samba/smb.conf
      [global]
      workgroup = SAMBA
      security = user
      passdb backend = tdbsam
      printing = cups
      printcap name = cups
      load printers = yes
      cups options = raw
      [samba_share]
      path = /smb_share
      public = yes

      # 客户端匿名访问测试
      [root@c72 ~]# smbclient //192.168.80.130/samba_share
      Enter SAMBA\root's password:
      Anonymous login successful
      Try "help" to get a list of possible commands.
      smb: \> put anaconda-ks.cfg
      NT_STATUS_ACCESS_DENIED opening remote file \anaconda-ks.cfg
      smb: \> get issue
      getting file \issue of size 23 as issue (3.7 KiloBytes/sec) (average 3.7 KiloBytes/sec)
      smb: \> rm issue
      NT_STATUS_ACCESS_DENIED deleting remote file \issue
      smb: \> ls
      . D 0 Sun Feb 20 01:52:18 2022
      .. D 0 Sat Feb 19 20:49:26 2022
      fstab A 465 Sat Feb 19 21:36:34 2022
      passwd N 1483 Sun Feb 20 01:52:18 2022
      issue N 23 Sun Feb 20 01:52:18 2022

      52403200 blocks of size 1024. 50726172 blocks available

      # 普通用户的权限没变,还是只能下载
      [root@c72 ~]# smbclient //192.168.80.130/samba_share -U lisi%cba-123
      Try "help" to get a list of possible commands.
      smb: \> put anaconda-ks.cfg
      NT_STATUS_ACCESS_DENIED opening remote file \anaconda-ks.cfg
      smb: \> get fstab
      getting file \fstab of size 465 as fstab (151.4 KiloBytes/sec) (average 151.4 KiloBytes/sec)
      smb: \> rm fstab
      NT_STATUS_ACCESS_DENIED deleting remote file \fstab
      smb: \> ls
      . D 0 Sun Feb 20 01:52:18 2022
      .. D 0 Sat Feb 19 20:49:26 2022
      fstab A 465 Sat Feb 19 21:36:34 2022
      passwd N 1483 Sun Feb 20 01:52:18 2022
      issue N 23 Sun Feb 20 01:52:18 2022

      52403200 blocks of size 1024. 50726132 blocks available

      writable

       

      是否能被所有用户可写,默认是no,等价于read only,writable = yes 等价于 read only = no

       

      # 服务端
      [root@c71 ~]# testparm
      Load smb config files from /etc/samba/smb.conf
      Loaded services file OK.
      Server role: ROLE_STANDALONE

      Press enter to see a dump of your service definitions

      # Global parameters
      [global]
      printcap name = cups
      security = USER
      workgroup = SAMBA
      idmap config * : backend = tdb
      cups options = raw

      [samba_share]
      guest ok = Yes
      path = /smb_share
      read only = No # 自动翻译成read only

      # 客户端匿名用户获得读写权限
      [root@c72 ~]# smbclient //192.168.80.130/samba_share
      Enter SAMBA\root's password:
      Anonymous login successful
      Try "help" to get a list of possible commands.
      smb: \> put anaconda-ks.cfg
      putting file anaconda-ks.cfg as \anaconda-ks.cfg (7.2 kb/s) (average 7.2 kb/s)
      smb: \> rm issue

      # 客户端的普通用户还是仅有读的权限
      [root@c72 ~]# smbclient //192.168.80.130/samba_share -U zhangsan%cba-123
      Try "help" to get a list of possible commands.
      smb: \> put anaconda-ks.cfg
      NT_STATUS_ACCESS_DENIED opening remote file \anaconda-ks.cfg
      smb: \> put /etc/issue
      NT_STATUS_OBJECT_PATH_NOT_FOUND opening remote file \etc\issue
      smb: \> rm issue
      NT_STATUS_NO_SUCH_FILE listing \issue
      smb: \> get issue
      NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file \issue
      smb: \> get fstab
      getting file \fstab of size 465 as fstab (75.7 KiloBytes/sec) (average 75.7 KiloBytes/sec)

      valid users

      valid user 是非常的强劲,不是仅允许谁访问,不在名单内部的都不允许看到,当valied users与write lists同在时,valied users生效。

      # 服务端
      [root@c71 ~]# testparm
      Load smb config files from /etc/samba/smb.conf
      Loaded services file OK.
      Server role: ROLE_STANDALONE

      Press enter to see a dump of your service definitions

      # Global parameters
      [global]
      printcap name = cups
      security = USER
      workgroup = SAMBA
      idmap config * : backend = tdb
      cups options = raw

      [samba_share]
      guest ok = Yes
      path = /smb_share
      read only = No
      valid users = @development_1

      # development 拥有完整的权限
      [root@c72 ~]# smbclient //192.168.80.130/samba_share -U lisi%cba-123
      Try "help" to get a list of possible commands.
      smb: \> get issue
      NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file \issue
      smb: \> get fstab
      getting file \fstab of size 465 as fstab (90.8 KiloBytes/sec) (average 90.8 KiloBytes/sec)
      smb: \> rm fstab
      smb: \> put anaconda-ks.cfg
      NT_STATUS_ACCESS_DENIED opening remote file \anaconda-ks.cfg
      smb: \> put issue
      putting file issue as \issue (5.6 kb/s) (average 5.6 kb/s)
      smb: \> exit
      [root@c72 ~]# smbclient //192.168.80.130/samba_share -U jia%cba-123
      tree connect failed: NT_STATUS_ACCESS_DENIED
      [root@c72 ~]# smbclient //192.168.80.130/samba_share -U yi%cba-123
      tree connect failed: NT_STATUS_ACCESS_DENIED

      # 匿名关闭
      [root@c72 ~]# smbclient //192.168.80.130/samba_share
      Enter SAMBA\root's password:
      Anonymous login successful
      tree connect failed: NT_STATUS_ACCESS_DENIED

      write list

      完全独立,最好不要与其它选项连用,就是在这个列表里面才有完整的权限

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_11580232/5102093,作者:一张贺卡,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:springMVC开源作业调度框架--quartz

      下一篇:LAMP组合

      相关文章

      2025-05-14 10:33:25

      30天拿下Rust之网络编程

      在现代软件开发中,网络编程无处不在。无论是构建高性能的服务器、实时通信应用,还是实现复杂的分布式系统,对网络编程技术的掌握都至关重要。Rust语言以其卓越的安全性、高性能和优秀的并发模型,为网络编程提供了坚实的基础。

      2025-05-14 10:33:25
      Rust , TCP , 使用 , 客户端 , 异步 , 编程
      2025-05-14 10:33:16

      30天拿下Python之使用网络

      Python网络编程覆盖的范围非常广,包括:套接字编程、socketserver、HTTP和Web开发、异步编程和asyncio等。

      2025-05-14 10:33:16
      Json , TCP , 客户端 , 接字 , 服务器 , 示例 , 连接
      2025-05-14 09:51:21

      python 在创建socket之后建立心跳机制

      在Python中,建立心跳机制通常用于维持客户端和服务器之间的长连接,确保连接活跃性。心跳机制通常是通过定时发送心跳包(一种小型的、特定格式的数据包)来实现的,如果在预定时间内没有收到对方的心跳响应,则认为连接可能已经中断。

      2025-05-14 09:51:21
      发送 , 客户端 , 服务器 , 服务器端 , 示例
      2025-05-13 09:50:59

      DG搭建过程中备库执行活动复制时报错RMAN-01007、RMAN-01009

      DG搭建过程中备库执行活动复制时报错RMAN-01007、RMAN-01009

      2025-05-13 09:50:59
      RMAN , 客户端 , 语句
      2025-05-09 09:30:19

      Socket类的用法

      Socket类的用法

      2025-05-09 09:30:19
      IP , Socket , 客户端 , 服务端 , 端口
      2025-05-09 09:21:53

      WebAPI 和 webservice的区别

      WebAPI 和 webservice的区别

      2025-05-09 09:21:53
      HTTP , 协议 , 客户端 , 服务器 , 请求
      2025-04-23 08:18:32

      结构型模式---代理模式

      代理模式是一种结构型模式,主要用于在客户端和接口之间添加一个中间层,用于在客户端和接口之间进行权限控制或者其他的中间层操作。

      2025-04-23 08:18:32
      代理 , 客户端 , 接口 , 服务 , 模式
      2025-04-23 08:18:27

      结构型模式---外观模式

      外观模式是一种结构型设计模式,它的核心思想是为复杂的子系统提供一个统一的接口,简化客户端与子系统的交互。外观模式通过引入一个高层接口,隐藏子系统的复杂性,使客户端更容易使用。

      2025-04-23 08:18:27
      客户端 , 接口 , 模式
      2025-04-22 09:40:08

      【网络】传输层TCP协议 | 三次握手 | 四次挥手

      【网络】传输层TCP协议 | 三次握手 | 四次挥手

      2025-04-22 09:40:08
      TCP , 客户端 , 报文 , 服务端 , 连接
      2025-04-18 07:10:53

      Kerberos基础理论

      Kerberos是一个网络身份验证协议,用于在计算机网络中安全地进行身份验证和授权。它最初由麻省理工学院(MIT)开发,并成为了许多操作系统和应用程序的标准认证协议。

      2025-04-18 07:10:53
      客户端 , 密钥 , 用户 , 认证 , 身份验证
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5265831

      查看更多

      最新文章

      30天拿下Rust之网络编程

      2025-05-14 10:33:25

      30天拿下Python之使用网络

      2025-05-14 10:33:16

      python 在创建socket之后建立心跳机制

      2025-05-14 09:51:21

      DG搭建过程中备库执行活动复制时报错RMAN-01007、RMAN-01009

      2025-05-13 09:50:59

      Socket类的用法

      2025-05-09 09:30:19

      WebAPI 和 webservice的区别

      2025-05-09 09:21:53

      查看更多

      热门文章

      redis-启动服务端-客户端连接服务端

      2023-03-29 10:07:17

      统计客户端连接数

      2023-05-08 10:00:08

      解决rocketmq客户端日志比较大的问题

      2023-03-24 10:33:05

      C/S、B/S、Web的介绍(Web应用开发)

      2023-02-15 08:39:48

      PHP: ThinkPHP获取客户端IP地址

      2023-02-20 10:15:01

      ×××客户端出现0x80090328错误的解决方法

      2023-05-08 09:58:50

      查看更多

      热门标签

      客户端 实践 基础知识 Java 服务器 java 数据库 框架 python 服务端 学习 代码 简单 javascript 编程
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      silverlight 中javascript 代码与托管代码的互调用 以及一些思考

      【网络】传输层TCP协议 | 三次握手 | 四次挥手

      《ZooKeeper官方指南》一致性保障

      Web Socket介绍

      物联网协议学习 - MQTT协议3.1.1

      实现NFS共享目录非root用户的读写

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号