赞
踩
1)创建账户:mike、john、kaka
2)创建文件:/data/file1.txt
3)mike对文件有读写权限,john只有读权限。其他用户没有任何权限
4)kaka具有与john相同权限
5)创建lily用户,lily对file1.txt具有读执行权限,其他用户没有任何权限
并不是所有的分区都支持ACL策略设置,后续会学习怎样让一个分区支持ACL。在安装系统时划分的分区默认是支持ACL策略的,而如果该分区是在安装系统之后创建的默认是不支持的。
ACL策略应用的情况是,当所有者、所属组、其他人三个归属关系,三种身份的权限都不能满足某个用户或组的权限设置。这个时候ACL可以为这个用户或组单独设置权限,使Linux权限划分设置更加灵活。
实现此案例需要按照如下步骤进行。
步骤一:创建账户:mike、john、kaka
命令操作如下所示:
[root@localhost ~]# useradd mike
[root@localhost ~]# useradd john
[root@localhost ~]# useradd kaka
步骤二:创建文件:/data/file1.txt
命令操作如下所示:
[root@localhost ~]# touch /data/file1.txt
[root@localhost ~]# ls -l /data/file1.txt
-rw-r--r--. 1 root root 0 2月 27 15:38 /data/file1.txt
步骤三:mike对文件有读写权限,john只有读权限。其他用户没有任何权限
分析: 此题涉及到三种不同的权限,我们可以这样来做,让mike来做所有者,让john属于此文件所属组成员,当然其他人就好说了直接设置即可。
命令操作如下所示:
[root@localhost ~]# ls -l /data/file1.txt //查看权限及归属关系
-rw-r--r--. 1 root root 0 2月 27 15:38 /data/file1.txt
[root@localhost ~]# chown mike:john /data/file1.txt //更改所有者与所属组
[root@localhost ~]# ls -l /data/file1.txt //查看更改结果
-rw-r--r--. 1 mike john 0 2月 27 15:38 /data/file1.txt
[root@localhost ~]# chmod o= /data/file1.txt //设置权限,其他人无权限
[root@localhost ~]# ls -l /data/file1.txt //查看呢设置结果
-rw-r-----. 1 mike john 0 2月 27 15:38 /data/file1.txt
[root@localhost ~]#
步骤四:kaka具有与john相同权限
分析: 我们可以把kaka加入到john组里面
命令操作如下所示:
[root@localhost ~]# id kaka //查询kaka用户信息
uid=506(kaka) gid=507(kaka) 组=507(kaka)
[root@localhost ~]# gpasswd -a kaka john //将kaka用户加入到john组
Adding user kaka to group john
[root@localhost ~]# id kaka //查询kaka用户信息
uid=506(kaka) gid=507(kaka) 组=507(kaka),506(john)
[root@localhost ~]#
步骤五:创建lily,lily对file1.txt具有读执行权限,其他用户没有任何权限
分析: 这个时候就出现基本权限及归属关系不能解决,首先所有者已确定是mike,所属组权限rw所以也不行,最后其他人上面题有要求无任何权限。所以ACL策略就派上用场了。
命令操作如下所示:
[root@localhost ~]# echo 123456 > /data/file1.txt //写入测试文字 [root@localhost ~]# cat /data/file1.txt //管理员测试 123456 [root@localhost ~]# id lily //查询是否存在lily用户 id: lily:无此用户 [root@localhost ~]# useradd lily //创建lily用户 [root@localhost ~]# su – lily //切换用户身份 [lily@localhost ~]$ cat /data/file1.txt //测试在没有设置ACL前lily能否查看 cat: /data/file1.txt: 权限不够 [lily@localhost ~]$ exit //退到root用户身份 logout [root@localhost ~]# getfacl /data/file1.txt //查看文件ACL策略 getfacl: Removing leading '/' from absolute path names # file: data/file1.txt # owner: mike # group: john user::rw- group::r-- other::--- [root@localhost ~]# setfacl -m u:lily:r /data/file1.txt //设置ACL策略 [root@localhost ~]# getfacl /data/file1.txt //查看ACL策略 getfacl: Removing leading '/' from absolute path names # file: data/file1.txt # owner: mike # group: john user::rw- user:lily:r-- group::r-- mask::r-- other::--- [root@localhost ~]# su – lily //切换用户 [lily@localhost ~]$ cat /data/file1.txt //测试是否具有r权限 123456
1)为目录 /public/ 设置ACL策略,使用户gelin01具有rwx权限
2)在 /public/ 下创建子目录gdir1、文件gfile1,分别查看其ACL策略
3)为目录 /public/ 设置可继承权限为“用户ht02具有rwx权限”
4)在 /public/ 下创建子目录gdir2、文件gfile2,分别查看其ACL策略
5)以用户ht02登入,做以下测试:
6)对/public/目录是否有写入权限
7)对/public/下的gdir2和gfile2是否有写入权限
8)对/public/下的gdir1和gfile1是否有写入权限
ACL默认策略,是一个可以继承的ACL策略。但需注意的是默认策略对目录本身是没有生效的,对于子目录子文件才开始生效。
实现此案例需要按照如下步骤进行。
步骤一:为目录 /public/ 设置ACL策略,使用户gelin01具有rwx权限
命令操作如下所示:
[root@localhost ~]# id gelin01 //测试是否有gelin01用户 uid=501(gelin01) gid=501(gelin01) 组=501(gelin01),502(tarena) [root@localhost ~]# mkdir /public //创建目录 [root@localhost ~]# getfacl /public //查看ACL策略 getfacl: Removing leading '/' from absolute path names # file: public/ # owner: root # group: root user::rwx group::r-x other::r-x [root@localhost ~]# setfacl -m u:gelin01:rwx /public //设置ACL策略 [root@localhost ~]# getfacl /public //查看ACL策略 getfacl: Removing leading '/' from absolute path names # file: public/ # owner: root # group: root user::rwx user:gelin01:rwx group::r-x mask::rwx other::r-x 步骤二:在 /public/ 下创建子目录gdir1、文件gfile1,分别查看其ACL策略 命令操作如下所示: [root@localhost ~]# mkdir /public/gdir1 [root@localhost ~]# touch /public/gfile1 [root@localhost ~]# getfacl /public/gdir1/ getfacl: Removing leading '/' from absolute path names # file: public/gdir1/ # owner: root # group: root user::rwx group::r-x other::r-x [root@localhost ~]# getfacl /public/gfile1 getfacl: Removing leading '/' from absolute path names # file: public/gfile1 # owner: root # group: root user::rw- group::r-- other::r-- [root@localhost ~]#
步骤三:为目录 /public/ 设置可继承权限为“用户ht02具有rwx权限”
命令操作如下所示:
[root@localhost ~]# id ht02 //查看ht02用户是否存在 id: ht02:无此用户 [root@localhost ~]# useradd ht02 //创建ht02用户 [root@localhost ~]# getfacl /public/ getfacl: Removing leading '/' from absolute path names # file: public/ # owner: root # group: root user::rwx user:gelin01:rwx group::r-x mask::rwx other::r-x [root@localhost ~]# setfacl -dm u:ht02:rwx /public //设置默认可继承ACL权限 [root@localhost ~]# getfacl /public/ getfacl: Removing leading '/' from absolute path names # file: public/ # owner: root # group: root user::rwx user:gelin01:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:ht02:rwx default:group::r-x default:mask::rwx default:other::r-x [root@localhost ~]#
步骤四:在 /public/ 下创建子目录gdir2、文件gfile2,分别查看其ACL策略
命令操作如下所示:
[root@localhost ~]# mkdir /public/gdir2 [root@localhost ~]# touch /public/gfile2 [root@localhost ~]# getfacl /public/gdir2 getfacl: Removing leading '/' from absolute path names # file: public/gdir2 # owner: root # group: root user::rwx user:ht02:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:ht02:rwx default:group::r-x default:mask::rwx default:other::r-x [root@localhost ~]# getfacl /public/gfile2 getfacl: Removing leading '/' from absolute path names # file: public/gfile2 # owner: root # group: root user::rw- user:ht02:rwx #effective:rw- group::r-x #effective:r-- mask::rw- other::r--
步骤五:以用户ht02登入,测试
切换目录身份,命令操作如下所示:
[root@localhost ~]# su - ht02
[ht02@localhost ~]$
对/public/目录是否有写入权限,命令操作如下所示:
[ht02@localhost ~]$ mkdir /public/htdir mkdir: 无法创建目录"/public/htdir": 权限不够 [ht02@localhost ~]$ getfacl /public/ getfacl: Removing leading '/' from absolute path names # file: public/ # owner: root # group: root user::rwx user:gelin01:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:ht02:rwx default:group::r-x default:mask::rwx default:other::r-x [ht02@localhost ~]$
分析: 从这可以看出默认权限对目录本身没有生效,对子目录才开始继承生效。
对/public/下的gdir2和gfile2是否有写入权限,命令操作如下所示:
[ht02@localhost ~]$ mkdir /public/gdir2/htdir [ht02@localhost ~]$ getfacl /public/gdir2/ getfacl: Removing leading '/' from absolute path names # file: public/gdir2/ # owner: root # group: root user::rwx user:ht02:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:ht02:rwx default:group::r-x default:mask::rwx default:other::r-x [ht02@localhost ~]$ ls -ld /public/gdir2/htdir/ //创建成功 drwxrwxr-x+ 2 ht02 ht02 4096 2月 27 16:53 /public/gdir2/htdir/ [ht02@localhost ~]$ getfacl /public/gfile2 getfacl: Removing leading '/' from absolute path names # file: public/gfile2 # owner: root # group: root user::rw- user:ht02:rwx #effective:rw- group::r-x #effective:r-- mask::rw- other::r-- [ht02@localhost ~]$ [ht02@localhost ~]$ echo 123456 > /public/gfile2 //测试写入 [ht02@localhost ~]$ cat /public/gfile2 123456 对/public/下的gdir1和gfile1是否有写入权限,命令操作如下所示: [ht02@localhost ~]$ getfacl /public/gdir1 //可以看到ht02没有呢ACL权限 getfacl: Removing leading '/' from absolute path names # file: public/gdir1 # owner: root # group: root user::rwx group::r-x other::r-x [ht02@localhost ~]$ mkdir /public/gdir1/htdir mkdir: 无法创建目录"/public/gdir1/htdir": 权限不够 [ht02@localhost ~]$ getfacl /public/gfile1 //可以看到ht02没有呢ACL权限 getfacl: Removing leading '/' from absolute path names # file: public/gfile1 # owner: root # group: root user::rw- group::r-- other::r-- [ht02@localhost ~]$ echo 123456 > /public/gfile1 -bash: /public/gfile1: 权限不够 [ht02@localhost ~]$
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。