Linux基础(二):文件权限管理

文章目录

Linux基础(二):文件权限管理

一、文件的所有者,所在组,其他组

  1. 所有者和所在组

    (1)所有者 一般为文件的创建者,所在组一般为创建者所在的组

    (2) 查看所有者和所在组指令:

    # 查看所有者和所在组
    ls -l
    

    (3) 应用实例:创建一个组police,创建一个用户Tom,将其归入police组,使用Tom新创建一个文件,查看文件情况

    # 创建police组(root)
    groupadd police
    # 创建Tom用户并将其并入police组(root)
    useradd -g police Tom
    # 将用户切换为Tom
    su - Tom
    # 创建新文件
    touch a.txt
    # 在新创建的文件目录下查看文件的所有者和所在组
    ls -l
    

    (4) 修改文件所有者指令(不修改所在组):chown(change owner) 新的用户名 文件名

    ​ 应用实例:使用root创建文件 b.txt,然后将其所有者改为Tom

    # root用户下创建文件
    touch b.txt
    # 查看所有者
    ls -l
    # 将文件所有者改为Tom
    chown Tom b.txt
    # 查看所有者
    ls -l
    

    (6) 修改文件所在组指令 chgrp(change group) 新的组 文件名

    ​ 应用实例:使用root用户创建c.txt,修改所在组为police,查看所在组的信息

    # root用户下创建文件
    touch c.txt
    # 查看所在组
    ls -l
    # 修改所在组
    chgrp root c.txt
    # 查看所在组
    ls -l
    

    (7)同时修改文件所在组和所有者

    # chown newowner:newgroup file
    # 修改某个文件
    chmod Tom:police /root/c.txt
    # 修改某个目录下所有文件(root权限下)
    chmod -R Tom:police /root/kkk
    
  2. 其他组:除所在组以及拥有者外,其他用户或组都是其他组

二、文件权限管理

  1. 权限表示结构

    -rw-r--r-- root police 0 Feb 17 10:00 c.txt
    1 2  3  4   5     6    7   8            9
    
    1. “-”: 表示文件基本类型,"-"表示普通文件,"d"表示目录文件,"l"表示软链接,"c"表示字符设备(键盘鼠标等),"b"表示块文件(硬盘等)
    2. “rw-”: 表示文件所有者权限 (User)
    3. “r–”:表示文件所在组用户的权限 (Group)
    4. “r–”::表示其他组的用户权限 (other)
    5. “root”:所有者
    6. “police”:所在组
    7. “0”:文件大小,单位为byte,如果是目录文件,默认为4096
    8. “Feb 17 10:00”:文件最后修改的时间
    9. “c.txt”:文件名称
  2. rwx权限详解

    若是普通文件

    1. [r]代表可读(read),即可以读取,查看。
    2. [w]代表可写(write),可以修改,但是不一定能够删除文件。删除文件的前提是对该文件所在的目录有写权限,才可以删除该文件
    3. [x]代表可执行(execute),可以被执行

    若是目录文件

    1. [r]代表可读(read),ls查看目录内容
    2. [w]代表可写(write),可以修改,即目录内创建+删除+重命名目录
    3. [x]代表可执行(execute),可以进入该目录

    可以使用数字表示

    [r] = 4; [w] = 2; [x] = 1

三、文件权限修改

  1. 命令:chmod,修改文件或者目录的权限

  2. 使用 + 、-、= 变更权限

    (1) u:所有者;g:所有组;o:其他人;a:所有人(u,g,o总和)

    (2) chmod u=rwx,g=rx,o=x 文件或目录名

    (3) chmod o+w 文件或目录名

    (4) chmod a+x 文件目录名

  3. 实际案例

    (1) 给abc文件的所有者读写执行的权限,给所在组读和执行权限,给其他组用户读写权限

    # Tom用户下创建abc文件
    touch abc
    # 查看信息
    ls -l
    # 修改权限
    chmod u=r+w+x,g=r+x,o=r+x abc
    # 或者:chmod u=rwx,g=rx,o=rx abc
    

    (2) 给abc文件的所有者除去执行权限,增加所在组的权限

    chmod u-x,g+w abc
    

    (3) 给abc文件的所有用户添加读的权限

    chmod a+r abc
    
  4. 使用数字修改权限

    # 上面案例(1)
    chmod 755 abc
    

四、实例

  1. 实例描述:创建两个组(police,bandit),polie组里面有jack,jerry两个用户,bandit组里面有XiaoMing,XiaoHong两个人

  2. 实际操作

    # 1. 创建两个组
    groupadd police
    groupadd bandit
    
    # 2. 创建用户并指定所在组
    useradd -g police jack
    useradd -g police jerry
    useradd -g bandit XiaoMing
    useradd -g bandit XiaoHong
    
    # 3. jack创建一个文件,自己可以读写,本组人可以读,其他组没有任何权限
    # 首先切换用户
    su - jack
    # 然后创建文件
    touch jackFile.txt
    # 修改文件权限
    chmod u=rw,g=r,o-r jackFile.txt
    # 或者:chmod 640 jackFile.txt
    
    # 4. XiaoMing投靠警察
    usermod -g police XiaoMing
    
上一篇:Linux档案权限篇之一


下一篇:shell原理及Linux权限理解