Linux 用户与组管理详解(system-config-users && 命令行)

简介: Linux 用户与组管理详解(system-config-users && 命令行)

用户与组管理

  1. 什么是用户,用户是人吗?
  2. 用户是干啥的?
  • 用户账号

    • 超级管理员: root
    • 普通用户: ruochen
    • 系统/程序用户: 系统中为某个程序而产生的用户,这类用户一般不允许登录操作系统
  • 组账号

    • 定义: 用户的集合
    • 基本组: 与用户同名的一个组
    • 附加组: 将其他用户增加到某个组中,那么这个组称为其他用户的附加组
  • 用户作用

    • Linux 基于用户身份对资源进行访问控制
  • UID 和 GID 号

    • uid(user identity) : 用户标识号
    • gid(group identity): 组标识号
    • root用户uid号: 0
    • 普通用户uid号:1000-60000(rhel7) 500+(rhel6)
    • 系统用户uid号: 1-999(rhel7) 1-499(rhel6)

用户相关文件

  • /etc/passwd 保存用户的账号信息

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    ruochen:x:1000:1000:ruochen:/home/ruochen:/bin/bash
    
    • 字段1: 用户账号名称
    • 字段2: 'x' 代表密码占位符 /etc/shadow
    • 字段3: 用户账号的uid号
    • 字段4: 用户基本组账号的gid号
    • 字段5: 用户的全名
    • 字段6: 宿主目录(用户的家目录)
    • 字段7: 用户登录shell信息

      • /bin/bash(默认登录shell)
      • /sbin/nologin(不允许用户登录系统)
  • /etc/shadow 保存用户的密码信息

    root: 用户账号名称
    $6$3rb.lU2l/JOMd/T5$dwR0X/HIgpbHZtIqtWQbTYyB268B80nJAnXgQ8foZsOm8eRx7wynqTdZG485k8jKu5fnbEpHJOCChpWGndXHL1: 用户密码信息,采用哈希算法加密
    18050: 上次修改密码的时间(1970.1.1)
    0: 密码的最短有效天数
    99999: 密码的最长有效天数
    7: 密码过期警告时间
    :  密码过期后是否还允许登录 0 不允许 10 允许十天 -1 长期
    :  密码过期时间
    :  保留字段(未使用)
    

组账号相关文件

  • /etc/group 保存组账号基本信息
  • /etc/gshadow 保存组账号密码信息

用户和组管理软件:

  • yum install system-config-users -y
  • [root@localhost ~]# system-config-users
  • 查看用户信息

    • [root@localhost ~]# id ruochen # id username

基于命令行的用户和组管理

创建用户


  • useradd [选项] username

    • -u: 为账号指定 uid
    • -g: 指定用户 gid
    • -s: 为账号指定默认的登录shell
    • -G: 将用户添加到指定的附属组里面
    • -c: 为用户添加文本描述
    • -d: 为主目录指定不同于登录名的名称
    • -m: 创建用户的家目录(默认创建)
    • -M: 不创建用户的家目录
    • -p passwd: 为用户指定一个默认密码
    • -r: 创建一个系统账号
    • -e: 指定用户账号的逾期时间 YYYY-MM-DD
        [root@localhost ~]# useradd susa
        [root@localhost ~]# useradd -u 3000 -s /sbin/nologin user 



查看用户信息


  • id username
    [root@localhost ~]# id user
    uid=3000(user) gid=3000(user) groups=3000(user)

删除用户


  • userdel -r username
    [root@localhost ~]# userdel -r susa
    [root@localhost ~]# id susa
    id: susa: no such user
    [root@localhost ~]# userdel -r user
    [root@localhost ~]# id user
    id: user: no such user
    [root@localhost ~]# 

修改用户信息


  • usermod [选项] username

    • -u: 重新指定用户的 uid 号
    • -s: 重新指定用户的登录shell
    • -G: 将用户添加到附加组内
    • -L: 用于锁定账号,使用户无法登录
    • -U: 用于解除账号锁定,使用户能够登录
        
        [root@localhost ~]# usermod -u 2000 -s /sbin/nologin harry 
        [root@localhost ~]# usermod -u 2000 -s /bin/bash  harry 
        [root@localhost ~]# id harry
        uid=2000(harry) gid=1001(harry) groups=1001(harry)

为用户创建密码


  • passwd username
  • echo 'passwd' | passwd --stdin username
    [root@localhost ~]# passwd harry
    Changing password for user harry.
    New password: 
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@localhost ~]# su - harry
    [harry@localhost ~]$ 

    [root@localhost ~]# usermod -L harry
    [root@localhost ~]# su - harry
    Last login: Sat May 16 22:17:41 EDT 2020 on pts/1
    [harry@localhost ~]$ 
此处已经锁定用户了,为何还能登录?
[root@localhost ~]# usermod -U harry
[root@localhost ~]# su - harry
Last login: Sat May 16 22:18:29 EDT 2020 on pts/1
[harry@localhost ~]$ 

更改用户密码信息

  • chage -m 0 -M 90 -W 7 -I -1 username
  • -d 0: 强制用户下此登录修改密码
  • -E YYYY-MM-DD: 指定密码的过期时间
  • -l username: 列出用户当前密码设置

在这里插入图片描述

