天天看点

SAMBA的配置及故障排除SAMBA安装及配置故障排除

SAMBA的配置及故障排除

  • SAMBA
    • 功能:
    • 特点:
    • 配置文件路径:
    • SAMBA服务分类
    • 端口和协议
  • 安装及配置
      • 设置单独的目录指定某个用户访问
      • 生产环境配置
        • 部署应用
          • 构建lvm:
          • 挂在分区
          • 配置samba:
          • 添加samba用户,并将家目录设置为要共享的文件夹
          • 设置目录访问权限
          • 维护:
      • 匿名访问(基本不用)
  • 故障排除

SAMBA

功能:

实现linux和windows之间跨平台共享的工具,实现局域网内的共享,公司内网的更新和备份

共享服务器。windows共享。

特点:

不需要下载文件,可以直接在服务器上编辑文件

配置文件路径:

vim /etc/samba/smb.conf

SAMBA服务分类

匿名访问:

用户名和密码访问

设置单独的目录指定某个用户访问

端口和协议

TCP 139

TCP 445

安装及配置

(安装前检查防火墙,selinux ,setenforce 0 是否关闭)

**安装服务端和客户端:**yum install samba samba-client samba-common -y

samba-common 包含一些命令

服务器端 创建需要访问的文件夹(不同部门创建不同的文件夹)

设置单独的目录指定某个用户访问

创建两个共享目录

mkdir /test/samba

mkdir /test/sale

创建samba的访问用户

useradd smb1

useradd smb2

指定组创建用户smb3 ,smb3跟smb2是一个组

useradd -g smb2 smb3

创建密码:

smbpasswd -a smb1

smbpasswd -a smb2

smbpasswd -a smb3

修改配置文件

smbshare只给smb1用户访问的权限
[smbshare]      表示ip访问时候的路径
    comment = Samba Share     #描述
    path = /test/samba		  #共享的目录
    browseable = no			  #是否可以预览目录文件
    public = no				  #是否公开,如果是yes也可以注释掉
    writable = yes			  #是否可以写入
    valid users = smb1		  #设置访问的用户
 
 sale只给smb2用户访问的权限
[sale]
    comment = Samba Share
    path = /test/sale
    browseable = no
    #public = no    
    writable = yes
    valid users = smb2	
    如果不需要对文件夹进行限制,只要把valid users = 删除掉即可
    valid users = smbuser1 smbuser2   可以设置多个用户,用空格分开
    valid users = @smbuser2           @组名  表示限制组的用户访问
           

对共享目录的权限设置

read list = smbuser2    //只读

谁可写,谁只读
writable =yes  //可写
read list = user或者group   


read only = yes   //只读
write list = user或者group
   
invalid users = user或者group      禁止访问共享目录的用户或者组 
           

启动服务:

systemctl start smb 启动smb服务

systemctl enable smb 开机启动

生产环境配置

功能:

共享服务器。windows共享。

应用:

可以在windows上,使用共享文件夹,像用本地的存储设备一样。

依赖局域网带宽。

百兆 --> 千兆

需求:

研发部

内部同事

开发

测试

美工

其他部门

行政

人事

财务

销售

需求的邮件或工单:

空间需求

开发-java 50G

测试 100G

美工 300G

行政 150G

人事 200G

财务 50G

如果不够,可以扩充。

访问需求

直接可以在windows资源管理器使用

只允许部门内部人员访问,其他人任何权限都没有

使用的账号、密码会提供

申请一个服务器

硬盘 4块 2块做系统–160G 2块做存储–2T raid1

2块 系统和存储 2T raid1

安装操作系统–centos7

部署应用

构建lvm:
构建可扩展的lvm分区,指定为xfs文件格式
[[email protected] ~]# pvcreate /dev/sdb
[[email protected] ~]# vgcreate samba /dev/sdb
[[email protected] ~]# lvcreate -L 5G -n java samba
[[email protected] ~]# lvcreate -L 10G -n test samba
[[email protected] ~]# lvcreate -L 30G -n art samba
[[email protected] ~]# lvcreate -L 15G -n admin samba
[[email protected] ~]# lvcreate -L 20G -n hr samba
[[email protected] ~]# lvcreate -L 5G -n sar samba

mkfs.xfs /dev/samba/java
mkfs.xfs /dev/samba/test
mkfs.xfs /dev/samba/art
mkfs.xfs /dev/samba/admin
mkfs.xfs /dev/samba/hr
mkfs.xfs /dev/samba/sar
           
挂在分区
[[email protected] ~]# mkdir -p /samba/{java,test,art,admin,hr,sar}

[[email protected] ~]# vim /etc/fstab 
/dev/mapper/samba-java	/samba/java	xfs	defaults	0 0
/dev/mapper/samba-test	/samba/test	xfs	defaults	0 0
/dev/mapper/samba-art	/samba/art	xfs	defaults	0 0
/dev/mapper/samba-admin	/samba/admin	xfs	defaults	0 0
/dev/mapper/samba-hr	/samba/hr	xfs	defaults	0 0
/dev/mapper/samba-sar	/samba/sar	xfs	defaults	0 0

[[email protected] ~]# mount -a
[[email protected] ~]# df -h | tail -6
/dev/mapper/samba-java   5.0G   33M  5.0G   1% /samba/java
/dev/mapper/samba-test    10G   33M   10G   1% /samba/test
/dev/mapper/samba-art     30G   33M   30G   1% /samba/art
/dev/mapper/samba-admin   15G   33M   15G   1% /samba/admin
/dev/mapper/samba-hr      20G   33M   20G   1% /samba/hr
/dev/mapper/samba-sar    5.0G   33M  5.0G   1% /samba/sar
           
