|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|

Posted yanqi_vip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|相关的知识,希望对你有一定的参考价值。

一、ACL 权限
### --- ACL 概述:

~~~     ACL 是用于解决用户对文件身份不足的问题的
|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|_linux 二、开启 ACL
### --- 开启 ACL
### --- dumpe2fs 命令是查询指定分区详细文件系统信息的命令
### --- 选项:
~~~     -h 仅显示超级块中信息,而不显示磁盘块组的详细信息。
~~~     ...省略部分输出...
 Default mount options: user_xattr acl
~~~     ...省略部分输出...

[root@localhost ~]# dumpe2fs -h /dev/sda3
 
~~~     如果没有开启,手工开启分区的 ACL 权限:
~~~     重新挂载根分区,并挂载加入 acl 权限
~~~     也可以通过修改/etc/fstab 文件,永久开启 ACL 权限:
[root@localhost ~]# mount -o remount,acl /
 
~~~     加入 acl
[root@localhost ~]# vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4

~~~     重新挂载文件系统或重启动系统,使修改生效
[root@localhost ~]# mount -o remount /
 
### --- ACL权限没有开启,手动开启ACL权限

[root@server11 ~]# dumpe2fs -h /dev/sda3
Default mount options:    user_xattr acl                    // 默认挂载权限由acl权限
三、ACL 基本命令
### --- ACL 基本命令

~~~     getfacl             文件名查询文件的 ACL 权限
~~~     setfacl 选项        文件名设定 ACL 权限
~~~     -m                  设定 ACL 权限
~~~     -b                  删除 ACL 权限
~~~     -x:用户             删除单个用户的 ACL 权限
~~~     setfacl -m  u:      用户名:权限  文件名
~~~     setfacl -m  g:      组名:权限       文件名
~~~     setfacl -m u:aa:rwx /test           给 test 目录赋予 aa 是读写执行的 ACL 权限
~~~     setfacl  -m u:cc:rx -R soft/        赋予递归 ACL 权限,只能赋予目录
~~~     -R                  递归
~~~     setfacl -m d:u:aa:rwx -R /test          ACL 默认权限。   注意:默认权限只能赋予目录
~~~     注意:如果给目录赋予 acl 权限,两条命令都要输入
### --- 递归与默认的区别:

~~~     setfacl     -m u:cc:rx -R soft/         只对已经存在的文件生效
~~~     setfacl -m d:u:aa:rwx -R /test          只对以后新建的文件生效
 
### --- 设置ACL权限
~~~     添加一个新的用户
[root@server21 ~]# useradd www3
[root@server21 ~]# passwd www3

~~~     授予ACL权限
[root@server21 ~]# setfacl -m u:www3:5 /www/                // u:www3:5用户:用户名:权限数字或者权限数字也可以
 
~~~     查看有个+号

[root@server21 ~]# ll -d /www/
drwxrwx---+ 2 www1 www 4096 Feb  4 10:29 /www/
[root@server21 ~]# getfacl /www/
~~~     file: www/                                          // 文件名
~~~     owner: www1                                         // 所有者
~~~     group: www                                          // 所属组
user::rwx                                                   // 用户权限
user:www3:r-x                                               // 单独的用户拥有5权限
group::rwx                                                  // 所属组权限
mask::rwx                                                   // 最大权限
other::---                                                  // 其他人权限
 
~~~     验证:他可以进入到该目录,但是不可以创建文件            // 只能查看文件内容,但是没有操作权限

[root@server21 ~]# su - www3
[www3@server21 ~]$ cd /www/
[www3@server21 www]$ touch www
touch: cannot touch# `www: Permission denied
 
### --- 递归创建子文件:针对已经存在子文件生效

[root@server21 ~]# touch /www/wwwtest1
[root@server21 ~]# touch /www/wwwtest2
[root@server21 ~]# setfacl -m u:www3:5 -R /www/
 
~~~     查看www下的所有文件都有ACL权限

[root@server21 ~]# ll /www/
-rw-r-xr--+ 1 root root 0 Feb  4 10:35 wwwtest1
-rw-r-xr--+ 1 root root 0 Feb  4 10:35 wwwtest2
[root@server21 ~]# getfacl /www/wwwtest1
getfacl: Removing leading / from absolute path names
# file: www/wwwtest1
# owner: root
# group: root
user::rw-
user:www3:r-x
group::r--
mask::r-x
other::r--
 
