前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux入门篇 —— 用户与组管理详解(system-config-users && 命令行)

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

原创
作者头像
ruochen
修改2021-02-06 18:36:31
1.5K0
修改2021-02-06 18:36:31
举报

用户与组管理

什么是用户,用户是人吗?

用户是干啥的?

  • 用户账号 - 超级管理员: 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 保存用户的账号信息
代码语言:txt
复制
	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
代码语言:txt
复制
	ruochen:x:1000:1000:ruochen:/home/ruochen:/bin/bash
代码语言:txt
复制
- 字段1: 用户账号名称
- 字段2: 'x' 代表密码占位符 /etc/shadow
- 字段3: 用户账号的uid号
- 字段4: 用户基本组账号的gid号
- 字段5: 用户的全名
- 字段6: 宿主目录(用户的家目录)
- 字段7: 用户登录shell信息 
	- /bin/bash(默认登录shell) 
	- /sbin/nologin(不允许用户登录系统)
  • /etc/shadow 保存用户的密码信息
代码语言:txt
复制
	root: 用户账号名称
代码语言:txt
复制
	$6$3rb.lU2l/JOMd/T5$dwR0X/HIgpbHZtIqtWQbTYyB268B80nJAnXgQ8foZsOm8eRx7wynqTdZG485k8jKu5fnbEpHJOCChpWGndXHL1: 用户密码信息,采用哈希算法加密
代码语言:txt
复制
	18050: 上次修改密码的时间(1970.1.1)
代码语言:txt
复制
	0: 密码的最短有效天数
代码语言:txt
复制
	99999: 密码的最长有效天数
代码语言:txt
复制
	7: 密码过期警告时间
代码语言:txt
复制
	:  密码过期后是否还允许登录 0 不允许 10 允许十天 -1 长期
代码语言:txt
复制
	:  密码过期时间
代码语言:txt
复制
	:  保留字段(未使用)

组账号相关文件

  • /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
代码语言:txt
复制
		[root@localhost ~]# useradd susa
代码语言:txt
复制
		[root@localhost ~]# useradd -u 3000 -s /sbin/nologin user 

查看用户信息


  • id username
代码语言:txt
复制
	[root@localhost ~]# id user
代码语言:txt
复制
	uid=3000(user) gid=3000(user) groups=3000(user)

删除用户


  • userdel -r username
代码语言:txt
复制
	[root@localhost ~]# userdel -r susa
代码语言:txt
复制
	[root@localhost ~]# id susa
代码语言:txt
复制
	id: susa: no such user
代码语言:txt
复制
	[root@localhost ~]# userdel -r user
代码语言:txt
复制
	[root@localhost ~]# id user
代码语言:txt
复制
	id: user: no such user
代码语言:txt
复制
	[root@localhost ~]# 

修改用户信息


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

为用户创建密码


  • passwd username
  • echo 'passwd' | passwd --stdin username
代码语言:txt
复制
	[root@localhost ~]# passwd harry
代码语言:txt
复制
	Changing password for user harry.
代码语言:txt
复制
	New password: 
代码语言:txt
复制
	Retype new password: 
代码语言:txt
复制
	passwd: all authentication tokens updated successfully.
代码语言:txt
复制
	[root@localhost ~]# su - harry
代码语言:txt
复制
	[harry@localhost ~]$ 
代码语言:txt
复制
	[root@localhost ~]# usermod -L harry
代码语言:txt
复制
	[root@localhost ~]# su - harry
代码语言:txt
复制
	Last login: Sat May 16 22:17:41 EDT 2020 on pts/1
代码语言:txt
复制
	[harry@localhost ~]$ 

此处已经锁定用户了,为何还能登录?

代码语言:txt
复制
[root@localhost ~]# usermod -U harry
代码语言:txt
复制
[root@localhost ~]# su - harry
代码语言:txt
复制
Last login: Sat May 16 22:18:29 EDT 2020 on pts/1
代码语言:txt
复制
[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
代码语言:txt
复制
	[root@localhost ~]# groupdel manager

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

一个名为 manager 的组

一个名为harry 的用户,其属于 manager 组,这个组是该用户的从属组

一个名为natasha 的用户,其属于 manager 组,这个组是该用户的从属组

一个名为strlt 的用户,其在系统中没有可交互的shell,并且该用户不是 manager 组的成员

用户natasha、harry和strlt 的密码都要设置为 default

代码语言:txt
复制
[root@localhost ~]# groupadd manager
代码语言:txt
复制
[root@localhost ~]# useradd -G manager harry
代码语言:txt
复制
[root@localhost ~]# useradd natasha
代码语言:txt
复制
[root@localhost ~]# usermod -G manager natasha
代码语言:txt
复制
[root@localhost ~]# useradd -s /sbin/nologin strlt
代码语言:txt
复制
[root@localhost ~]# echo 'default' | passwd --stdin harry
代码语言:txt
复制
Changing password for user harry.
代码语言:txt
复制
passwd: all authentication tokens updated successfully.
代码语言:txt
复制
[root@localhost ~]# echo 'default' | passwd --stdin natasha
代码语言:txt
复制
Changing password for user natasha.
代码语言:txt
复制
passwd: all authentication tokens updated successfully.
代码语言:txt
复制
[root@localhost ~]# echo 'default' | passwd --stdin strlt
代码语言:txt
复制
Changing password for user strlt.
代码语言:txt
复制
passwd: all authentication tokens updated successfully.

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

  • users, w, who
代码语言:txt
复制
	[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时间 | 任务执行后消耗时间 | 任务是谁
代码语言:txt
复制
root     :0        20:55   ?xdm?   7:03   0.16s gdm-session-worker [pam/gdm-pas
代码语言:txt
复制
root     pts/0     21:09    1:18m  0.32s  0.32s -bash
代码语言:txt
复制
root     pts/1     21:33    5.00s  0.22s  0.00s w
  • whoami - 显示当前用户下的用户名
  • who am i - 显示登录时用的用户名
  • who - 显示当前真正登录系统的用户(不会显示su切换的用户)
代码语言:txt
复制
		[root@localhost ~]# who
代码语言:txt
复制
		root     :0           2020-05-16 20:55 (:0)
代码语言:txt
复制
		root     pts/0        2020-05-16 21:09 (192.168.37.1)
代码语言:txt
复制
		root     pts/1        2020-05-16 21:33 (:0)
代码语言:txt
复制
		[root@localhost ~]# whoami
代码语言:txt
复制
		root
代码语言:txt
复制
		[root@localhost ~]# who am i
代码语言:txt
复制
		root     pts/0        2020-05-16 21:09 (192.168.37.1)
代码语言:txt
复制
		[root@localhost ~]# su - ruochen
代码语言:txt
复制
		[ruochen@localhost ~]$ who am i
代码语言:txt
复制
		root     pts/0        2020-05-16 21:09 (192.168.37.1)
代码语言:txt
复制
		[ruochen@localhost ~]$ whoami
代码语言:txt
复制
		ruochen

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用户与组管理
    • 用户相关文件
      • 组账号相关文件
        • 用户和组管理软件:
          • 基于命令行的用户和组管理
            • 创建用户
            • 查看用户信息
            • 删除用户
            • 修改用户信息
            • 为用户创建密码
            • 更改用户密码信息
            • 创建组
            • 查看当前登录到系统的用户
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档