【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

相关推荐

  • 马哥教育网络班21期-第二周课程作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp即copy的简写,我们可以用它来复制一些文件即将,源文件的数据流复制到目的文件中。和下面要讲的rm,mv,一样都是一些非常基础的命令。关于这个命令,我们有个小窍门,那就是根据 ls file这个命令是否执行成功来判断file文件是否存在。 关于cp,我们有一些要点要注意: cp…

    Linux干货 2016-07-07
  • 第六周

      第6周   1 复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit ; sed -i 's@^[[:space:]]\+@#@g&#03…

    Linux干货 2017-02-13
  • 正则表达式练习

    一: 1、找出ifconfig命令结果中本机的所有IPv4地址         2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 二: 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式) 2、显示/etc…

    Linux干货 2016-08-12
  • 作业-第二周

    1、linux常用文件管理命令 ls rm chmod touch mv cp 2、echo $? 如果返回0则成功,其他失败 3、 mkdir /tmp/{a,b}_{c,d} mkdir -p /tmp/mylinux/bin /tmp/mylinux/boot/ /tmp/mylinux/boot/grup /tmp/mylinux/dev \ /tm…

    Linux干货 2016-06-23
  • 快速搭建SVN服务器

    一、背景介绍 svn服务器是一款上传代码的工具(貌似这么说不怎么严谨,但是在日常工作中基本上是这么用的),今天一个小伙伴折腾了一天也没有搭建好这个svn服务器。各种问题,其实搭建SVN服务器最重要的就是三个配置文件(svnserver.conf、 passwd 、authz)。出了问题的话十有八九是这三个配置文件的问题。最后,我自己搭建了一个,测试成功。于是…

    Linux干货 2016-12-11