~~~     再创建一个文件,是没有ACL权限的

[root@server21 ~]# touch /www/wwwtest3
[root@server21 ~]# ll /www/
total 0
-rw-r-xr--+ 1 root root 0 Feb  4 10:35 wwwtest1
-rw-r-xr--+ 1 root root 0 Feb  4 10:35 wwwtest2
-rw-r--r--  1 root root 0 Feb  4 10:38 wwwtest3             // 是没有ACL权限,递归只能对已经存在的文件生效
 
~~~     对于新建的文件也会有ACL权限

[root@server21 ~]# setfacl -m d:u:www3:5 -R /www/           // 加入d参数
[root@server21 ~]# getfacl /www/
default:user::rwx
default:user:www3:r-x
default:group::rwx
default:mask::rwx
default:other::---
[root@server21 ~]# touch /www/wwwtest4
[root@server21 ~]# ll /www/
total 0
-rw-r-xr--+ 1 root root 0 Feb  4 10:35 wwwtest1
-rw-r-xr--+ 1 root root 0 Feb  4 10:35 wwwtest2
-rw-r--r--  1 root root 0 Feb  4 10:38 wwwtest3             // 这个文件还是没有ACL权限,刚好卡在这两个权限生效之间,所以不会生效
-rw-rw----+ 1 root root 0 Feb  4 10:40 wwwtest4             // 新建的文件有ACL权限
 
### --- ACL权限最大的问题:一旦递归之后,不可避免权限溢出

~~~     setfacl     -m u:cc:rx -R soft/                     // 只对已经存在的文件生效
~~~     setfacl -m d:u:aa:rwx -R /test                      // 只对以后新建的文件生效 
四、 最大有效权限 mask
### --- 最大有效权限 mask

[root@localhost /]# setfacl -m m:rx project/
 
~~~     设定 mask 权限为 r-x。使用“m:权限”格式

[root@localhost /]# getfacl project/
~~~     file: project/
~~~     owner: root
~~~     group: tgroup
user::rwx
group::rwx                                                  // effective:r-x
mask::r-x
~~~     mask 权限变为了 r-x
other::---
 
### --- 调整最大权限

[root@server21 ~]# getfacl /www/
mask::rwx                                                   // 调整最大权限的
[root@server21 ~]# setfacl -m m:6 /www/
[root@server21 ~]# getfacl /www/
user::rwx
user:www3:r-x                                               // effective:r--- 只读;建议使用默认的
group::rwx                                                  // effective:rw-
mask::rw-
other::---
default:user::rwx
default:user:www3:r-x
default:group::rwx
default:mask::rwx
default:other::--- 
[root@server21 ~]# setfacl -m m:7 /www/
五、删除 ACL 权限
### --- 删除 ACL 权限
~~~     删除指定用户和用户组的 ACL 权限
[root@localhost /]# setfacl -x u:st /project/
 
~~~     会删除文件的所有的 ACL 权限
[root@localhost /]# setfacl -b project/
 
### --- 删除 ACL 权限
### --- 再添加一个用户授予ACL权限

[root@server21 ~]# setfacl -m u:www2:5 /www/
[root@server21 ~]# getfacl /www/
user:www2:r-x
user:www3:r-x
 
### --- 删除某一个用户的ACL权限
[root@server21 ~]# setfacl -x u:www2 /www/
[root@server21 ~]# getfacl /www/
user:www3:r-x                                               // 只能查看到www3用户的ACL权限

### --- 删除所有的ACL权限
[root@server21 ~]# setfacl -b /www/
[root@server21 ~]# getfacl /www/

                 
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warmd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor
 

 

以上是关于|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|的主要内容,如果未能解决你的问题,请参考以下文章

js 点击列表li,获得当前li的id

CSS样式中 li + li表示啥意思?

jquery点击li标签之后在该li标签上添加一个class,点击下一个li时删除上一个li的class

li点击弹出序号

事件委托性能优化

遍历ul下的li,点击弹出li的索引