zoukankan      html  css  js  c++  java
  • 配置samba服务器

    公司需要一台用于共享的文件服务器,考虑使用Linux系统,听说会比windows的文件系统好管理,了解不多,人云亦云了!

    这里需要用到samba系统,安装比较简单,安装后需要进行配置才能访问。

    修改smb.conf 配置文件(参数的配置说明最好直接看默认文件中的注释说明):

     samba自带的smb.conf文件注释很多,例子给的也不少,容易让人觉得这个文件很复杂,其实它的框架很简单,主要包括下面几个小节:

    复制代码
    [global]  
    
    [homes]
    
    [printers]
    
    [自定义]
    复制代码
    [global] 是全局的配置选项

    [homes] 是登陆用户的目录

    [printers] 是共享打印机相关信息

    [自定义] 是在windows中看到的共享目录,可以有多个。

    一.[global] 常用配置选项

    1.security 用户访问Samba Server的验证方式,一共有四种验证方式。

    security = share|user|server|domain
    复制代码
    share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
    
    user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。 
    
    server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。 
    
    domain:域安全级别,使用主域控制器(PDC)来完成认证。
    复制代码


    一个简单的share模式共享配置: http://www.cnblogs.com/champaign/p/5916062.html

    2. passdb backend
    passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam(我理解是要在 security=user 模式下使用)
     
    复制代码
    1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
    用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/var/lib/samba/private/smbpasswd(版本3.6.23)目录下.
    smbpasswd -a 用户名 #添加一个samba用户
    smbpasswd -d 用户名 #禁用一个samba用户
    smbpasswd -e 用户名 #恢复一个samba用户
    smbpasswd -x 用户名 #删除一个samba用户 2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在
    /var/lib/samba/private/passdb.tdb(版本3.6.23)目录下。
    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用户的账号。
    3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”
    复制代码
    • username map

    username map = /etc/samba/smbusers

     

     

    二.[自定义] 常用配置选项

     一个简单的示例(实际工作中要求有写入权限):

    复制代码
     [attchement]
    
     comment =attchement
    
     path = /data/attchement
    
    writable = yes
    复制代码

    三.[无写权限]的处理办法

    解决了好久的写入问题,试过很多方法无效。

    在网上找到如下方法解决:

    setenforce 0

     vi /etc/selinux/config

    将SELINUX=enforcing改为SELINUX=disabled为开机重启后不再执行setenfore节约光阴。

    四.设置Samba服务创建目录和文件的默认权限

    通过Samba服务器实现windows和Linux之间的文件共享,相信是绝大多数人的选择。

    通常我们都会使用Samba的缺省配置,这样,每次通过Samba从Windows向Linux中拷贝文件时,文件都会被加上”可执行”的属性。

    这是很让人头疼的问题,每次都要通过chmod去修改文件的权限很是麻烦。

    只要把下面的配置加入/etc/samba/smb.conf就可以解决这个问题:

    create mode = 0644  
    force create mode = 0644  
    directory mode = 0755  
    force directory mode = 0755   

    下面简单介绍一下这几个参数的含义:

    • create mode – 这个配置定义新创建文件的属性。Samba在新建文件时,会把dos文件的权限映射成对应的unix权限,在映射后所得的权限,会与这个参数所定义的值进行与操作。然后再和下面的force create mode进行或操作,这样就得到最终linux下的文件权限。
    • force create mode – 见上面的描述。相当于此参数所设置的权限位一定会出现在文件属性中。
    • directory mode – 这个配置与create mode参数类似,只是它是应用在新创建的目录上。Samba在新建目录时,会把dos–>linux映射后的文件属性,与此参数所定义的值相与,再和force directory mode相或,然后按这个值去设置目录属性。
    • force directory mode – 见上面的描述。相当于此参数中所设置的权限位一定会出现在目录的属性中。

    说明一点,上面的create mode和create mask参数是同义词,用哪个都可以;而directory mode和directory mask参数是相同的。

    当你发现Samba中新建的目录/文件权限不正确,例如无法访问某个目录、无法更改文件,就需要检查上面几个值的设置。

    另外需要说明的是,上面几个配置项,会和security mask、force security mode、directory security mask、force directory security mode这几个配置项相互作用。这几个带”security”的配置项会影响Windows NT/2000的ACL功能,一般我们不需要设置。

    参考:http://blog.csdn.net/hustfoxy/article/details/9028027

    出处:https://www.cnblogs.com/champaign/p/5915987.html

  • 相关阅读:
    Flask路由+视图补充
    Flask登录认证
    Flask
    初识Flask
    redis 注意事项
    Linux安装python和更新pip
    Django 导入配置文件
    redis 5种类型
    redis 支持事务
    数组乱序与数组拆解
  • 原文地址:https://www.cnblogs.com/mq0036/p/11620481.html
Copyright © 2011-2022 走看看