zoukankan      html  css  js  c++  java
  • Linux用户身份与文件权限

    用户身份与文件权限

    • 用户

    1.管理员 root UID: 0
    2. 系统用户 5/6 UID: 1-499
    红帽7 UID 1-999
    /sbin/nologin
    3.普通用户 5/6 500-65535
    7 1000-

    id xps   # 查看用户信息
    useradd
    useradd -u 555 xps   # 新建用户并指定uid
    useradd -u ssbin/nologin xps   # 指定终端
    adduser
    
    groupadd hhh   # 新建用户组
    
    usermod -G hhh xps   # 基本组/扩展组
    usermod -u 666 xps   # 修改uid
    
    groupdel hhh    # 删除用户组
    passwd xps   # 重置密码
    
    
    userdel xps   # 删除用户(不删除home等)
    userdel -r xps   # 删除用户(信息全删除)
    deluser
    
    #修改name的话可以直接去 /etc/passwd修改
    
    
    • 文件权限
    文件类型
    ➢ -:普通文件。
    ➢ d:目录文件。
    ➢ l:链接文件。
    ➢ b:块设备文件。
    ➢ c:字符设备文件。
    ➢ p:管道文件。
    
    
    r读4
    w写2
    x执行1
    
    ===============
    chmod  # 权限   格式为“chown [参数] 所有者:所属组 文件或目录名称”     chown root:bin test
    chown   # 所有者,属性
    
    -Rf    # 强制的意思
    
    chmod -Rf 777 test/
    chmod -Rf g+s test/           # 并为该目录设置了 SGID 特殊权限位
    
    chmod -R o+t linux/          # 设置sbit权限 保护位
    
    • 文件的特殊权限
    1.**SUID**    # 让程序执行者,临时获取程序所有者的身份(仅对拥有执行权限的二进制程序有效)
    u+s   4
    
    2.**SGID**    # 让程序执行者,临时获取程序所有组的身份
                让目录内的新建文件,集成目录所有组的名称
     g+s  2         
              
    3.**SBIT**    #让目录内的文件,**只能自己删除自己**的
    RHEL 7 系统中的/tmp 作为一个共享文件的目录,默认已经设置了 SBIT 特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件;
    当目录被设置 SBIT 特殊权限位后,文件的其他人权限部分的 x 执行权限就会被替换成 t 或者 T,原本有 x 执行权限则会写成 t,原本没有 x 执行权限则会被写成 T
    o+t   1
    
    
    suid:  
    x 改变成 s 就意味着该文件被赋予了 SUID 权限。如果原本的权限是 rw-呢?如果原先权
    限位上没有 x 执行权限,那么被赋予特殊权限后将变成大写的 S
    s 证明原先有x
    S  证明原先没有x
    
    sgid:  
    s 证明原先有x
    S  证明原先没有x
    
    sbit:  
    对其他目录来设置 SBIT 特殊权限位,用 chmod 命令就可以了。对应的参数 o+t 代表设置 SBIT 粘滞位权限:
    t 证明原先有
    T  证明原先没有x
    
    例如: 
    转换7654    # 7是特殊权限位, 654是一一般权限位
        420 401 400
        rw- r-x r--
        7: = 4+2+1 三个都涉及了,所以要都加上    # S->之前没有x权限,s->之前有x权限,T->之前没有...
          rwSrwsr-T
    ======
    rwsr--rwT
    
    rwxr--rw-   746
    s=4,T=4
    5746
    
    ======
    r-Srws--T
    
    5470
    
    
    
    • 文件的隐藏属性
    1.chattr          设置文件的隐藏权限,格式为“chattr [参数] 文件”
                chattr +a /var/log/message
    2. lsattr          显示文件的隐藏权限,格式为“lsattr [参数] 文件”
                lsattr -d Desktop/   $ 查看目录的...
    

    表 5-6 chattr 命令中用于隐藏权限的参数及其作用

    参数 含义
    i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
    a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
    S 文件内容在变更后立即同步到硬盘(sync)
    s 彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域)
    A 不再修改这个文件或目录的最后访问时间(atime)
    b 不再修改文件或目录的存取时间
    D 检查压缩文件中的错误
    d 使用 dump 命令备份时忽略本文件/目录
    c 默认将文件或目录进行压缩
    u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
    t 让文件系统支持尾部合并(tail-merging)
    X 可以直接访问压缩文件中的内容
    • 文件访问控制列表 ACL
    对某个指定的用户进行单独的权限控制  
    如果针对某个目录设置了 ACL,则目录中的文件会继承其 ACL;若针对文件设置了 ACL,则文件不再继承其所在目录的 ACL
    
    
    1.setfacl 命令
    (针对目录文件需要使用-R 递归参数;
    针对普通文件则使用-m 参数;
    如果想要删除某个文件的 ACL,则可以使用-b 参数)  
     setfacl -Rm u:xps:rwx /root      # -m 修改
     setfacl -Rm g:xpsg:r-x /tmp
    看到文件的权限最后一个点(.)变成了加号(+) ,这就意味着该文件已经设置了 ACL 了。
    
    2.getfacl
    
    
    • su 与sudo
    su - xps
    su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)
    
    
    使用 sudo 命令把特定命令的执行权限赋予给指定用户(避免泄露 root 管理员密码)
    
    **sudo 服务中的可用参数以及作用**   
    -h 列出帮助信息
    -l 列出当前用户可执行的命
    -u 用户名或 UID 值 以指定的用户身份执行命
    -k 清空密码的有效时间,下
    -b 在后台执行指定的命令
    -p 更改询问密码的提示语
    
    
    **sudo 命令具有如下功能:**
    ➢ 限制用户执行指定的命令:
    ➢ 记录用户执行的每一条命令;
    ➢ 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
    ➢ 验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。
    
    
    使用 sudo 命令提供的 visudo 命令
    来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改 sudoers 配置文件,还
    可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。
    (只有root才能使用visudo编辑所服务的配置文件)
    
    
    在 sudo 命令的配置文件中,按照下
    面的格式将第 99 行(大约)填写上指定的信息:
    谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
    xps ALL=(ALL) ALL
    
    
    
    如果需要让某个用户只能使用 root 管理员的身份执行指定的命令,切记一定要给
    出该命令的绝对路径,否则系统会识别不出来。
    先使用 whereis 命令找出命令所对应
    的保存路径,然后把配置文件第 99 行的用户权限参数修改成对应的路径即可
    xps ALL=(ALL) /usr/bin/cat
    
    
    加 NOPASSWD 参数,使得用户执行 sudo 命令时不再需要密码验证:
     xps ALL=NOPASSWD: /usr/sbin/poweroff
    
    
    
  • 相关阅读:
    js中调用ocx控件
    web.xml配置文件中<async-supported>true</async-supported>报错的解决方案
    shiro整合spring配置
    shiro中的reaml理解及实现机制
    oracle数据库安装
    关于身份认证、角色认证和权限认证的shiro-web例子
    创建maven管理的web项目
    hadoop Hive 的建表 和导入导出及索引视图
    hadoop Mapreduce组件介绍
    hadoop hive组件介绍及常用cli命令
  • 原文地址:https://www.cnblogs.com/shuai06/p/12397462.html
Copyright © 2011-2022 走看看