linux权限管理

文件基本权限

1.查看 ls -l
-rw-r--r-- 
- 常见文件类型(-文件 d目录 l软链接文件)

rw- u所有者  r--g所属组 r--o其他人
r 读   w 写   x 执行

2.修改 chmod

chmod [选项] 模式 文件名
  选项:-R 递归
  模式
    [ugoa][+-=][rwx]
    [mode=421]
例:chmod u+x test  所有者加上执行权限
    chmod g-w,o-w test 所属组和其他人去除写权限
    chmod chmod u=rwx test 所有者可读可写可执行
    chmod chmod u=rw test 所有人可读可写

权限数字表示
    r = 4 w = 2 x = 1
    rwxr-xr-x
    7 5 5
例:chmod 755 test    
常用权限:777 最高权限
          644 文件读写权限
          755 文件可执行权限

3.权限作用
    对文件作用
    r 读取文件内容 (cat more head tail)
    w 编辑 新增文件内容(但是不包含删除当前文件权限,需要对上级目录拥有w权限才可以删除下级文件)
    x 运行文件

    对目录作用
    r 可以查询目录下文件名 (ls)
    w 修改目录结构,如:新增和目录,删除此目录下文件和目录,重命名,复制,剪切
    x 可以进入目录 (cd)
    /*
      对文件来讲:最高权限是x权限
      对目录来讲:最高权限是w权限
    */

4.权限其他命令
    chown 用户名 文件名 改变文件或目录所有者
    例:chown user1 test
    例:chown user1:user1 test
    chgrp 组名 文件名 改变文件或目录所属组
    chgrp user1 test

5.文件默认权限
    umask 查看默认权限
    0022  
    第一位 文件特殊权限
    022 文件默认权限

    文件默认不能建立为执行文件,必须手动赋予权限
    所有文件默认权限最大为666
    默认权限需要换成字母再相减(不是数字直接相减)
    建立文件之后的默认权限为666-umask值

    目录默认最大权限为777
    默认权限需要换成字母再相减(不是数字直接相减)
    建立目录之后的默认权限为777-umask值

    临时修改umask 0002
    永久修改 vi/etc/profile

特殊权限

ACL权限(解决用户身份不够用的情况)
    dumpe2fs -h /dev/sda* 
    查询指定分区详细文件系统信息的命令

    临时开启
    mount -o remount,acl /

    永久开启acl defaults后面增加
    vi /etc/fstab UUID=*******... / ext4 defaults,acl
    mount -o remount / 重新挂载

    1.查看ACL权限
        getfacl 文件名

    2.设置ACL权限命令
        setfacl 选项 文件名
          选项:
            -m 设定acl权限
            -x 删除指定的acl权限
            -b 删除所有acl权限
            -d 设定默认acl权限
            -k 删除默认acl权限
            -R 递归设定acl权限

        例:setfacl -m u:user1:rx test
            getfacl test

    3.最大有效权限 mask
        ACL权限需要与mask进行与运算  
        setfacl -m m:rx test  设置最大有效权限

    4.删除ACL权限
        setfacl -x u:用户名 文件名
        setfacl -x g:组名 文件名

        setfacl -b 文件名 
        删除文件的全部ACL权限

    5.递归设定ACL权限 -R
      (x权限对目录与文件的作用是不一样的,注意递归时权限溢出问题)
        setfacl -m u:user:rx -R test/

    6.默认ACL权限(父目录设定默认权限,以后新建的子目录自动继承)   
        setfacl -d u:user:rx test/


sudo权限
    普通用户临时获取root权限
    visudo 命令设置sudo权限
        root       ALL=(ALL)  ALL
        用户  被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
        %wheel     ALL=(ALL)  ALL
        组名  被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

        例:user1 ALL=/sbin/shutdown -r now 授权普通用户可以任何主机上重启服务器
            user1 ALL=/usr/bin/passwd       授权修改用户密码(有风险,可直接修改root密码)
            user1 ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root (需要过滤root)
            写的越详细越能限制权限大小

    sudo -l
    查看可执行命令
    例:sudo /sbin/shutdown -r now 普通用户使用,需要验证user1密码

文件特殊权限
    SetUid
        需要二进制可执行文件才设置SUID
        需要用户对该文件拥有x执行权限

        作用
        执行该文件时会临时将身份变成文件所有者
        例:ll /usr/bin/passwd  普通用户执行passwd命令 临时获得root权限 可修改密码
        (身份转换只在执行的过程中有效)

        设置
        chmod 4755 test
        chmod u+s test
            4代表SUID

        取消
        chmod 0755 test
        chmod u-s test

    SetGid
        除文件外还可对目录作用

        文件
        执行该文件时会临时将身份变成文件所属组
        例:ll /urs/bin/locate命令 普通用户执行时升级为slocate组身份,对/var/lib/mlocalte/mlocate.db用有读权限
        (身份转换只在执行的过程中有效)

        目录
        普通用户必须对目录拥有r和x权限,才能进入此目录
        任何用户在此目录下建立的文件所属组都属于设置用户的所属组

        设置
        chmod 2755 test
        chmod g+s test
            2代表SGID

    Sticky BIT 

        只对目录有作用
        普通用户对此目录拥有w和x权限

        作用
        限制777目录权限删除目录下不是自己的文件
        例:/tmp 目录 任何用户可查看,防止误删除,设置SBIT

        设置SBIT
        chmod 1777 test
        chmod o+t test
            1代表SBIT

        取消SBIT
        chmod 0777 test
        chmod o-t

不可改变位权限 chattr

    chattr [+-=] [选项] 文件或目录名
      + 增加权限
      - 删除权限
      = 等于某权限

      常用选项
        a 追加append
        i 插入insert

        i 文件 无法进行删除,增加,修改文件
          目录 不能新建删除文件,只能修改目录下文件的数据
        例:chattr +i test

        a 文件 只能增加数据,不能删除,不能修改(不能使用vi)
          目录 只能新建和修改文件,不能删除
        例:chattr +a test

    查看
    lsattr [选项] 文件名
        选项: 
           -a 显示所有文件和目录
           -d 若目标是目录,仅列出目录本身的属性,而不是子文件的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值