你一定要会的【用户和用户组管理】(下)

简介: 1 用户和用户组概述1.1 用户介绍


示例:

1)-u 指定用户的UID

[root@localhost ~]# useradd -u 2000 helen   //添加helen用户,并指定UID为2000
[root@localhost ~]# tail -1 /etc/passwd     //查看passwd中helen的信息
helen:x:2000:2000::/home/helen:/bin/bash
复制代码


2)-d 指定用户的宿主目录

[root@localhost ~]# useradd -d /home/test/ user04   //创建用户,并指定家目录
[root@localhost ~]# tail -1 /etc/passwd   
user04:x:2003:2003::/home/test/:/bin/bash
复制代码


3)-e 指定用户的账户失效时间

[root@localhost ~]# useradd -e 2022-6-30 user05  //创建用户并指定账户失效时间为2022年6月30日
[root@localhost ~]# tail -1 /etc/shadow   //查看shadow文件,19173表示距离1970年1月1日的19173天
user05:!!:19044:0:99999:7::19173:
复制代码


4)-g 指定用户基本组

[root@localhost ~]# useradd -g hr user06    //创建用户并指定用户基本组为hr组
[root@localhost ~]# id user06        //查看用户信息,基本组为hr组
uid=2005(user06) gid=1002(hr) 组=1002(hr)
复制代码


5)-G 指定用户附加组

[root@localhost ~]# useradd -G hr user07   //创建用户并指定用户附加组为hr组
[root@localhost ~]# id user07              //查看用户信息,附加组为hr组
uid=2006(user07) gid=2006(user07) 组=2006(user07),1002(hr)
复制代码


6)-M 不建立家目录

[root@localhost ~]# useradd -M user08     //创建用户且不建立家目录
[root@localhost ~]# ls /home              //查看/home下没有user08的目录
alice  jack    nancy    user05   user07     
Amy    helen   user01   user06   zhangsan
复制代码


7)-s 指定用户的登录shell(一般用于程序用户)

[root@localhost ~]# useradd -s /sbin/nologin apache   //创建用户并指定登录shell为/sbin/nologin,该用户无法登录系统
[root@localhost ~]# tail -1 /etc/passwd
apache:x:2008:2008::/home/apache:/sbin/nologin
复制代码


2.3 设置/更改用户口令 passwd

root用户可以指定用户名作为参数,对指定账号的密码进行管理。不指定用户名时,修改当前账号的密码。

普通用户只能执行单独的passwd命令修改自己的密码。

命令格式:

passwd [用户名]
复制代码


常用选项:

选项 作用
-d 清空指定用户的密码,仅使用用户名即可登录系统
-l 锁定用户密码,锁定的用户账号将无法再登录系统。(一定要事先设好密码)
-u 解锁用户密码
-S 查看用户账户的状态(是否被锁定)


示例:

1)设置或修改用户密码

[root@localhost ~]# passwd nancy   //设置或修改nancy用户的密码
更改用户 nancy 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# echo "linux666" | passwd --stdin nancy  //简便设置用户密码
更改用户 nancy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
复制代码


2)-d 清除用户密码,使用用户名可直接登录

[root@localhost ~]# passwd -d nancy   //清除nancy用户的密码
清除用户的密码 nancy。
passwd: 操作成功
复制代码


3)锁定和解锁用户

[root@localhost ~]# passwd -l nancy    //锁定用户密码,锁定后用户无法登陆
锁定用户 nancy 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -u nancy   //解锁用户,因nancy无密码,系统提示不安全,必须使用-f才能解锁
解锁用户 nancy 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@localhost ~]# passwd -S nancy      //查看nancy用户状态,仍为锁定状态
nancy LK 2022-02-21 0 99999 7 -1 (密码已被锁定。)
复制代码


2.4 修改用户账号的属性 usermod

命令格式:

usermod  [选项]... 用户名
复制代码


常用选项:

选项 作用
-l 更改用户账号的登录名称。格式:usermod -l 新名称 旧名称
-L 锁定用户账户
-U 解锁用户账户
以下选项与useradd命令中的含义相同
-u 修改用户的UID号
-d 修改用户的宿主目录位置
-e 修改用户的账户失效时间,可使用YYYY–MM-DD的日期格式
-g 修改用户的基本组名(或使用GID号)
-G 修改用户的附加组名(或使用GID号)
-s 指定用户的登录Shell


示例:

[root@localhost ~]# usermod -l sasha helen    //将helen的用户名改成sasha
[root@localhost ~]# usermod -L sasha          //锁定用户sasha
[root@localhost ~]# passwd -S sasha           //查看sasha状态,已被锁定
sasha LK 2022-02-21 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U sasha          //解锁用户sasha
[root@localhost ~]# passwd -S sasha           //查看sasha状态,正常状态
sasha PS 2022-02-21 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
复制代码


2.5 删除用户 userdel

命令格式:

userdel [-r] 用户名  //结合-r可以删除宿主目录
复制代码


示例:

