• (转) Linux权限管理(基本权限、默认权限)


    一、文件基本权限

    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拥有所有的权限 
      - 让用户组有查看的权限
      - 其他所有人不许查看这个目录

    [python] view plain copy
     
     
     
    1. # 拥有一个test目录  
    2. changwen@ubuntu:~$ ll -d test  
    3. drwxrwxr-x 3 changwen changwen 4096 Jul 24 05:41 test/  
    4.   
    5. # 添加一个testuser用户  
    6. changwen@ubuntu:~$ sudo useradd testuser  
    7.   
    8. # 设置该用户的密码  
    9. changwen@ubuntu:~$ sudo passwd testuser  
    10. Enter new UNIX password:   
    11. Retype new UNIX password:   
    12. passwd: password updated successfully  
    13.   
    14. # 在用户组里添加两个用户  
    15. changwen@ubuntu:~$ sudo useradd -g usergroup user1  
    16. changwen@ubuntu:~$ sudo useradd -g usergroup user2  
    17.   
    18. # 设置test目录的所有者:所属组  
    19. changwen@ubuntu:~$ sudo chown testuser:usergroup test  
    20.   
    21. changwen@ubuntu:~$ ll -d test  
    22. drwxrwxr-x 3 testuser usergroup 4096 Jul 24 05:41 test/  
    23.   
    24. # 按实例要求设置权限  
    25. changwen@ubuntu:~$ sudo chmod 750 test  
    26. changwen@ubuntu:~$ ll -d test  
    27. 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权限

    [python] view plain copy
     
     
     
    1. changwen@ubuntu:~$ mkdir av  
    2.   
    3. # 增加所有者和用户组,并设置av目录的权限  
    4. changwen@ubuntu:~$ sudo useradd tony  
    5. changwen@ubuntu:~$ sudo groupadd stu  
    6. changwen@ubuntu:~$ sudo chown tony:stu av  
    7. # 设置av权限  
    8. changwen@ubuntu:~$ sudo chmod 770 av  
    9.   
    10. # 添加老王用户并设置密码  
    11. changwen@ubuntu:~$ sudo useradd lw  
    12. changwen@ubuntu:~$ sudo passwd lw  
    13. Enter new UNIX password:   
    14. Retype new UNIX password:   
    15. passwd: password updated successfully  
    16.   
    17. # 给用户lw赋予r-x权限,使用 "u:用户名:权限" 格式  
    18. changwen@ubuntu:~$ sudo setfacl -m u:lw:rx  /home/changwen/av  
    19.   
    20. # 为用户组tgroup2分配ACL权限。使用 "g:组名:权限" 格式  
    21. 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:用户名:权限  文件名

  • 相关阅读:
    linux signal之初学篇
    Eclipse 每次打开workspace目录记录位置?
    [Clojure] A Room-Escape game, playing with telnet and pure-text commands
    孔雀翎----《Programming C# 》中国版 文章4版
    js一些编写的函数
    KVM,QEMU核心分析
    apche commons项目简介
    java基础—网络编程———建立聊天的形式
    学习算法
    css+html+js实现多级下拉和弹出菜单
  • 原文地址:https://www.cnblogs.com/tzhyy/p/9467886.html
Copyright © 2020-2023  润新知