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

    用户身份

    • 管理员UID为0:系统的管理员用户
    • 系统用户UID为1~999:服务程序会有独立的系统用户负责运行;防止被黑客入侵进行提权,并有效控制被破坏的范围
    • 普通用户UID从1000开始:是由管理员创建的普通用户的UID默认是从1000开始的(即使前面有空置的UID)

    UID(User IDentification):UID具有唯一性,可以通过UID进行区分用户的身份

    GID(Group IDentification):可以把多个用户加入到一个组,方便分配权限

    在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组被称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组。

    useradd

    useradd [选项] 用户名
    # 创建新的用户
    # 默认家目录保存路径:/home/用户名
    # 默认Shell解释器路径:/bin/bash
    # 默认会创建一个与该用户同名的基本用户组
    

    groupadd

    groupadd [选项] 组名
    # 创建用户组
    

    usermod

    usermod [选项] 用户名
    # 修改用户的属性
    # 用户信息配置文件:/etc/passwd
    

    passwd

    passwd [选项] [用户名]
    # 修改用户密码,国企时间,认证信息等
    

    userdel

    userdel [选项] 用户名
    # 用于删除用户
    # -f 强制删除用户
    # -r 同时删除用户及家目录
    

    文件权限与归属

    在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符加以区分

    常用的文件类型字符

    字符说明
    - 普通文件
    d 目录
    l 链接文件
    b 块设备文件
    c 字符设备文件
    p 管道文件

    文件权限的字符与数字表示

    权限分配文件所有者   文件所有组   其他用户   
    权限项 执行   执行   执行  
    字符表示 r w x   r w x   r w x  
    数字表示 4 2 1   4 2 1   4 2 1  

    文件权限的数字表示法基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示

    文件的特殊权限

    SUID(u+s)

    SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)

    对象所有者具有x权限,则会是 小写s,否则是 大写字母S;例如:rwx => rws | rw- => rwS

    SGID(g+s)

    • SGID让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
    • SGID在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
    • 与SUID不同点在于执行程序的用户获取的不再是文件所有者的权限,而是获取到文件所属组的权限

    对象所有组具有x权限,则会是 小写s,否则是 大写字母S;例如:rwx => rws | rw- => rwS

    SBIT(o+t)

    SBIT(Sticky Bit)特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件

    对象 other位的执行(x)权限,如果具备x权限,则会替换成 小写t,否则会替换成 大写T

    文件的隐藏属性

    Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉

    chattr

    chattr [参数] 文件
    # 设置文件的隐藏权限
    # “+参数” : 将隐藏权限添加到文件上
    # “-参数” : 将隐藏权限从文件上移除
    # “=参数” :使它们成为文件唯一的属性
    # symbolic mode is +-=[acdeijstuACDST]
    

    lsattr

    lsattr [参数] 文件
    # 显示文件的隐藏权限,使用ls命令看不到隐藏权限
    

    文件访问控制列表(FACL)

    一般权限、特殊权限、隐藏权限其实有一个共性,就是权限都是针对某一类用户设置;如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)。

    setfacl

    setfacl [参数] 文件名称
    # 管理文件的ACL规则;使用setfacl命令可以针对单一用户或用户组对单一文件或目录来进行读/写/执行权限的控制
    # -R :针对目录递归操作
    # -m :针对普通文件
    # -b :删除ACL
    

    设置ACL后,使用 ls -l 命令查看文件的权限会发现 权限位 后面的 点(.) 变成了 加(+)

    getfacl

    getfacl 文件
    # 显示文件上设置的ACL信息
    

    su命令与sudo服务

    su命令可以解决切换用户身份的需求

    su [选项] 用户名
    # 默认情况下不更改当前目录并仅设置环境变量HOME和SHELL(加上USER和LOGNAME(如果目标用户不是root用户)
    # - 或 --login选项将通过Shell进行登录,等同注销并重新登录
    

    sudo命令把特定命令的执行权限赋予给指定用户;等同于给普通用户提供额外的权限来完成原本root管理员才能完成的任务

    sudo [参数] 命令名称
    # sudo允许允许的用户以超级用户身份执行命令,或者安全策略指定的另一个用户。
    # visudo命令配置用户权限(只有root管理员)
    # sudo配置文件位于:/etc/sudoers
    # 配置的命令需是绝对路径
    
    复制请注明出处,在世界中挣扎的灰太狼
  • 相关阅读:
    CSP游戏 4
    CSP 交通规划
    CSP 地铁修建
    CSP 通信网络
    CSP URL映射
    CSP 权限查询
    CSP Markdown
    CSP JSON 查询
    SQL里的子查询
    SQL里的操作符
  • 原文地址:https://www.cnblogs.com/XingXiaoMeng/p/13020117.html
Copyright © 2011-2022 走看看