当前位置 博文首页 > ChangWen的博客:Linux权限管理(基本权限、默认权限、

    ChangWen的博客:Linux权限管理(基本权限、默认权限、

    作者:[db:作者] 时间:2021-08-07 22:10

    一、文件基本权限

    1-1.基本权限的修改

    -rw-r--r--
    ? - 第一个"-"表示文件类型(- 文件,d 目录,l 软链接文件)
    ? - rw-?????? r--?????? r--
    ??? u所有者?? g所属组?? o其它人
    其中r读,w写,x执行

    (1).chmod? [选项]? 模式? 文件名
    ? - 选项
    ??? . -R? 递归
    ? - 模式
    ??? [ugoa] [+-=] [rwx]
    ??? [mode=421]

    #为所有者添加rw权限, 所属组去除w权限
    chmod u+rw, g-w test.txt

    权限的数字表示(用二进制转的数)
    r---4;? w----2;? x ----1;
    如rwxr-xr-x,则对应7 5 5

    1-2.权限对文件的作用

    r: 读取文件内容(cat more? head tail)
    w: 编辑、新增、修改文件内容(vi echo)
    ? -但是不包含删除文件,因为文件名和文件数据存放位置不同
    x: 可进入目录
    注意:
    ? 对文件来讲:最高权限是 x
    ? 对目录来讲:最高权限是 w

    ? head:默认是查看文件的前10行
    ? tail:默认是查看文件的最后10行
    ??? -n 指定查看多少行
    ? more:显示满一页时暂停,按空格健继续显示下页,或按Q停止显示。

    (2).chown: 修改文件的所有者
    格式:chown? 用户名? 文件名

    (3).chgrp:修改文件的所属组
    格式:chgrp? 组名? 文件名

    实例要求
    ? - 拥有一个test目录
    ? - 让testuser拥有所有的权限
    ? - 让用户组有查看的权限
    ? - 其他所有人不许查看这个目录

    # 拥有一个test目录
    changwen@ubuntu:~$ ll -d test
    drwxrwxr-x 3 changwen changwen 4096 Jul 24 05:41 test/
    
    # 添加一个testuser用户
    changwen@ubuntu:~$ sudo useradd testuser
    
    # 设置该用户的密码
    changwen@ubuntu:~$ sudo passwd testuser
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    
    # 在用户组里添加两个用户
    changwen@ubuntu:~$ sudo useradd -g usergroup user1
    changwen@ubuntu:~$ sudo useradd -g usergroup user2
    
    # 设置test目录的所有者:所属组
    changwen@ubuntu:~$ sudo chown testuser:usergroup test
    
    changwen@ubuntu:~$ ll -d test
    drwxrwxr-x 3 testuser usergroup 4096 Jul 24 05:41 test/
    
    # 按实例要求设置权限
    changwen@ubuntu:~$ sudo chmod 750 test
    changwen@ubuntu:~$ ll -d test
    drwxr-x--- 3 testuser usergroup 4096 Jul 24 05:41 test/

    二、文件默认权限

    (4).unmak: 查看默认权限
    如0022
    ? - 第一位0: 文件特殊权限
    ? - 022 : 文件默认权限
    临时修改: umask 0002
    永久修改: vi? /etc/profile

    文件默认权限
    ? 1).文件默认不能建立执行文件,必须手工赋予执行权限
    ? 2).所以文件默认权限最大为666
    ? 3).默认权限需要换算成字母再相减
    ? 4).建立文件之后的默认权限,为666减去umask值
    例如:
    ?- 文件默认最大权限是666, umask值为022
    ?- -rw-rw-rw-? 减去? -----w--w-? 等于 -rw-r--r--

    目录的默认权限
    ? 1).目录默认权限最大为777
    ? 2).默认权限需要换算成字母再相减
    ? 3).建立文件之后的默认权限,为777减去umask值
    例如:
    ?- 目录默认权限最大为777, umask值为022 ?
    ?- -rwxrwxrwx? 减去? -----w--w-? 等于 -rwxr-xr-x

    三、ACL简介

    ??? ACL就是用来解决用户身份不足的问题

    # 查看分区ACL权限是否开启
    (5).dupe2fs 命令是查询指定分区详细文件系统信息的命令
    ?dupe2fs -h /dev/sda51
    ?? -h? 仅显示超级块中信息,而不是磁盘块的详细信息

    # 临时开启分区ACL权限
    mount? -o? remount, acl? /
    ? - 重新挂载根分区,并挂载加入acl权限

    # 永久开启分区ACL权限(不建议修改)
    vi? /etc/fstab
    #加入acl
    然后修改UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2? /? ext4? defalults? acl? 1 1

    # 重新挂载文件系统或重启系统,使修改生效
    mount? -o? remount? /

    3-1查看与设定ACL权限

    # 查看acl权限
    getfacl? 文件名

    # 设定acl权限
    setfacl? 选项? 文件名
    ? -m? 设定ACL权限
    ? -x? 删除指定的ACL权限
    ? -b? 删除所有的ACL权限
    ? -d? 设定默认ACL权限
    ? -k? 删除默认ACL权限
    ? -R? 递归设定ACL权限


    changwen@ubuntu:~$ mkdir av
    
    # 增加所有者和用户组,并设置av目录的权限
    changwen@ubuntu:~$ sudo useradd tony
    changwen@ubuntu:~$ sudo groupadd stu
    changwen@ubuntu:~$ sudo chown tony:stu av
    # 设置av权限
    changwen@ubuntu:~$ sudo chmod 770 av
    
    # 添加老王用户并设置密码
    changwen@ubuntu:~$ sudo useradd lw
    changwen@ubuntu:~$ sudo passwd lw
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    
    # 给用户lw赋予r-x权限,使用 "u:用户名:权限" 格式
    changwen@ubuntu:~$ sudo setfacl -m u:lw:rx  /home/changwen/av
    
    # 为用户组tgroup2分配ACL权限。使用 "g:组名:权限" 格式
    setfacl -m g:tgroupt2:rwx  /home/changwen/av

    可以看到用户lw不属于用户组,也不属于其它组,这就是ACL权限

    3-2、最大有效权限与删除

    上面getfacl av可以看到有一个mask
    mask:是用来指定最大有效权限的。如果我给用户赋予ACL权限,是需要和mask的权限”相与”才能得到用户的真正权限。

    # 修改最大有效权限
    setfacl -m m:rx 文件名
    ?- 设定mask权限为r-x。使用"m:权限"格式

    删除ACL权限
    # 删除指定用户的ACL权限
    setfacl -x u:用户名? 文件名

    # 删除指用户组的ACL权限
    setfacl? -x g:组名? 文件名

    # 删除文件的所有的ACL权限
    setfacl -b 文件名

    3-3、默认ACL权限与递归ACL权限

    ?? 1).递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。递归权限仅能赋予目录,不能赋予文件。
    setfacl -m u:用户名:权限 -R? 文件名
    ? -R 如果不加R,那么该目录下创建的文件没有ACL权限
    ???? 但加R,会有权限溢出
    所以建议少用ACL权限

    ?? 2).默认ACL权限的作用是如果给们目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
    setfacl -m d:u:用户名:权限? 文件名


    cs
    下一篇:没有了