【N25第十三周作业】samba配置详解和安装

samba:
  功能:
    文件系统共享:类unix系统和windows系统之前文件系统共享
    打印机共享;
    NetBIOS协议;

  服务端程序包:samba
    nmbd:NetBIOS name server
    smbd:SMB/CIFS services
  主配置文件:/etc/samba/smb.conf

  systemd unit file:
    nmbd:nmb.service
    smbd:smb.service

  客户端程序包:samba-client
    smbclient:交互式的命令行客户端;
    mount -t cifs:

  监听端口:137/upd,138/udp,139/tcp,445/tcp

samba配置:smb.conf
两类配置段:
  全局配置:[global]
    每共享的专用配置:[共享资源的共享名称]

    directive = value

  全局配置:
    workgroup = 
        当前samba主机所属工作组
    netbios name = 
        当前samba主机的netbios名称
    server string = 
        主机注释
    display charset = 
        当前samba服务器所用字符集
    unix charset = 
        当前linux主机所用的字符集
    dos charset = 
        windows端的字符集
    interfaces = 
        samba服务监听的IP地址或网络接口
    hosts allow = 
        客户端来源白名单

    log file = /var/log/samba/log.%m
        日志存放位置
    max log size = 50
        日志文件大小上限,单位KB

standalone server options
    security = user
        设定安全级别,取值以下三者之一
            share:匿名共享
            user:使用samba服务自我管理的帐号和密码进行认证,用户必须是OS用户,
            密码是访问samba的专用密码
            domain:使用DC进程认证,
    passdb backend = tdbsam
        密码库文件的格式

共享配置:
[共享名称]:此几位某共享服务名
    comment:注释信息
    path:此共享对应本地文件系统路径
    browseable:是否可浏览,是否可被所有用户看到
    writable:是否可写
    read only:是否为只读
    writelist:可写用户或组列表
        用户名
        @组名
        +组名
    guest ok :是否允许匿名访问
    public:是否是公开的服务

注意:writable和writelist不应该同时使用

可用的宏列表:    
    %m:客户端主机的NetBIOS名称    
    %M:客户端的Internet主机名,即HOSTNAME    
    %H:当前用户的家目录    
    %U:当前用户的用户名    
    %g:当前用户所属的组名    
    %h:当前SAMBA主机的HOSTNAME    
    %I:客户端主机IP    
    %T:当前的日期时间

交互式访问:
    #smbclient -L SABMA_SERVER -U USERNAME
    #smbclient //SAMBA_SERVER/SERVER_NAME -U USERNAME

挂在访问方式:
    mount -t cifs -o username=USERNAME,password=PASSWD  //SAMBA_SERVER/SHARED /MOUNT_DIR
    
例子:
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
        
将系统用户添加为samba用户:
     [option] USERNAME
        -a:添加        
        -x:删除        
        -d:禁用        
        -e:启用访问samba共享:
    unix:
        smbclient:交互式命令行客户端
        mount -t cifs:挂在文件系统
    windows:        
            //HOST OR IP/SHARED_DIR
            
      命令:类似smbpasswd,用户管理smb用户
    pdbedit [option]:
        -L:列出所有的smb用户        
        -v:verbose        
        -a:添加用户        
        -u USERNAME        
        -x:删除指定用户        
        -r:修改用户的粗信息
        
    命令:
    显示samba server的相关共享的访问状态
        -b:显示简要格式信息        
        -v:显示详细格式信息

安装samba配置要求:

1、建立samba共享,共享目录为/data,要求:(描述完整的过程)
  1)共享名为shared,工作组为magedu;
  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,
  ubuntu不属于develop组;密码均为用户名;
  3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;
  4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
  5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

安装步骤如下:

yum info samba.x86_64      #查看samba包的信息
yum -y install samba.x86_64   #安装samba服务
rpm -ql samba       #查看samba安装后的文件
groupadd develop    #添加develop组
useradd  -G develop gentoo      #添加gentoo用户并给它指定附加组develop
useradd  -G develop centos      #添加centos用户并给它指定附加组develop
useradd ubuntu                  #添加ubuntu用户
echo "gentoo" | passwd --stdin gentoo   #添加密码
echo "centos" | passwd --stdin centos
echo "ubuntu" | passwd --stdin ubuntu
smbpasswd -a centos    #为samba服务添加centos用户,此处需要输入密码我设置为centos
smbpasswd -a gentoo  #此处需要输入密码我设置为gentoo
smbpasswd -a ubuntu #此处需要输入密码我设置为ubuntu
mkdir /data     #建分享目录
chmod g+w /data #修改分享目录的组写权限
chown :develop /data    #修改分享目录的数组
ls -dl /data/       #确认修改是否成功

vim /etc/samba/smb.conf     #在配置文件中添加分享配置
全局配置添加如下
[global]
        workgroup = magedu        
        server string = Samba Server Version %v
        netbios name = MYSERVER        
        hosts allow = 192.168.0.0/16
分享目录配置如下
[shared]        
                comment = data
        path = /data
        public = no
        valid users = gentoo centos ubuntu @develop
        write list = @develop        
        read list =  ubuntu
        writable = yes
        printable = no
        
