ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux文件共享之samba

2019-03-06 21:56:32  阅读:304  来源: 互联网

标签:samba 配置文件 文件共享 目录 etc Linux 共享 smb


文件共享-samba

smb:服务器消息块(server  message  block),此协议可实现文件共享和打印机共享。windows系统中默认采用smb协议来实现共享。工作端口是445(data  share)和139(netbios主机名解析)。
netbios:网络基本输入输出系统,主要实现的功能是通过主机名来实现计算机之间的互访问。目前被直接捆绑在IP协议簇中。

samba服务的作用:

   1.主要实现不同平台间的文件共享(linux/unix和windows)
   2.实现名称解析
   3.隔离windows病毒
   4.丰富的权限管理机制


samba服务软件的安装说明:

   samba是服务器端软件

   samba-client是端客户软件

   samba-common是samba的公用程序文件


samba服务的部署流程:实验环境是centos7.6 IP为192.168.11.12,物理机为192.168.11.1

1.关闭selinux和防火墙功能。
  setenforce  0
  getenforce
  systemctl  stop  firewalld
  systemctl  status  firewallld

2.查软件是否已安装,未安装就进行安装。
  rpm   -qa | grep  samba
  yum   search   samba
  yum  install  -y   samba   samba-client   samba-common

3.启动服务,允许开机自动启动服务,查服务状态。
  systemctl  restart  smb
  systemctl  status   smb   或  lsof  -i:445   或  netstat  -atunlp |  grep  :445
  systemctl  enable   smb

netstat选项:是查看网络进程状态(net  stat)的命令。

-a  即all,显示所有网络进程

-t  即tcp,显示TCP协议的网络进程

-u  即udp,显示UDP协议的网络进程

-n  即number,以数字方式显示协议的端口号,例 ftp 21、http  80、ssh 22、vnc 5900等

-l  即listen,只显示状态为listen监听的网络进程

-p  即PID进程号,显示网络进程的PID号

网络进程状态(用man  netstat可查):listen监听      ESTABLISHED已连接      CLOSE_WAIT等待关闭


4.查服务的配置文件,根据需求对服务的配置文件进行设置。
  rpm  -ql   samba       查所有文件列表
  rpm  -qc   samba-common    查配置文件列表

blob.png

  /etc/openldap/schema/samba.schema     samba的openldap认证配置文件

  /etc/pam.d/samba            samba的pam认证文件

  /etc/logrotate.d/samba       日志轮滚策略文件

  /etc/samba/lmhosts         本地主机配置文件

  /etc/samba/smb.conf        samba的主配置文件,用于实现samba的环境设置和自定义共享目录

  /etc/sysconfig/samba        samba的系统配置文件


samba的默认共享目录(默认功能):

普通用户可访问共享,账号名称是用useradd创建的且用pdbedit  -a命令设置密码的用户,访问共享的目录是用户自己的家目录(/home/用户名),默认可读可写和上传。

自定义共享目录:需要在/etc/samba/smb.conf主配置文件中设置共享参数


5.检测配置文件语法,重启服务(最好用reload平滑重启)。
  testparm      检测配置文件语法
  systemctl   reload   smb     平滑重启samba服务


 5.1.创建访问共享的用户账号,设置登录密码:
   useradd  lucy
   useradd  lily

   pdbedit  lucy  -a  或  smbpasswd  lucy  -a
   pdbedit  lily  -a  或  smbpasswd  lily  -a

   pdbedit  -L   显示samba用户名列表

 5.2 将/etc目录用samba服务进行只读共享。
   vim   /etc/samba/smb.conf  添加如下内容
   [etck]   共享名称(商标)
   comment=share  etc  directory     描述信息,可随意定义
   path=/etc     共享目录路径
   public=yes    允许匿名访问共享
   browseable=yes   允许在网上邻居中显示(浏览)
   writeable=yes    开启可写权限

blob.png

重启服务:systemctl   reload   smb

6.做内测(在服务器端用客户端软件进行本地测试127.1),做公测(即用另一台客户机来访问服务器)
做内测(查共享资源):  smbclient  -L  127.1
做公测(smb登录测试):  smbclient  //192.168.11.12/etck   -U  lucy%01    (01是给lucy设置的密码) 

blob.png

smbclient软件的内部命令:

help或?   显示命令帮助

ls         显示共享目录的文件名列表

!命令   执行客户端本地的shell命令。如 !date  、  !ls  、!pwd

lcd 切换本地(local)的工作目录路径。如 lcd  /etc  

pwd 显示共享目录的工作路径

prompt 关闭或开启交互式操作模式,即是否提示Yes/No

mkdir 在共享目录中新建目录,如 mkdir  ak

mput 上传多个本地当前目录下的文件到远程服务器的的当前工作目录下。如mput  host*

mget 从共享目录中下载多个文件到本地当前目录下。如 mget  hosts

rm 删除文件

rmdir 删除目录

exit 退出smbclient软件


用资源管理器非匿名访问共享: Win+E ----> \\192.168.11.12\lucy ----> 下载或上传文件

blob.png


blob.png

windows中清除samba共享访问缓存:Win+R  ---> cmd 后执行如下命令---> net  use  *  /del  /y  和 gpupdate  /force

blob.png


-----------------------------------------------------------------------------------------------

smb.conf主配置文件的其他功能选项:man  smb.conf

smb.conf配置文件内容由global全局环境设置、共享目录设置两部分组成。


smb.conf的默认设置选项:

[global]   全局环境设置

        printcap name = cups       跟打印机有关的选项

        security = USER         安全等级设置为USER用户级,即需要用户名和密码验证。还可以是什么呢,请查man手册。

        username map = /etc/samba/vuser      (自己添加的)虚拟用户账号文件

        workgroup = SAMBA          计算机所在的局域网的工作组名

        idmap config * : backend = tdb      samba的用户账号数据库文件         

        cups options = raw      跟打印机有关的选项


[homes]   用户家目录的共享设置

        browseable = No    不显示在网上邻居中

        comment = Home Directories    注释说明信息

        inherit acls = Yes     允许继承ACL权限

        read only = No         禁止只读操作,即可读可写,等同于writable=Yes

        valid users = %S %D%w%S     有效用户账号。%S是samba服务中的用户账号,%D当前域或当前工作组中的用户账号,

smb.conf中基于用户访问控制的选项:

  browseable=yes    允许在网上邻居中显示共享名称

  public=yes  或 guest ok=yes     允许匿名用户访问

  writable=yes 或 readonly=no      允许写操作,即可写权限

  #valid  users=用户1,用户n,@组名       指定允许访问共享的用户账号(即白名单)

  #invalid  users=s3,@组名             只禁止s3用户访问共享(即黑名单)

技巧:只允许少数人能访问共享时用白名单。只禁止少数人能访问共享时用黑名单。

  write list=用户1,用户n,@组名     指定有可写权限的用户账号(即白名单)


smb.conf中基于IP访问控制的选项:man  smb.conf  进入后执行/150就可以查到例子  

  hosts allow = 192.168.  EXCEPT 192.168.11.1   允许192.168.*.*的所有主机访问共享,除了192.168.11.1之外

  hosts deny = 192.168.  EXCEPT 192.168.11.1    不允许192.168.*.*的所有主机访问共享,除了192.168.11.1之外

说明:hosts  allow设置可以放在[global]全局环境设置中(限制访问所有共享目录),也可以放在自定义共享目录的设置中(仅限制访问此目录)。

标签:samba,配置文件,文件共享,目录,etc,Linux,共享,smb
来源: https://blog.51cto.com/13588693/2359279

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有