当前位置: 首页 > news >正文

用户管理——配置文件和命令

  1. 在 Linux 系统中各种会存多个用户。我们的使用者靠用户名来区分各自登陆的账号。
  2. 如果我们的用户想要使用系统资源,就必须在系统中拥有合法的账号。在系统多个文件中都保存了用户身份相关信息

一、用户相关配置文件

1./etc/passwd

在/etc/passwd 文件中用:当做分隔符,一共有 7 列。每列的内容分别是:

第一列:用户名

第二列:密码占位符(如果为空则不能进行远程连接登录)

第三列:用户ID(UID)(1-999是系统用户范围,1000-65535是普通用户范围)

第四列:初始组ID(GID)(初始组只能有一个)

第五列:用户描述信息(类似注释)

第六列:用户家目录

第七列:用户的shell类型(/bin/bash可以正常登录系统,/sbin/nologin不能登录系统,可以使用系统资源)

2./etc/shadow

第一列:用户名

第二列:经过加密的密码,$6$开头是sha-512加密(!!或*表示没密码,!表示锁定用户,使之不能登录系统)

第三列:密码最近更改时间(时间戳转日期:date -d "1970-01-01 时间戳 days")

第四列:密码不可被更改的天数(0表示随时可以被修改)

第五列:密码最长有效期

第六列:密码到期前的警告天数

第七列:密码过期后的宽限天数(-1代表密码永不失效)

第八列:账号失效日期(时间戳,超过后无法使用) 

第九列:保留

3./etc/group

第一列: 组名称(默认组成员)

第二列:组密码占位符

第三列:组ID号(GID)

第四列:组内成员列表(临时:root用户设置组密码,其他用户通过newgrp切换到组内;永久:root用户将其他用户添加到组内【gpasswd -a 用户 组名】,添加后会在/etc/group最后一列记录)

4./etc/gshadow

第一列:组名称

第二列:经过加密的组密码(空或!表示没有密码)

第三列:组管理员(多个管理员用,分隔)

第四列:组成员(多个成员用,分隔)

5./etc/login.defs

当用户创建时,同时在目录/var/spool/mail 中创建一个用户 mail 文件

 用户权限默认掩码值

新建用户默认家目录权限,如果 HOME_MODE 未设置则使用 UMASK 值权限创建用户家目录

  • 指定密码保持有效最大天数
  • 表示修改密码的间隔时间
  • 表示密码到期前多少天系统提示用户密码到期

  • 指定 UID 最小为 1000,也就是说创建新用户时用户的 UID 从 1000 开始。
  • 指定最大 UID 为 60000。
  • 系统用户最小 201
  • 系统用户最大 999
  • 最小 GID 为 1000。
  • 最大 GID 为 60000。
  • 系统组 ID 最小 201
  • 系统组 ID 最大 999
  • 可 使 用 的 额 外 UID/GID 范 围 , 当 前 RockyLinux 中 可 指 定 UID 大 于 65535 甚 至 超 出600100000 范围的 ID 都能成功设置,在创建用户 UID 大于 60000 时就会有警告信息。

表示 userdel 删除用户时,如果该用户组没有成员存在,则会删除用户组


指定是否创建用户家目录,yes 为创建,no 表示不创建
创建用户时默认创建用户家目录

使用 SHA512 加密方式

6./etc/default/useradd

  • 创建用户的默认文件
  • 新创建用户时默认初始组的 GID 号(公共组),现在使用的都是私有组机制(根据创建用户名称创建组)
  • /home 表示用户家目录的位置
  • 表示是否启用账号过期禁用,-1 表示不启用
  • 表示账号过期,不设置表示不启用
  • 指定了新建用户的默认 shell 类型
  • 指定用户家目录中默认文件的来源,新建用户家目录下的文件都是从这个目录中复制的
  • 表示是否创建邮箱缓存 yes 表示创建 

7./etc/skel

定义了新建用户在主目录下默认的配置文件

二、用户管理相关命令

1.useradd  [选项]  用户名

  •         -u:uid用户标识号,此标识必须唯一
  •         -g:group指定新用户登录时所属的初始组
  •         -G:指定新用户的附加组(必须已存在)
  •         -d:home指定新建用户的家目录
  •         -s:shell指定新建用户默认的shell类型
  •         -c:comment对新建用户添加说明信息
  •         -f:inactive指定账号过期多长时间后会被永久停用
  •         -M:创建时不生成用户家目录
  •         -r:自动将用户uid和gid指定到1000以内,不在/home下创建家目录