systemctl stop firewalld.service    #关闭防火墙
setenforce 0        #关闭selinux
getenforce          #查看关闭情况
systemctl start smb.service     #启动smb服务
systemctl start nmb.service     #启动nmb服务


连接需要安装samba的客户端smbclient和一些依赖的包,不然会报错
[root@localhost ~]# smbclient -L 192.168.1.110 -U gentoo
smbclient: relocation error: /lib64/libsamba-credentials.so.0: 
symbol GSS_KRB5_CRED_NO_CI_FLAGS_X, version gssapi_krb5_2_MIT not 
defined in file libgssapi_krb5.so.2 with link time reference

yum -y install samba-client     #安装samba客户端
yum install krb5-devel krb5-libs pam_krb5 krb5-workstation -y   #安装客户端依赖的相关包
systemctl stop firewalld.service    #关闭防火墙
setenforce 0            #关闭selinux
getenforce              #查看关闭情况
smbclient -L 192.168.1.110 -U gentoo        #检测
smbclient //192.168.1.110/shared -U gentoo  #交互式连接server端并指定用户

[root@localhost ~]# smbclient //192.168.1.110/shared -U gentoo
Enter gentoo's password: 
Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> ls
  .          D        0  Fri Dec 16 06:36:41 2016
  ..         DR        0  Fri Dec 16 06:36:41 2016

		52403200 blocks of size 1024. 50839544 blocks available
smb: \> 
smb: \> mkdir gentoo
smb: \> ls
  .      D        0  Fri Dec 16 07:02:02 2016
  ..     DR        0  Fri Dec 16 06:36:41 2016
  gentoo    D        0  Fri Dec 16 07:02:02 2016

		52403200 blocks of size 1024. 50839580 blocks available
smb: \> lcd /etc
smb: \> put fstab 
putting file fstab as \fstab (176.1 kb/s) (average 176.1 kb/s)
smb: \> ls
  .      D        0  Fri Dec 16 07:02:20 2016
  ..     DR        0  Fri Dec 16 06:36:41 2016
  gentoo   D        0  Fri Dec 16 07:02:02 2016
  fstab   A      541  Fri Dec 16 07:02:20 2016

		52403200 blocks of size 1024. 50839888 blocks available
smb: \> exit
[root@localhost ~]# smbclient //192.168.1.110/shared -U ubuntu
Enter ubuntu's password: 
Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> ls
  .    D        0  Fri Dec 16 07:02:20 2016
  ..   DR        0  Fri Dec 16 06:36:41 2016
  gentoo  D        0  Fri Dec 16 07:02:02 2016
  fstab  A      541  Fri Dec 16 07:02:20 2016

		52403200 blocks of size 1024. 50839420 blocks available
smb: \> mkdir ubuntu    #ubuntu不在组中没有写权限
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ubuntu


mount -t cifs -o username=centos,passwd=centos  //192.168.1.110/data   /data


先关闭电脑的防火墙
在文件路径中输入    \\192.168.1.110
然后用gentoo登录:
登录后创建文件111.txt到服务器上目录中查看
[root@localhost data]# ls
111.txt  fstab  gentoo

原创文章,作者:sheng,如若转载,请注明出处:http://www.178linux.com/64034

赞 (0)
shengsheng
上一篇 2016-12-18 16:02
下一篇 2016-12-18 16:53

相关推荐

  • 马哥教育网络班25期-第2周作业

    一、Linux文件管理类命令: (1)ls             list 用来显示目录列表             …

    Linux干货 2016-12-12
  • linux上的LVM简明教程

    LVM是一个多才多艺的硬盘系统工具。在Linux上非常的好用,传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。 首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV…

    Linux干货 2017-05-02
  • Linux 第八天: Linux文本编辑器vim

    Linux 第八天: (08月09日) Linux文本编辑器vim       sed 行编辑器 stream EDitor sed -n 不输出模式空间内容的自动打印sed -e 多点编辑sed -f /PATH/TO/SCRIPTFILEsed -i 原处编辑   script单地址 # 指定的行/pattern/…

    Linux干货 2016-08-11
  • 马哥教育网络班N22期+第5周课程练习

    马哥教育网络班N22期+第5周课程练习 1. 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;  grep -E "^[#][[:space:]]+[^[:space:]].*" /etc/rc.d/rc.sysinit 2. 显示…

    Linux干货 2016-09-19
  • Linux文件系统

    Linux:glibc 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:kernel, application 文件系统:层级结构 FHS: Filesystem Hierarchy Standard /bin:所有用户可用的基本命…

    Linux干货 2016-11-10
  • Linux哲学思想

    一切皆文件(硬件设备亦如此); 由众多目的单一的小程序组成,一个程序只做一件事,并且要好; 组合小程序完成复杂任务; 尽可能避免跟用户交互; 使用文本文件保存配置信息; 提供机制,而非策略。 Linux作为自由软件(GNU),同时也遵循自由软件的思想: 自由使用 自由学习和修改 自由分发 自由创建衍生版

    Linux干货 2016-10-31