【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
下一篇 2016-12-18

相关推荐

  • 8月11日shell编程脚本及课后作业

    shell脚本编程 本章内容 编程基础 脚本基础格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据    程序编程风格:       过程式:以指令为中心,数据服务于指令   &nbs…

    Linux干货 2016-08-15
  • LAMP部署之NFS共享网络存储

    LAMP部署之NFS共享网络存储 架构图: 说明:     当一个网站的访问量上来之后,一台WebServer服务器无法应付那么高的并发,需要横向扩展Web服务器数量,     当我们访问网页,向Web服务器请求资源时,资源主要分为静态资源和动态资源(程序处理),  &…

    Linux干货 2016-06-20
  • 鸟哥?马哥?靠边站!今天猫哥带你玩千万PV级别运维架构实战

    1.哼,从今天开始马哥linux,就是我猫哥的天下了!,马哥你奏凯! 我猫哥在此宣誓,从今以后马哥教育正式更名猫哥教育! 哼,信猫哥,得永生! 2.妹的,都好好给我学习,猫哥我盯着呢 3.猫哥我第一次出镜,给咱来个特写啊小伙,拍的好看了,猫哥就免费给你讲讲Linux运维之道。 4.哎哟,拍的还不赖,猫哥我算是45°角仰望星空了,来来,猫哥给你讲讲互联网运维架…

    Linux干货 2016-04-01
  • kickstart 的使用!

    简介 1.什么是kickstart KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,…

    Linux干货 2016-11-03
  • N22-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; # fdisk /dev/sda n p 3 w # partx -a /dev/sda  # partx -a /dev/sda # mke2fs -t ext4 -b&nbs…

    Linux干货 2016-10-09
  • redis/twemproxy 客户端连接异常

    对于一个DBA,客户端连接异常问题可以说是家常便饭的事情,处理多了都想吐。 root cause无疑发生在三个地方,先找自身的原因,依次排查下去: 1)服务器端db的负载,如果负载太高,创建socket太慢引起超时。另外服务器端socket的个数太多,也可以导致创建连接需要很长的时间或者创建连接不成功。 2)网络是够有抖动,包括lvs/twemproxy重启…

    Linux干货 2015-04-03