创建组

  • groupadd [选项] groupname
  • -g: 指定组的 gid 号

删除组

  • groupdel groupname
    [root@localhost ~]# groupdel manager

创建下列用户、组和组的成员关系:

  • 一个名为 manager 的组
  • 一个名为harry 的用户,其属于 manager 组,这个组是该用户的从属组
  • 一个名为natasha 的用户,其属于 manager 组,这个组是该用户的从属组
  • 一个名为strlt 的用户,其在系统中没有可交互的shell,并且该用户不是 manager 组的成员
  • 用户natasha、harry和strlt 的密码都要设置为 default
[root@localhost ~]# groupadd manager
[root@localhost ~]# useradd -G manager harry
[root@localhost ~]# useradd natasha
[root@localhost ~]# usermod -G manager natasha
[root@localhost ~]# useradd -s /sbin/nologin strlt
[root@localhost ~]# echo 'default' | passwd --stdin harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo 'default' | passwd --stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo 'default' | passwd --stdin strlt
Changing password for user strlt.
passwd: all authentication tokens updated successfully.


查看当前登录到系统的用户

  • users, w, who
    [root@localhost ~]# w

23:16:53 up | 2:23, | 3 users, | load average: 0.19, 0.17, 0.14

  • | - | - | - | - |

登录时间 | 运行时间 | 用户总数 |负载程度(1/5/15)

USER | TTY | LOGIN@ | IDLE | JCPU | PCPU | WHAT

  • | - | - | - | - | - | - |

登录用户 | 登录所用终端 | 登录时间(LOGIN@ == LOGIN AT)| 用户空闲时间 | 消耗CPU时间 | 任务执行后消耗时间 | 任务是谁

root     :0        20:55   ?xdm?   7:03   0.16s gdm-session-worker [pam/gdm-pas
root     pts/0     21:09    1:18m  0.32s  0.32s -bash
root     pts/1     21:33    5.00s  0.22s  0.00s w


  • whoami

    • 显示当前用户下的用户名
  • who am i

    • 显示登录时用的用户名
  • who

    • 显示当前真正登录系统的用户(不会显示su切换的用户)
    
        [root@localhost ~]# who
        root     :0           2020-05-16 20:55 (:0)
        root     pts/0        2020-05-16 21:09 (192.168.37.1)
        root     pts/1        2020-05-16 21:33 (:0)
        [root@localhost ~]# whoami
        root
        [root@localhost ~]# who am i
        root     pts/0        2020-05-16 21:09 (192.168.37.1)
        [root@localhost ~]# su - ruochen
        [ruochen@localhost ~]$ who am i
        root     pts/0        2020-05-16 21:09 (192.168.37.1)
        [ruochen@localhost ~]$ whoami
        ruochen


目录
相关文章
|
3月前
|
域名解析 网络协议 安全
在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
|
9天前
|
Linux 数据安全/隐私保护
适用于 Linux 的最佳命令行下载加速器
适用于 Linux 的最佳命令行下载加速器
25 3
|
23天前
|
监控 数据可视化 Ubuntu
|
4月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
3月前
|
安全 Linux 开发工具
探索Linux操作系统:从命令行到脚本编程
【8月更文挑战第31天】在这篇文章中,我们将一起潜入Linux操作系统的海洋,从最基础的命令行操作开始,逐步深入到编写实用的脚本。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和实用技能。我们将通过实际代码示例,展示如何在日常工作中利用Linux的强大功能来简化任务和提高效率。准备好了吗?让我们一起开启这段旅程,探索Linux的奥秘吧!
|
3月前
|
Linux
如何让linux显示器命令行界面不显示
若需在命令行界面快速关闭屏幕,可选方法包括:使用`setterm --blank force`立即关闭屏幕;利用`sudo vbetool dpms off`将显示器置于低功耗模式;在X server环境下执行`xset dpms force off`关闭屏幕;或是针对笔记本通过`echo 0 | sudo tee /sys/class/backlight/*/brightness`关闭背光。以上任一方法均可实现屏幕关闭,部分操作需要管理员权限,屏幕通常会在按键或移动鼠标后自动恢复。
135 9
|
3月前
|
网络协议 Linux 开发者
Linux|最佳命令行下载加速器
Linux|最佳命令行下载加速器
68 2
Linux|最佳命令行下载加速器
|
3月前
|
Linux Windows
【Linux】grub命令行引导进入windows系统
【8月更文挑战第20天】在Linux中通过GRUB命令行引导Windows的方法包括:1) 进入GRUB命令行模式,启动时按`c`键;2) 使用`ls`查找含Windows引导文件的分区,如`bootmgr`或`ntldr`;3) 设置根设备`root=(hd0,msdos3)`与链加载器`chainloader +1`;4) 输入`boot`命令启动Windows。请注意实际步骤可能因系统配置而异。
366 2
|
4月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
3月前
|
Linux
探索Linux操作系统:命令行与脚本编程基础
【8月更文挑战第31天】在这篇文章中,我们将一起踏上一段旅程,深入探索Linux操作系统的奥秘。通过学习命令行的使用和编写简单的脚本,你将能够更高效地与你的计算机进行交流。无论你是新手还是有经验的用户,本文都将为你打开一扇通往Linux世界的大门。准备好了吗?让我们开始吧!