Cenos7---Samba服务器搭建

Posted 勇敢の牛肉丸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cenos7---Samba服务器搭建相关的知识,希望对你有一定的参考价值。

环境:物理机windows8,vmware11虚拟机,服务器centos7系统

目的:实现window8通过用户名samba密码123456共享访问samba服务器/home/samba目录,用户名samba密码123456和用户user001密码123456共享访问samba服务器/home/user001目录。(以及linux内的共享)

1、安装samba服务

yum -y install
samba //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替 samba-common //主要提供samba服务器的设置文件与设置文件语法检验程序testparm samba-client //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集

2、开启防火墙端口

 iptables -I INPUT -p udp --dport 137  -j ACCEPT
 iptables -I INPUT -p udp --dport 138  -j ACCEPT
 iptables -I INPUT -p tcp --dport 139  -j ACCEPT
 iptables -I INPUT -p tcp --dport 445  -j ACCEPT

3、配置/etc/samba/smb.conf。

[global]
        workgroup = SAMBA
        security = user   //security=user(需要账号可密码)|share(不需要账号密码)

        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

[samba]
        comment =pubic stuff   //描述‘公共资源’
        path =/home/samba    //共享目录路径
        public = yes              //公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
        writeable = yes        //可写,不以只读方式共享当与read only发生冲突时,无视read only
        browseable = yes      //在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
        guest ok = yes       //公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
        valid users =samba,user001    //默认所有用户;有效的用户列表
        Write list =samba,user001         //默认无;可写入的用户列表

[user001]
        comment =pubic stuff
        path =/home/user001
        public = yes
        writeable = yes
        browseable = yes
        guest ok = yes
        valid users =user001
        Write list =user001

4、测试,添加账号

4.1、testparm:测试有效的exports内的属性

4.2、pdbedit:管理smb的用户数据库。

1
2
3
4
5
pdbedit -L [-vm]        列出数据库中的用户等信息,-v详细信息,-w使用smbpasswd格式。
pdbedit -a -u [user]    新增一个用户,但必须存在实体用户。
pdbedit -r -u [user]    修改一个用户的信息,需搭配其他参数,可参考man文档。
pdbedit -x -u [user]    删除一个用户。
pdbedit -a -m -u [machine account计算机账号] 添加一个计算机账号,域相关。

4.3、smbpasswd:改变samba账户的密码。

1
2
3
4
5
smbpasswd -a [user]    新增用户以及密码。
smbpasswd -r [user]    修改用户密码。
smbpasswd -x [user]    删除用户。
smbpasswd -d [user]    禁止登陆。
smbpasswd -e [user]    启用用户。

4.4、smbclient:unix客户端访问工具。

1
2
3
4
5
6
7
8
9
smbclient -L //IPADDR [-U smbuser] 测试查看目标服务器所开放的共享文件夹
smbclient //IPADDR/dir -U smbuser 连接共享服务器文件夹。
[root@host2 ~]# smbclient //192.168.2.110/test -U zhanghe 命令行形式访问。
Enter zhanghe\'s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7]
smb: \\\\> help
? allinfo altname archive blo
cksize
cancel case_sensitive cd chmod chown....

 4.5文件夹权限设置

(1)配置最简单访问目录几个基本属性:
[share]      windows客户端查看时看到的文件夹名
path = /data/share      共享目录位置,要系统中存在的目录,也可以配置完再创建
read only = no
public   = yes

(2)给配置的共享目录设置权限(所有用户都可以操作):
# mkdir /data/share      如刚才配置的共享目录不存在则创建
chown -R nobody  /data/share      设置共享目录归属为 nobody 
chmod 777 /data/share      将共享目录属性设置为 777

4.6、samba服务iptables服务的查看、重载、启动、自启

systemctl status smb  //查看开启状态
systemctl reload smb  //重载smb服务
systemctl restart smb  //重启smb服务
systemctl enable smb   //设置smb开机自启 

  service iptables save

  service iptables restart

4.7.访问测试\\\\192.168.2.110

 

 

7.错误处理。

    1. 如果拷贝文件时出现目标文件夹访问被拒绝错误,如下图所示。此时需要检查一下Samba服务器的Selinux和防火墙配置,确认一下Selinux是否关闭,同时确认一下防火墙是否已经打开了Samba服务端口(与Samba服务相关的端口有137、138、139和445)。 最后确认一下Samba提供的共享文件夹是否具有读写权限,具体可以参考第2步和第3步配置(目录属性和Samba服务配置)。



      拷贝文件时出现错误
    2. 当我们要进入不同的samba目录,如:进入shared共享文件夹,但是这些目录都有自己的密码设置时,如果我们在点击这个目录时输入访问该目录的用户名和密码时,会提示“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次。”出现此问题是windows自身的限制,通常我们会注销当前windows用户,然后再重新登陆samba来访问其他目录。

      目录访问错误

      此时,我们可以打开命令行界面,输入net use * /del /y命令来切掉本机当前的所有远程共享文件信息,然后点击其他目录输入该目录具有访问权限的用户名和密码即可正常访问了。



      切断远程连接

       更换访问目录

       

      链接参考:https://www.linuxidc.com/Linux/2016-06/132609.htm

                       http://blog.sina.com.cn/s/blog_69d9d3d10100l0o4.html

       

      番外篇:如何在samba服务器上添加用户和组

      samba服务器作为公司的文件服务器,我现在需要增加用户可以在windows上读写和存放文档,
      我是直接smbpasswd -a,这样仅仅只是成为samba服务器的用户而已,仅仅能登录到samba服务器上面,
      而不能完成特定的任务先加个用户名,再设置密码。

      如何在samba服务器上添加用户和组


      其实SMB可以使用用户名列表,具体的吗,不怎么好说清楚,就是说SMB服务器可以设置账号映射,就是说SMB用户可以不是系统用户
      在SMB.conf文件中可以开启用户账号映射, 方法: 先打开smb.conf这个文件,找到:username map =/etc/samba/smbusers 这一项
      把前面的分号去掉,记住username map= 后面的路径 然后手动的编辑这个文件 使用命令: vi /etc/samba/smbusers 这个命令是
      编辑 username map 所指定的那个文件 在这个文件里面添加虚拟用户名 如 root administrator admin 
      这里的意思是说 root这个系统用户名有两个虚拟的SMB用户名,一个是administrator,一个是admin

      如何在samba服务器上添加用户和组

      就按这个方法去添加新的用户名,比如你先在系统中添加一个系统用户 
      命令: useradd username 这个命令是添加一个系统用户账号,账号名是:username ,你可以自己改账号名
      然后 在/etc/samba/smbusers这个文件中添加虚拟账号:比如: username abc aaa aab
      username是系统账号名 abc,aaa,aab这三个是SMB的虚拟账号,你公司有多少个用户就在这里添加,
      把他们的用户名都添加到这个文件里面 然后在你的smb.conf的文件中建立共享目录,
      比如 [tmp] path=/tmp public=no valid users=username 保存退出
      重启动SMB service smb restart 如果你不用虚拟账号 要先建立系统账号
      方式: useradd username smbpasswd -a username 设置密码 重启SMB服务器 service smb restart

      如何在samba服务器上添加用户和组

以上是关于Cenos7---Samba服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

在PaddlePaddle中的Notebook代码片段

CentOS 7.6 搭建Gitlab教程

代码片段 - Golang 实现简单的 Web 服务器

手写数字识别——基于全连接层和MNIST数据集

markdown 在Intel Nuc上设置Ubuntu Web服务器,步骤和代码片段