写点什么

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

用户头像
若尘
关注
发布于: 2021 年 02 月 27 日
Linux入门篇 —— 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


发布于: 2021 年 02 月 27 日阅读数: 18
用户头像

若尘

关注

还未添加个人签名 2021.01.11 加入

还未添加个人简介

评论

发布
暂无评论
Linux入门篇 —— Linux 用户与组管理详解(system-config-users && 命令行)