1、今天发现用samba挂载开发过程中,发现别人的权限和我的经常不一致,导致提交git的时候都被提交了,心想应该有哪里有一个统一设置的可以设置用户的默认权限,后来百度之后找到下面的文章,以后创建文件和复制文件都可以是自己设置的默认权限了,感觉不错
通过Samba服务器实现windows和Linux之间的文件共享,相信是绝大多数人的选择。通常我们都会使用Samba的缺省配置,这样,每次通过Samba从Windows向Linux中拷贝文件时,文件都会被加上”可执行”的属性。这是很让人头疼的问题,每次都要通过chmod去修改文件的权限很是麻烦。
今天仔细看了一下Samba的手册,发现只要把下面的配置加入/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功能,一般我们不需要设置。