[root@localhost ~]# userdel user05    //删除用户user05,不加-r会保留家目录
[root@localhost ~]# ls /home          //查看/home下user05的家目录仍存在
alice  jack    nancy    user05   user07   yuji
Amy    helen   user01   user06   zhangsan
[root@localhost ~]# userdel -r user06    //删除用户user06及其家目录
[root@localhost ~]# ls /home          //查看/home下user06的家目录不存在
alice   jack    nancy    user05   user07   
yuji    Amy     helen    user01   zhangsan
复制代码


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

文件来源:

新建用户账号时,从 /etc/skel 目录中复制而来, 比如默认bin/bash,默认家目录。

用户宿主目录下的初始配置文件只对当前用户有效。

主要的用户初始配置文件:

  • ~/.bash_profile : 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行 ”source /etc/profile“ 命令使profile文件被读取。
  • ~/.bashrc: 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本。
  • ~/.bash_logout: 每一个允许bash shell 的用户都会执行此文件。可通过执行bash命令打开一个新的bash,使bashrc文件被读取。

备注:

  • 修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;
  • 修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效。


3 组管理


3.1 组账号文件

(1)文件位置:

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

(2)/etc/group文件内容:

[root@localhost ~]# head -3 /etc/group   //查看group文件前三行
root:x:0:
bin:x:1:
daemon:x:2:
复制代码


group文件每行分成了4段,每个字段含义如下:

  • 字段1:组账号名称。
  • 字段2:密码占位符x;通常不需要设置组密码。由于安全原因,该密码被记录在/etc/gshadow中,因此显示为'x'。类似/etc/shadow文件。
  • 字段3:组编号GID。
  • 字段4:本组的成员用户列表 (一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"分隔 。
相关文章
|
11月前
|
监控 安全 网络安全
云计算与网络安全:技术挑战与解决方案
随着云计算技术的飞速发展,其在各行各业的应用越来越广泛。然而,随之而来的网络安全问题也日益凸显。本文将从云服务、网络安全和信息安全等技术领域出发,探讨云计算面临的安全挑战及相应的解决方案。通过实例分析和代码示例,旨在帮助读者更好地理解云计算与网络安全的关系,提高网络安全防护意识。
|
机器学习/深度学习 计算机视觉
10 协方差矩阵与主成成分分析
10 协方差矩阵与主成成分分析
357 0
|
存储
病案管理系统的定义、流程以及应用分析
病案管理是指对病历和相关信息进行系统化管理的过程。病案是医疗机构记录和保存的与患者有关的医疗文件,它包括病人的基本信息、诊疗过程、治疗结果等内容。病案管理通过建立制度化的工作流程和标准化的操作规范,将病人的病历信息进行收集、整理、存储和分析,以便为医务人员提供准确、完整的医疗信息,同时为机构管理者提供数据支持,帮助其进行绩效评估、医疗质量控制和资源分配。
416 0
|
NoSQL 算法 Java
【Redis基础指南】分析一下Redission实现分布式锁的点点滴滴(含加解锁源码)
【Redis基础指南】分析一下Redission实现分布式锁的点点滴滴(含加解锁源码)
668 0
【Redis基础指南】分析一下Redission实现分布式锁的点点滴滴(含加解锁源码)
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2三角热图按照指定的角度旋转
跟着Nature学作图:R语言ggplot2三角热图按照指定的角度旋转
|
Windows 数据安全/隐私保护 网络安全
Navicat11全系列激活(注册机)
Navicat11全系列激活(注册机)百度网盘下载地址。 链接:http://pan.baidu.com/s/1bpgOqE7 密码:i6cf 安装 Navicat 11 for Windows 系列原版程序。 Navicat | 下载 Navicat 14 天 Windows、Mac 和 Linux 的试用版 试用版哈,别忘记了。 以管理员的身份打开Navica
3168 0
|
安全 测试技术 Android开发
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
Python自动化,大概也许或者是今年最具热度的话题之一了。七月流火,招聘市场上对于Python自动化的追捧热度仍未消减,那么Python自动化到底能帮我们做些什么呢? 第一,Python自动化可以避免熟练工种的重复工作,对于功能相对完整和成熟的软件,每发布一个新的版本,无论是大版本还是小版本,其中大部分功能和界面都几乎和上一个版本相似或完全相同,但所谓向上兼容,你不能因为新功能的产生而不对老版本功能进行测试工作,而这些老功能又在上一个版本上线时测过,所以这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
|
存储 缓存 监控
基于HiKariCP组件,分析连接池原理
HiKariCP作为SpringBoot2框架的默认连接池,号称是跑的最快的连接池,数据库连接池与之前两篇提到的线程池和对象池,从设计的原理上都是基于池化思想,只是在实现方式上有各自的特点;
455 0
基于HiKariCP组件,分析连接池原理
|
算法 Java 中间件
阅读优秀项目源码很重要,分享一个读源码的方法,小白都能学会
作为一个程序员,经常需要读一些开源项目的源码。同时呢,读源码对我们也有很多好处: 1.提升自己 2.修复 Bug 3.增加新功能
阅读优秀项目源码很重要,分享一个读源码的方法,小白都能学会