例:创建服务用户(nginx)给服务(nginx)使用

1.WINSCP传输安装包

 2.安装好nginx之后启动nginx,监听端口

3.nginx服务已经启动,现在查看进程

4.发现当前启动nginx进程的是nobody用户,进去/etc/passwd查看nobody

5.我们改一下启动这个服务的服务用户,改成自己设置的,自己设置一个nginx服务用户

6.重新卸载安装nginx服务,将nginx服务用户添加进去

7.再次启动nginx服务,打开pstree,可以看到现在我们启动nginx服务进程的就是nginx服务用户 

2.usermod  [选项]  用户名

  •         -u UID:修改用户的指定UID
  •         -g 组名:修改用户的指定初始组
  •         -G 组名:修改用户的附加组
  •         -c  说明:修改用户的描述信息
  •         -d  目录:结合-m选项直接对源家目录进行改名实现修改家目录
  •         -s  shell类型:修改用户的登录shell类型
  •         -L 用户名:锁定用户的密码
  •         -U 用户名:解锁用户的密码
  •         -l  新用户名  旧用户名:修改用户名

3.userdel  [选项]  用户名

  •         -r  :删除用户时,连家目录一起删除

4.passwd  [选项]  用户名

  •         -l  用户名:锁定用户的密码,使之无法登录系统
  •         -u  用户名:解锁用户密码
  •         -S  用户名:查看用户账号状态

注:第一次对一个用户使用时是为了创建密码,第二次使用时为了修改密码。当普通用户没有密码时,自己也修改不了密码

非交互式密码设置:echo  "123"  |  passwd  --stdin  user1

5.groupadd  [选项]  GID  组名

  •         -g:指定新建用户的GID,该GID必须唯一
  •         -r:创建系统组(1000以内)

6.gpasswd  [选项]  用户名  组名

  •         -A:指定组管理员
  •         -a:向指定组内添加一个成员
  •         -d:把指定用户从组内删除
  •         -M:定义组内成员列表,用户之间用,分隔(覆盖式)

7.newgrp  组名

  •         多个用户组之间切换,可以使用exit退出

8.groupdel 组名

  •         删除用户组

9.groups

  •         查询用户所属哪些组

三、其他相关命令

1.id  用户名

  •         显示用户的UID,初始组、附加组列表

2.su  用户名

  •         切换用户身份(su - 用户名:完全切换)
http://www.dtcms.com/a/314416.html

相关文章:

  • 探索机器学习在医疗领域的应用与挑战
  • Visual Studio 2022安装与快捷键全攻略
  • AI产品经理面试宝典第61天:AI产品体验、数据安全与架构实战解析
  • Linux中netstat详细使用指南
  • 开源的现代数据探索和可视化平台:Apache Superset 架构组件和安装方式 Kubernetes Docker Compose PyPI
  • 服务器突然之间特别卡,什么原因?
  • 为什么要烧录固件?——从生产到运维的全流程解析
  • k8s学习
  • 佚名运维训练营-第1天
  • 2025-08-04-零成本搭建 AI 应用!Hugging Face 免费 CPU 资源实战指南
  • 飞算JavaAI编程插件:以AI之力赋能Java开发,让编码效率再升级
  • 37. line-height: 1.2 与 line-height: 120% 的区别
  • 总结成人本科毕业前有哪些任务?
  • C++面试题及详细答案100道( 01-10 )
  • Android 分析底电流高即功耗大的几个方面
  • React 19 + Next.js 15 中实现混合布局
  • React Hooks 原理深度解析与最佳实践
  • Spring IoC容器与Bean管理
  • labview连接PLC的三种方式
  • 设计模式-创建型-工厂模式
  • 阿里云与华为云产品的差异
  • RTSP/RTMP播放器超低延迟实战:无人机远控视觉链路的工程实践
  • 项目配置文件正确但是启动失败,报配置文件内容错误或中间件地址与实际不符
  • wpf Image 转 90 度
  • 深入浅出 RabbitMQ:工作队列实战(轮训策略VS公平策略)
  • ShowDoc与Docmost对比分析:开源文档管理工具的选择指南
  • 05 基于sklearn的机械学习-梯度下降(下)
  • 神经网络---非线性激活
  • Vue 响应式数据核心:ref 与 reactive 的本质区别
  • transformer与神经网络