ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux 安装samba

2019-07-04 13:02:17  阅读:210  来源: 互联网

标签:用户名 Samba 用户 samba linux 共享 安装 smb


常用指令

rpm -qa | grep samba        #查看系统是否已安装samba

service smb status        #查看smd服务的状态

service smb start           #运行smb服务

service smb stop           #停止服务

service smb restart       #重启服务,但在实际中一般不采用

service smb reload       #重载服务,在实际中较常用,不用停止服务

 

安装 yum install samba

 

基本配置

samba的主要配置文件放在/etc/samba/smb.conf文件夹下。文件可以分为两大部分,第一部分是全局配置,第二部分是局部配置。下面是一个配置文件及相关注释:

[global]  #全局配置,配置文件以[segname]分段,除了global影响全部段之外,各段之间互不影响
        workgroup = MYGROUP    #samba的工作组,通常这里改成局域网的工作组
        server string = Samba Server Version %v    # samba的说明信息,这条可不写
        netbios name =Aric    # 简单的说就是显示的计算机名称
        log file = /var/log/samba/%m.log    # 日志文件存放位置
        max log size = 10    #日志文件大小,以M为单位
        security = share    #安全选项,可以是share,user,server,domain安全级别递增
        encrypt passwords = yes    #密码是否加密
        smb passwd file = /etc/samba/smbpasswd    #密码文件存放位置
        username map = /etc/samba/smbusers    #用户文件存放位置

'''这个局部配置是给个人配置的,如果采用默认的home,则无需配置这个'''

[share]        #局部配置,[]里面是段名,也就是我们的共享文件夹的名
        comment = This is my shared folder.    #该共享的说明
        path = /home/share    #共享路径
        writeable = yes        #共享文件夹是否可写
        browseable = yes    #是否可浏览
        guest ok = yes        #跟public一样,是否允许guest用户
        create mode =0664    #创建文件权限定制
        directory mode=0775    #创建文件夹权限
        valid users= username      #允许访问该共享的用户,多个用户用逗号分开,也可以添加组
        invalid usrs=root,@group,@表示组  # 禁止访问的用户     
        admin users=admin  #该共享的管理者
        write list=username   #有写权限的用户 
       display charset=UTF-8
       unix charset=UTF-8
       dos charset=UTF-8  #这三个是避免乱码的,dispaly是显示目录时的编码,另外两个跟名字对应。若dos下为zh_CN.GB2312.GBK。则3个全部设为cp936

 

配置文件中的详细解释

1、samba的安全级别

Linux下samba有四种安全级别,即Share、User、Server、Domain,它们的安全级别由低到高,在配置文件中具体由security参数指定。其中,Share级是指用户不需要账户和口令即可登录服务器;User级是Samba服务器默认的安全级别,是指服务器负责检查登陆者

账户和口令;Server级是指账户和口令的检查由另外的Samba或Windows服务器负责;Domain级是指由一台Windows NT/2000域服务器负责检查账户和口令。用户在配置Samba服务器时,可以根据所需要的不同安全等级来具体配置

 

2、samba的密码存放方式

passdb backend = tdbsam | passdb | smbpasswd 

backend即用户后台。有三种后台:smbpasswd、tdbsam和ldapsam   #Sam即security account manager。

(1)smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。也就是说用这种方法创建的永和可以是虚拟的,也就是Linux系统中不存在该用户也可以。smbpasswd存

在/etc/samba中,有时需要手工创建该文件。

(2)tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:

pdbedit –a username: #新建Samba账户,必须先存在该系统用户

pdbedit –x username: #删除Samba账户。

pdbedit –L: #列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit –Lv: #列出Samba用户列表详细信息。

pdbedit –c “[D]” –u username: #暂停该Samba用户账号。

pdbedit –c “[]” –u username: #恢复该Samba用户账号。

一般叫常用的用法是:

$useradd user1  # 这个是创建用户名

$smbpasswd -a user1    #这个是创建用户的密码,这里可以改为pdbedit -a user1

$输入user1的共享密码

$确认user1的共享密码

 

用户映射

由于我们在创建samba用户时必须和系统用户同名,这就意味着不安全(当然某些人很乐意看到这样),但是,samba已经解决了这个问题,提供了用户映射,这个文件在/etc/samba/smbusers下

root=administrator  # 这个就是将创建的用户名映射到系统的用户名上,这样影藏了真实的用户名,比如系统管理员权限的用户名,其他人看到映射后的用户名也不会知道这个用户名是什么样的

nobody=guest pcguest

test=prefer you

这样就Ok了,钱两行是为了方便windows用户使用,最后一行则是遮盖用户信息,也就是为了安全。

 

常用的共享

[homes]共享默认会将用户的主目录共享,这是不安全的,所以我们要将其注释,当然还有[netlogon]。但是也可以使用,当用户输入用户名和密码后,只能看到属于自己的文件夹并访问,

 

常见问题

1、提示没有权限访问

前提是我们将security=share,即不要求账号密码,这样还是不能访问,总是说没有权限访问。这有以下几种原因:

 

2、防火墙的问题 

samba使用的端口在防火墙里没有添加例外,导致samba服务不能够使用

解决方法可以是   iptables -F        #清除防火墙的规则

也可以通过setup,将samba使用的端口添加例外,最好用第二中方法,毕竟防火墙还要保证系统的安全。

 

3、seLinux的问题

这是系统本身的原因,我们安装系统的时候安装了selinux,而selinux禁止网络上其他计算机对samba上的共享目录进行写操作,即使在smb.conf中允许了这项操作

解决方法是:  setenforce 0  # 如果出现自己的文件夹没有权限访问,但是权限已经开了,不妨试试这个

 

4、共享文件夹权限的问题

我们共享的路径本身权限不正确,就是说我们在smb.conf分配的权限是可读可写,但是在Linux文件系统下,该共享文件夹却是只读的,所以就出现了问题,我们一般讲共享的文件夹在Linux下降权限全部开放。

使用这条指令,将文件夹的权限开放  chmod 777 /share

 

5、提示用户名或则密码不正确

当我们将安全级别为user时,就需要输入用户名和密码,但是用户名密码都是正确的,但是总是提示错误。这是因为我们在windos下输入用户名时,默认是在windows域中,二我们的账户是在Linux建立的,所以是不对的,只要将我们Linux主机的域名加载前面就行了。比

如Linux下面的user2,我们直接输入user2可能就不对,我们必须将我们Linux主机的名字加在前面,如 hostname/user2

 

6、NT_STATUS_WRONG_PASSWORD

我们在Linux使用  smbclient //192.168.102.133/share # 这里的ip地址是测试时候本机的地址,出现报错则用localhost

Enter root's password:此处回车

Domain=[groupname] os=[Unix] Server=[Samba 3.5.10-125.el6]

Server not using user level security and no password supplied

tree connect failed:NT_STATUS_WRONG_PASSWORD

 

解决办法[share]   

comment= user share

path = /home/share

browseable = yes

writable = yes\

security = yes

public =yes  # 加入这一行即可因为,samba默认是不允许匿名用户访问的

标签:用户名,Samba,用户,samba,linux,共享,安装,smb
来源: https://www.cnblogs.com/shizhengquan/p/11131747.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有