acl

  • CentOS 6下超实用的samba配置教程

    ·

    介绍: samba是在linux/unix上实现SMB协议的免费软件,通俗来说就是让linux/unix支持与windows间互相共享文件。 安装软件包: yum install -y samba samba配置文件介绍 samba配置文件的存放路径为 /etc/samba/ 该目录下有以下三个文件: lmhosts文件中记录着局域网中NetBIOS与IP地址的对应关系 smb.conf是samba的主配置文件,其内容由全局配置部分和共享配置部分组成。 smbusers文件记录着windowns中用户与linux中用户的对应关系,例如windows中的administrator管理员账户对应linux下的root用户。 samba的配置: 在开始配置前,首先明确下需求: 1、user11和user12用户可以通过samba共享来访问自己的家目录,且此共享仅本人可见。 2、创建三个共享,分别为share1、share2、share3,其共享的本地文件夹分别为/tmp/a1、/tmp/a2、/tmp/a3。 3、group1组的用户user1对share1共享有全部权限,group2组的用户user2对share2有全部权限,group3组的用户user3对share1和share2共享都有全部权限;对于share1和share2共享其他人有只读权限;share3为公共存储,所有人都有存取权。 4、所用用户新建的文件都是本人拥有全部权限,其他人只有只读权限。 知道了需求,那么现在就来根据需求来做具体配置吧: vim /etc/samba/smb.conf //使用vim文本编辑器打开配置文件 转到第248行,可以看到如下内容,看开头一行,[homes],home是家的意思,加s呢,变成复数了,可以理解成所有用户的家,哈哈,感觉我像是在讲英语。总之,通过配置此部分就可以满足需求1了。 comment选项是用来添加一个文本描述的。 browseable选项定义他人是否可以看到此共享,yes为可以,no为不可以(仅自己可见)。 writable选项用来定义共享是否可写。 valid users选项定义该共享规则对哪些用户启用。 看显而易见,我们只要设置valid users选项,让此共享配置仅对user11和user12用户生效即可满足需求1。 再来看需求2,新建三个共享,这个怎么破?其实很简单啦,配置文件里已经写好了现成的,我们只需要复制成三份就好。 转到配置文件的末尾,可以看到以[public]关键字开头的配置部分,这就是配置共享的模板。 复制前需要注意,这部分配置文件默认被注释掉了,如果你不想在复制完去一点点的删除三份注释符号的话那最好在复制之前把这一份注释符号删掉,如下图: 三个共享有了,但他们的配置文件是一摸一样的,那共享名和共享的文件夹一定也是一样的,要如何为每一个共享做定制呢? 先看这部分配置文件的简单介绍: 开头的[public]是共享名,可任意起,与实际的共享文件夹可以不同名。 comment是没用的文本介绍。 path是指定要共享的本地文件夹的路径。 public是用来指定是否共享的,有yes和no两个选项,至于这两个选项分别是啥意思我就不啰嗦了。 writable用于配置此共享是否支持写入。 printable指定是否支持打印,没有特殊需求的话这里都保持注释状态。 write list此选项用于决定哪些用户或组对此共享拥有写入权限,此处一般保持注释就好,因为linux的权限管理可比samba的好用多了。 以下是按照需求2修改过的配置文件,修改部分已经用红笔标出来了,对照上方配置选项的解释就可以轻松理解下图的配置内容了。 权限配置部分: 下面来看需求3,很明显这里是需要做权限控制了。但我不得不唠叨一下,samba自带的权限管理配置起来那是相当的蛋疼,而且功能弱爆了。所以这里我们使用linux系统权限管理加ACL来做权限控制。 关于ACL的介绍可以参考: linux下acl权限详解 在配置权限前,我们先把所需要的用户与组都创建完,并把他们加入到samba用户数据库中,再把要共享的文件夹都创建出来。 新建用户: useradd user11 useradd…

    Read More

  • linux下acl权限详解

    ·

    安装软件包 yum install -y acl 配置acl权限 用于acl权限管理的命令主要有两个: setfacl          //设置acl权限 getfacl         //查看acl权 首先来看setfacl 常用参数: -b:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。 -d:设定默认的acl规则 -R:递归的对所有文件及目录进行操作。 -m:修改文件或目录的acl规则。 -x:删除指定acl规则。 以上只列出常用参数,详细命令帮助可参考:http://man.linuxde.net/setfacl 举个例子:想让user1这个用户对~/test目录拥有全部权限,除了修改所有者或所属组之外还能怎样呢? 且往下看。 setfacl -Rm u:user1:rwx ~/test //使user1用户对test目录拥有全部权限。 执行以上命令后user1用户即可任意操作~/test目录。 来看一下这条命令,setfacl,设置acl权限、参数R代表递归应用,m修改权限、u代表用户,如果想赋予某个组acl权限就用g,:后边接的要赋予acl权限的用户名或组名(不填则修改所有者或所属组的acl权限),紧接着下一个冒号后面跟的就是要赋予这个用户的权限了、最后接要操作的目录或文件名,就这么简单。 再来看一个例子: setfacl -m d:u::rwx ~/test //为test目录下新建的文件或目录设置默认acl权限,对所有用户生效 如果写成这样: setfacl -m d:u:user1:rwx ~/test 这条命令执行后可以达到什么目的呢?我猜,聪明的读者一定猜到了:是给user1创建的文件或目录设置默认acl权限。 如果你是这样想的,那么恭喜你,猜错了。 这条命令实际的意义其实是给所有用户创建的文件或目录都加上user1这个用户的rwx的acl权限~ 最后再来看下如何删除acl权限 setfacl -x d:u:user1 ~/test //删除~/test目录中关于user1的默认acl权限…

    Read More