配置samba服务器

公司须要一台用于共享的文件服务器,考虑使用Linux系统,据说会比windows的文件系统好管理,了解很少,人云亦云了!html

 

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

 

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

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

 

复制代码
[global]  

[homes]

[printers]

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

 

[homes] 是登录用户的目录安全

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

[自定义] 是在windows中看到的共享目录,能够有多个。框架

 

一.[global] 经常使用配置选项dom

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.htmlpost

 

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

相关文章
相关标签/搜索