0
点赞
收藏
分享

微信扫一扫

学会Linux权限,管理账号更方便

zibianqu 2022-03-31 阅读 37

文章目录

一、Linux安全模型

  • Authentication:认证,验证用户身份
  • Authorization:授权,不同的用户设置不同权限
  • Accouting|Audition:审计
  • 1、用户账号和组账号概述

    (1) 用户帐号类型

  • Linux中每个用户是通过 User Id (UID)来唯一标识的 新建用户 1-60000 自动分配 0-65535 端口号
  • root用户账号的UID固定值0
  • 程序用户账号的UID默认为Centos5,6: 1~499,Centos7: 1~ 999
  • 普通用户的UID默认为Centos5, 6: 500~ 65535,Centos7: 1000~ 65535
  • ① 超级用户

  • 超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高 无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统 管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普通用户账号。
  • ② 普通用户 受到系统某一类限制

  • 普通用户:账号需要由 root 用户或其他管理员用户创建,拥有的权限受 到一定限制,处理问题受到限制,一般只在用户自己的宿主目录中拥有完整权限。
  • [lisi@host zhangsan]$ ifconfig ens37 192.168.58.100
    SIOCSIFADDR: 不允许的操作
    SIOCSIFFLAGS: 不允许的操作
    [lisi@host root]$ su root
    密码:
    [root@host ~]#
    

    ③ 程序用户

  • 程序用户:在安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用 户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等
  • (2)组帐号

  • 如何理解组?组相当于 职位 运维工程师 都具有大概相同的权限 看到组最常见的组词是不是组织?组织:按照一定的宗旨和系统建立起来的集体。那linux和windows中的组就是将多个用户集合起来,统一分配某种相同的权限(开通或关闭)。
  • ① 基本组(私有组)

  • 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。
  • 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定
  • 基本组:有且唯一
    
    附加组:可有可无,可以有多个
    
    默认新建用户时自动添加同名的组
    

    ② 附加组(公共组)

  • 附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定
  • [root@host ~]# id lyn
    uid=1004(tang) gid=1004(tang)=1004(tang),1005(public)
                   //1004为基本组或私有             //1005为附加组或公共组
                   
    [root@localhost ~]# cat /etc/passwd|tail -1
    lyn:x:1004:1004:Tang:/home/tang:/bin/bash                             
    1 tang:用户名
    2 x:密码占位符
    3 1004:uid
    4 1004:gid
    5 Lyn:描述信息你soft 备注
    6/home/tang:家目录    /root
    7/bin/bash:shell环境
    
    

    (3)ID

    ① UUID

  • UID(User IDentity,用户标识号):Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。root 用户账号的 UID 号为固定值 0,而程序用户账号的 UID号默认为1~499,500~60000 的 UID 号默认分配给普通用户使用。
  • centos7登录用户是从1000起到60000
    
    centos6 50060000
    
    1-999 预留给系统,叫系统用户
    

    ② GID

  • GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用
  • ③ 用户和组的关系

    用户 是员工 组 是职位

    员工 可以兼职多个岗位

    总有一个最重要的身份 主要组合附加组

    主要组 必须要一个组 有且唯一

    附加组 可有可无 有可以有多个

    默认行为当你创建一个新用户时会自动创建一个和之同名的主组

    • 用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
    • 用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组

    (4)用户账号管理

    ① 文件位置

    /etc/passwd 存放保存用户名称、宿主目录、登录 Shell 等基本信息
    [root@localhost ~]# cat /etc/passwd|tail -1
    tang:x:1000:1000:tang:/home/tang:/bin/bash
    

    1 tang:用户名
    2 x:密码占位符
    3 1004:uid
    4 1004:gid
    5 Tang:描述信息你soft 备注
    6/home/tang:家目录 /root
    7/bin/bash:shell环境

    /etc/shadow 存放保存密码
    root:$6$c1t8iCLiAQMNPiZQ$W95k8J0EpVwMCWuke.YDiRU5Dg0HUvpbYm3OUYnO3hwQF65JLWlabmzwCHY07Z7OoId2989l4Rxxq3AfyZrDA.::0:99999:7:::
    [root@localhost ~]# 
    
  • 字段1:用户帐号的名称;
  • 字段2:使用哈希值算法SHA512加密的密码字串信息,当为“*” 或“! !”时表示此用户不能登录到系统。,若该字段内容为空,则该用户无须密码即可登录系统;
  • 字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数;
  • 字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制;
  • 字段5:密码的最长有效天数,自 本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999, 表示不进行限制;
  • 字段6:提前多少天警告用户密码将过期,默认值为7;
  • 字段7:在密码过期之后多少天禁用此用户;
  • 字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用;
  • 字段9:**保留字段(未使用),**没有特定用用途。
  • ② 添加用户

    useradd 【选项】 用户名
    

    添加用户:查看是否在 passwd和shadow文件中生成信息

  • 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
  • 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿 主目录,并在该目录中建立用户的各种初始配置文件。
  • 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账 号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
  • 选项作用
    -u指定用户的 UID 号,要求该 UID 号码未被其他用户使用
    -d指定用户的宿主目录位置(当与-M 一起使用时,不生效)
    -e指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
    -g指定用户的基本组名(或使用 GID 号)
    -G指定用户的附加组名(或使用 GID 号)
    -M不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
    -s指定用户的登录 Shell /sbin/nologin

    ③ 密码管理

    passwd [选项]... 用户名
    
    [root@localhost ~]# passwd tang
    更改用户 tang 的密码 
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    
    #### 用户tang的密码已更改
    
    选项作用
    -d清空指定用户的密码,仅使用用户名即可登录系统
    -l锁定用户账户
    -s查看用户账户的状态(是否被锁定)
    -u解锁用户账户

    ④ 修改用户账号的属性

    usermod命令
    
    usermod [选项]... 用户名
    
    选项作用
    -l更改用户账号的登录名称(Login Name)
    -L锁定用户账户
    -u修改用户的 UID 号
    -U解锁锁用户账户
    -d修改用户的宿主目录位置
    -e修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
    -g修改用户的基本组名(或使用 GID 号)
    -G修改用户的附加组名(或使用 GID 号)
    -s指定用户的登录 Shell

    示例:

    [root@localhost ~]# usermod -L tang       //锁定用户
    [root@localhost ~]# passwd -S tang        //查看状态
    tang LK 2022-03-20 0 99999 7 -1 (密码已被锁定。)
    [root@localhost ~]# usermod -U tang   //解锁   
    [root@localhost ~]# passwd -S tang //查看状态
    tang PS 2022-03-20 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
    
    [root@localhost ~]# usermod -l tang1 tang //修改用户名
    [root@localhost ~]# id tang              //验证查看
    id: tang: no such user
    [root@localhost ~]# id tang1
    uid=1002(tang1) gid=10(wheel)=10(wheel),0(root)
    

    ⑤ 删除用户

    userdel [选项] 用户
    
  • -r 将宿主目录一起删除
  • [root@localhost ~]# userdel -r tang1    //连宿主目录一起删除
    [root@localhost ~]# id tang1            //验证
    id: tang1: no such user
    [root@localhost ~]# cd /home/
    [root@localhost home]# ls
    tang  zhangsan
    

    ⑥ 用户账号的初始配置文件

    用户宿主目录下的初始配置文件只对当前用户有效
    ~/ .bash_profile
    #此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件
    
    ~/.bashrc
    #此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)
    
    ~/.bash_logout
    #此文件中的命令将在该用户每次退出时bash shell时使用
    /etc/bashrc
    

    (5)组管理

    ① 组账号文件

    与用户帐号文件相类似
    
    /etc/group:保存组帐号基本信息
    
    /etc/gshadow:保存组帐号的密码信息基本不使用
    

    ② 添加组

    groupadd命令
    
    groupadd [-g GID] 组账号名
    
    [root@localhost home]# groupadd xian       ###添加组账号
    [root@localhost home]# tail -1 /etc/group
    xian:x:1001: 
    [root@localhost home]# groupadd -g 88 peng   ### -g 指定组id
    [root@localhost home]# tail -1 /etc/group
    peng:x:88:
    [root@localhost home]# 
    

    ③ 组内管理

    gpasswd 命令——添加、设置、删除组成员
    
    选项作用
    -a向组内添加一个用户
    -d从组内删除一个用户成员
    -M定义组成员列表,以逗号分隔
  • -a示例:
  • 在这里插入图片描述

  • -M示例:
  • 在这里插入图片描述

    ④ 删除组账号

    groupdel [组帐号名]
    

    ⑤ 查询

    finger命令查询用户帐号的详细信息(finger [用户名]
    

    在这里插入图片描述

    w 查询已登录到主机的用户信息
    
    [root@localhost ~]# w [选项] [用户名]
    -h	不显示输出信息的标题
    -l	用长格式输出
    -s	用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
    -V	显示版本信息
    
    [root@localhost ~]# w
     06:15:55 up  3:55,  2 users,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     :0       :0               183月22 ?xdm?  59.06s  0.12s /usr/libexec/gnome-session-binary --session gnome-classic
    root     pts/0    192.168.175.1    02:28    3.00s  0.13s  0.02s w
    [root@localhost ~]# 
    
    标题含义
    USER登录到系统的用户
    TTY登录终端
    FROM表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名
    LOGIN@用户登陆的日期和时间
    IDLE表示某个程序上次从终端开始执行到现在所持续的时间
    JCPU和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间
    PCPU当前进程所占用的 CPU 运算时间
    WHAT当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令

    who 相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令

    [root@localhost ~]# who [选项] [file]
    

    who 命令默认是通过 /var/run/utmp 文件来获取登陆用户信息,但如果通过 file 指定另一个文件,则 who 命令将不再默认读取 /var/run/utmp 文件,而是读取该指定文件来获取信息

    标题含义
    -a列出所有信息,相当于所有选项
    -b列出系统最近启动的时间日期
    -l列出所有可登陆的终端信息
    -m仅列出关于当前终端的信息,who -m 命令等同于 who am i
    -q列出在本地系统上的用户和用户数的清单
    -r显示当前系统的运行级别
    -s仅显示名称、线路和时间字段信息,这是 who 命令的默认选项
    -u显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识
    -T或-w显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障

    二、文件/目录的权限和归属

    程序访问文件时的权限,取决于此程序的发起者

  • 进程的发起者,同文件的属主:则应用文件属主权限
  • 进程的发起者,属于文件属组;则应用文件属组权限
  • 应用文件“其它”权限
  • 访问人群分为了三类

    1. 所属主(u)
    2. 所属组(g)
    3. 其他人 (o)

    权限分为三种

    1. 读(r,4)
    2. 写(w,2)
    3. 执行(x,1程序,脚本)

    对文件的权限

    1. r 可使用文件查看类工具,比如:cat,可以获取其内容
    2. w 可修改其内容
    3. x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)

    对目录的权限

    1. r 可以使用ls查看此目录中文件列表
    2. w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
    3. x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限

    1、设置文件/目录权限 — chmod

    权限项执行执行执行
    字符表示rwxrwxrwx
    数字表示421421421
    权限分配文件所有者文件所属组其他用户
    八进制数表示777
  • 在表示属主、属组用户或者其他用户对该文件的访问权限时,主要使用了三种不同的权限字符,权限字符也可以分别表示为八进制数字4、2、1,表示一个权限组合时需要将数字进行累加。
  • 各自含义如下:
    1. 读取 r :允许查看文件的内容、显示目录列表
    2. 写入 w :允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
    3. 可执行 x :允许运行程序、切换目录。
  • 字符组合“[ugoa···][+ - =][rwx]”或者数字组合“nnn”的形式表示要设置的权限模式,其中“nnn”为需要设置的具体权限值,如“755”、“644”等,而“[guoa···][+ - =][rwx]”的形式中,三个组成部分的含义及用法如下所述:
  • “ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件组内的用户,“o”代表其他任何用户长度有用户(ugo的总和);
  • “+ - =”表示设置权限的操作动作。“+”号代表增加权限,“-”号代表减少相应权限,“=”号代表仅设置对应的权限;
  • “rwx”是权限的字符组合形式,也可以拆分使用,如“r”、“rx”等。
  • 一般谁新建的文件谁就是所属主
    
    修改所属主
    
    chown 用户:组名 文件名
    #修改所属主,和所属组
    -R 递归修改
    
    [root@localhost opt]# chown -R tang:tang /opt/aa/
    ##递归修改
    [root@localhost opt]# ll
    总用量 0
    drwxr-xr-x. 2 tang  tang  6 331  19:17 aa
    

    2、2设置文件/目录归属 — chown/chgrp

    格式:
    chown/chgrp 属主 文件或目录
    chown/chgrp :属组 文件或目录
    chown/chgrp 属主:属组 文件或目录
    
  • 常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件)
  • 3、umask应用

    格式:
    umask查看:	umask
    umask设置:	umask 000
    

举报

相关推荐

0 条评论