公司须要一台用于共享的文件服务器,考虑使用Linux系统,据说会比windows的文件系统好管理,了解很少,人云亦云了!html
这里须要用到samba系统,安装比较简单,安装后须要进行配置才能访问。linux
修改smb.conf 配置文件(参数的配置说明最好直接看默认文件中的注释说明):数据库
samba自带的smb.conf文件注释不少,例子给的也很多,容易让人以为这个文件很复杂,其实它的框架很简单,主要包括下面几个小节:windows
[global] [homes] [printers] [自定义]
[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
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功能,通常咱们不须要设置。