11.Linux 权限管理,控制对文件的访问(ACL)

Linux : 权限管理,控制对文件的访问(ACL)

一、基础文件属性
drwxr-xr-x.  3  root   root   16 May 28 09:28   home
  • 文件类型:首位字符(d=目录,-=文件,l=链接,c=字符,b=块设备)
  • 权限组
    • rwx:所有者权限(读/写/执行)
    • r-x:所属组权限
    • r-x:其他用户权限
  • 元数据
    • 3:引用计数(如果目标是目录,代表子目录个数;如果目标是文件,则是硬链接个数-1)
    • root:所有者
    • root:所属组
    • 16:文件大小(字节)
    • May 28 09:28:最后修改时间

二、权限表示法
类型读®写(w)执行(x)
字符rwx
数字421

三、权限管理
  1. 数字模式
    chmod(change mode)
    -作用:修改文件或目录的访问权限
    -权限类型:包括读(r)、写(w)、执行(x)三种基本权限,分别对应数字 4、2、1
    -适用对象:文件所有者(user)、所属组(group)、其他用户(others)
    -示例:chmod 755 file.txt 表示所有者拥有读 / 写 / 执行权限,所属组和其–他用户拥有读 / 执行权限
    chown(change owner)
    -作用:修改文件或目录的所有者(可以同时修改所属组)
    -只有超级用户(root)可以修改文件的所有者
    -示例:chown user1 file.txt 将文件所有者改为 user1;chown user1:group1 file.txt 同时将所有者改为 user1,所属组改为 group1
    chgrp(change group)
    -作用:专门修改文件或目录的所属组
    -用户必须是目标组的成员才能修改文件的所属组(除非是 root 用户)
    -示例:chgrp group1 file.txt 将文件的所属组改为 group1

    chmod 777 file # 所有用户拥有rwx权限
    chmod 644 file1 # 所有者rw,其他用户只读
    
  2. 符号模式

    使用字母来改变文件的权限
    -----参数设置
    a 所有用户
    u 创建者
    g 同组用户
    o 除去创建者和同组用户之外的用户
    + 增加权限
    - 清除权限
    = 设置唯一权限
    -----常用设置
    g+w – 增加组用户的写权限
    o-rwx – 清除其他用户的全部访问权限
    u+x – 允许文件属主执行文件
    a+rw – 允许所有用户读和写文件
    ug+r – 允许文件属主和属组用户读文件
    g=rx – 设置属组用户只能读和执行文件

    chmod u+x file    # 给所有者增加执行权限
    chmod g-w,o-r file.txt # 移除组写权限和其他读权限
    chmod a=rw file  # 所有用户设为读写
    chmod -R g+w /data/    # 递归设置目录内所有文件
    

四、所有权管理
chown user:group file.txt   # 同时修改所有者和所属组
chown -R admin /project/    # 递归修改目录所有者
chgrp devteam /src/         # 修改目录所属组

五、特殊权限
权限符号数字作用场景示例
SUIDu+s4xxx二进制文件chmod 4755 /usr/bin/mkdir
SGIDg+s2xxx目录/二进制文件chmod 2770 /shared/
Stickyo+t1xxx目录chmod 1777 /tmp/
  • SUID:以文件所有者身份执行(如passwd命令)
  • SGID:目录中新文件继承父目录组权限
  • Sticky:仅允许所有者删除自己的文件(如/tmp

六、ACL高级权限控制
  1. 设置ACL

    # 用户权限
    setfacl -m u:misa:rw file          #只允许用户misa对文件有读写权限
    setfacl -m u:misa:rwx -R /dir/      # 递归设置
    setfacl -m d:u:misa:rwx /dir/       # 设置默认ACL(新文件继承)
    
    # 组权限
    setfacl -m g:devs:r-- project.doc
    
  2. 查看ACL

    getfacl file.txt
    # 输出示例:
    # file: file.txt
    # owner: root
    # group: misa
    user::rw-
    user:misa:rwx      # 用户misa有rwx权限
    group::r--
    group:note:r--     # 组note有读权限
    mask::rwx
    other::r--
    
  3. 删除ACL

    setfacl -x u:lisi file.txt  # 删除单条ACL
    setfacl -b file.txt         # 删除文件ACL权限
    setfacl -k /dir/            # 删除目录的default权限(删除继承)
    

七、默认权限规则
用户类型目录权限文件权限Umask值
root755 (rwxr-xr-x)644 (rw-r–r–)022
普通用户775 (rwxrwxr-x)664 (rw-rw-r–)002
  • Umask计算默认权限 - umask = 实际权限

  • 修改Umask

    umask 022  # 设置当前会话umask
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值