配置samba:

安装samba服务

分部门进行samba配置文件设置

[[email protected] /etc/samba]# cp smb.conf smb.conf.java
[[email protected] /etc/samba]# cp smb.conf smb.conf.test
[[email protected] /etc/samba]# cp smb.conf smb.conf.art
[[email protected] /etc/samba]# cp smb.conf smb.conf.admin
[[email protected] /etc/samba]# cp smb.conf smb.conf.hr
[[email protected] /etc/samba]# cp smb.conf smb.conf.sar

[[email protected] /etc/samba]# vim smb.conf
	主配置文件不改

[[email protected] /etc/samba]# vim smb.conf.java
	结尾添加
[java]
    comment = java's share dir
    path = /samba/java
    write list = java
    create mask = 0664
    directory mask = 0775
[[email protected] /etc/samba]# vim smb.conf.test
	结尾添加
[test]
    comment = test's share dir
    path = /samba/test
    write list = test
    create mask = 0664
    directory mask = 0775

其他的,操作相同
           
添加samba用户,并将家目录设置为要共享的文件夹
[[email protected] ~]# useradd java -d /samba/java
[[email protected] ~]# useradd test -d /samba/test
[[email protected] ~]# useradd art	 -d /samba/art
[[email protected] ~]# useradd admin -d /samba/admin
[[email protected] ~]# useradd hr   -d /samba/hr
[[email protected] ~]# useradd sar  -d /samba/sar

vim创建一个密码文件
[[email protected] ~]# cat pass 
123456
123456

用非交互方式设置samba用户,导入密码
[[email protected] ~]# smbpasswd -s -a java < pass 
Added user java.
[[email protected] ~]# smbpasswd -s -a test < pass 
Added user test.
[[email protected] ~]# smbpasswd -s -a art < pass 
Added user art.
[[email protected] ~]# smbpasswd -s -a admin < pass 
Added user admin.
[[email protected] ~]# smbpasswd -s -a hr < pass 
Added user hr.
[[email protected] ~]# smbpasswd -s -a sar < pass 
Added user sar.

查看samba用户列表
[[email protected] ~]# pdbedit -L
java:1000:
art:1002:
hr:1004:
test:1001:
admin:1003:
sar:1005:
           
设置目录访问权限

给文件夹设置对应的用户,组的权限

[[email protected] /samba]# chown java:java java/
[[email protected] /samba]# chown test:test test/
[[email protected] /samba]# chown art:art   art/
[[email protected] /samba]# chown admin"admin admin/
[[email protected] /samba]# chown hr:hr 	 hr/
[[email protected] /samba]# chown sar:sar 	 sar/

[[email protected] ~]# systemctl start smb
[[email protected] ~]# systemctl enable smb
           
维护:

删除windows保存的用户凭据:

控制面板 --> 用户管理 --> 凭据管理器 --> 删除即可

删除windows保存的用户密码信息:

命令提示符 -->

net use * /del

Y

等待几分钟就可以了

在 我的电脑 资源管理器 添加网络位置

实现共享文件夹直接保存下来,可以访问

匿名访问(基本不用)

匿名访问的安全性较低,所以不建议配置

在global全局配置里添加如下

map to guest = Bad User 匿名访问

故障排除

1.session setup failed: NT_STATUS_LOGON_FAILURE

该错误表示用户有误, 可能是用户不存在, 也有可能是密码错误, 或者用户只是在samba和系统的用户中的一个地方存在,

总之是用户和密码有问题

  1. tree connect failed: NT_STATUS_BAD_NETWORK_NAME

    这个错误则表示共享目录有误, 可能是目录不存在, 或者权限不对

    我的情况是这样的. 我有一个明为xiaowang的用户, 在xiaowang的主目录下我新建了一个share目录,

    并且吧share添加到smb.conf中成为一个共享目录myshare, 但是我有指定该共享目录的有效用户为guest(也是系统中的一个用户),

    结果guest没有访问xiaowang主目录下的文件的权限. 现在我把share目录健在home下就好使了.

windows访问提示这个

SAMBA的配置及故障排除SAMBA安装及配置故障排除

这种一般是windows本地已经有了其它的访问记录

解决方法如下:

在window命令行cmd—输入命令 net use 查看记录

清除所有访问的记录 命令 net use * /del /y

在重新操作就可以重新输入用户密码访问了

windows无法访问samba,linux可以访问samba.

同样是windows本地策略的问题,进入注册表

解决方法:

1、本地安全策略,本地策略-安全选项,需要修改成默认的值的修改方式:

查找注册表浏览到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA

直接删除 LMCompatibilityLevel 键。确定删除后。

2、运行secpol.msc命令。打开本地安全策略。

3、查看 网络安全:LAN管理器身份验证级别,安全设置已经变为默认“没有定义”

修改后发现输入账户密码就可以直接访问了。

扩展

这是我的配置 大家一看就知道我的需求了,

用户 design01 design02 为design 组

用户 project01 project02为project组

我想让design01 02 拥有本身自己的宿主目录同事都可以访问公共目录 /workspace/samba/design

peoject同理

可现在 peoject design两个目录 可以被所有用户看到 不过进入时候没有权限 需要输入密码?

请问大家我哪里配置的有错误

编辑/etc/samba/smb.conf

在[global]

加入hide unreadable=yes #对无read权限的用户隐藏

或者hide unwriteable=yes #对无write权限的用户隐藏

重启samba,OK

参考

pdbedit -L 查看samba用户列表

smbpasswd -a 用户名 添加samba用户并设置samba密码

smbpasswd -x 用户名 删除samba用户

关于samba的详细参数解释

继续阅读