热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux用户、用户组、用户密码管理

用户配置文件:etcpasswdcatetcpasswd查看linux用户配置文件:*用户配置文件的内容一共分为7段,通过:

  • 用户配置文件:/etc/passwd

cat /etc/passwd查看linux用户配置文件:在这里插入图片描述
*用户配置文件的内容一共分为7段,通过 :划分,
第一段代表用户名
第二段x代表密码,保存在/etc/shadow文件中
第三段代表uid(用户编号)
第四段代表gid(用户组编号)
第五段代表注释(通常为空或描述用户相关注释)
第六段代表用户家目录
第七段代表用户的shell(通常为/bin/bash,系统创建用户有/sbin/nologin等,nologin表示不能登录)


  • 密码配置文件:/etc/shadow
    在这里插入图片描述
    *密码配置文件与/etc/passwd用户配置文件对应,分为9段,通过 :划分,
    第一段代表用户名,
    第二段代表加密后的密码(两个用户密码相同,加密后的值也不同)
    第三段代表上次更改密码的日期(单位:天,从1970/01/01计算到上次修改密码那天过了多少天的天数)
    第四段代表两次修改密码中间所需的最小天数
    第五段代表密码保持有效的最大天数
    第六段代表密码失效前多少天开始提示用户
    第七段代表用户在没有登录的情况下账号保持有效的最大天数
    第八段代表用户账号的失效时间
    第九段暂无意义,保留域

  • 系统备份文件
    在这里插入图片描述
    *在/etc目录下出现的一些文件名后面加 - 符号的文件是系统自动备份文件,用于误删重要文件时恢复数据

  • 用户组管理
    1.增加用户组:groupadd groupname
    *创建好用户组之后查看用户组配置文件,显示已经创建成功,gid(用户组编号)为1004在这里插入图片描述
    2.创建用户组时指定gid(用户组编号),-g参数
    *指定gid时选择1000以上未被使用的数字,1000以下为系统保留gid在这里插入图片描述
    3.删除用户组:groupdel groupname
    *删除用户组时,如组内有用户则不能删除
    在这里插入图片描述

  • 用户管理
    1.创建用户: useradd username
    *新增用户时如不指定用户组,会创建一个与username相同的组
    在这里插入图片描述
    2.创建用户时指定用户组: -g 参数
    **如下图:创建用户usertest2时,指定用户组为grouptest,创建完成后查看用户配置文件gid为用户组grouptest的gid:1001 *
    在这里插入图片描述
    *补充:
    -u参数:指定用户uid(用户编号)
    -d参数:指定用户家目录
    -s参数:指定用户shell(/bin/bash、nologin等)
    -M参数:在创建用户时,不创建家目录
    创建用户命令还可以是:adduser username

    3.删除用户:userdel username
    *需要注意在使用该命令删除用户后,不会删除用户家目录,ls /home发现usertest2用户目录还在
    在这里插入图片描述
    4.删除用户的同时删除用户家目录:-r 参数
    在这里插入图片描述
    5.usermod命令:更改用户信息
    修改用户uid:usermod -u uid username
    修改用户gid:usermod -g gid username
    修改用户家目录:usermod -d 目录路径 username
    修改用户shell:usermod -s shell路径 username
    锁定用户:usermod -L username
    解锁用户:usermod -U username
    修改用户拓展组:usermod -G groupname username
    *查看用户拓展组信息:id username,linux中用户可以属于多个组,如下图第三列显示的就是用户拓展组
    在这里插入图片描述
    给linux01用户添加用户组linux02:
    在这里插入图片描述
    给linux01用户添加多个组(linux02、linux03):
    *需要给用户添加多个拓展组时,需要写上所有要添加的组用","分隔开,如果第一次添加linux02组,第二次再添加linux03组,那么linux03组会覆盖linux02组,linux01用户的拓展组就只有linux03
    在这里插入图片描述

  • 用户密码管理
    1.更改密码:
    root用户更改密码命令:passwd
    *提示密码难度不够时,再次输入即可更改成功
    在这里插入图片描述
    普通用户更改密码命令:passwd username
    *提示密码长度不够时,再次输入即可更改成功
    在这里插入图片描述
    密码更改成功后查看密码配置文件/etc/shadow中linux01的第二列已经是加密内容:
    *第二列显示"!!"代表用户未设置密码,不能登录
    在这里插入图片描述
    *当第二列显示 "*"号时代表密码被锁定,也是无法登陆的用户
    在这里插入图片描述
    2.锁定与解锁用户密码:
    锁定密码:passwd -l username
    *将刚才创建好密码的用户linux01锁定后查看密码配置文件/etc/shadow第二列密码加密内容前面显示"!!",代表用户密码已被锁定
    在这里插入图片描述
    解锁密码:passwd -u username
    *解锁用户linux01的密码后,查看密码配置文件显示正常
    在这里插入图片描述
    *锁定与解锁用户密码还可以使用上文所说的usermod命令,-L 参数:锁定密码,-U 参数:解锁密码
    3.stdin参数:
    *给用户设置密码时,使用stdin参数,可以直接修改无须二次验证,常用语编写shell脚本中
    在这里插入图片描述
    4.一次性修改密码:(在不使用stdin参数时,也可以无需二次验证修改密码)
    *使用echo -e一次性修改密码,echo命令加上-e参数时,\n可以解析为换行( \t → tab),组合管道符"|"使用可以直接修改密码,无需二次验证
    在这里插入图片描述

  • 密码生成工具:mkpasswd
    1.安装expect包:yum -y install expect
    在这里插入图片描述
    2.生成随机密码:
    *输入mkpasswd即可生成随机密码,-l 参数:指定生成密码的长度,-s 参数:指定生成的随机密码包含几个特殊字符在这里插入图片描述


推荐阅读
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 2019年独角兽企业招聘Python工程师标准课程概览
    本文详细介绍了2019年独角兽企业在招聘Python工程师时的标准课程内容,包括Shell脚本中的逻辑判断、文件属性判断、if语句的特殊用法及case语句的应用。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文详细介绍了在 Red Hat Linux 系统上安装 GCC 4.4.2 的步骤,包括必要的依赖库的安装及常见问题的解决方法。 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • 在Linux系统中,许多应用程序以源代码的形式提供,这给安装带来了挑战。本文旨在介绍一种简化源码软件安装流程的方法,帮助用户更加轻松地完成安装。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 1、什么是过滤器管道使用竖线(|)将两个命令隔开,竖线左边命令的输出就会作为竖线右边命令的输入。连续使用竖线表示第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入, ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • 环境变量是用于描述系统运行环境的一系列变量,如PATH指定了命令的搜索路径,SHELL指定了默认的Shell。本文介绍了如何加载和管理这些环境变量,以及普通变量与环境变量的区别。 ... [详细]
author-avatar
努力的蚂蚁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有