zoukankan      html  css  js  c++  java
  • (转) 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:用户名:权限  文件名

  • 相关阅读:
    zookeeper使用场景
    zookeeper安装配置
    hadoop 远程调试
    deep learning笔记
    Sentiment Analysis(1)-Dependency Tree-based Sentiment Classification using CRFs with Hidden Variables
    PRML阅读笔记 introduction
    Python 学习笔记(2)
    python nltk 学习笔记(5) Learning to Classify Text
    python nltk 学习笔记(4) Writing Structured Programs
    python nltk 学习笔记(3) processing raw text
  • 原文地址:https://www.cnblogs.com/tzhyy/p/9467886.html
Copyright © 2011-2022 走看看