用户管理①

news2024/9/23 22:39:18

                                               

                                   📑打牌 : da pai ge的个人主页
                                   🌤️个人专栏 : da pai ge的博客专栏
                                   ☁️宝剑锋从磨砺出,梅花香自苦寒来

                                   ☁️运维工程师的职责:监控,备份,应急故障处理

                   

​​

目录

用户相关配置文件:

/etc/passwd:​编辑

/etc/shadow:        

/etc/group:​编辑

/etc/gshadow

/etc/login.defs:

/etc/default/useradd:

/etc/skel/:


在 Linux 系统中各种会存在着多个用户。我们的使用者靠用户名来区分各自登陆的账

号。

如果我们的用户想要使用系统资源,就必须在系统中拥有合法的账号。在系统多个文

件中都保存了用户身份相关信息。

用户相关配置文件:

  1. /etc/passwd:

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

第二列:密码占位符(真正的密码文件在/etc/shadow)。

第三列:用户 ID(UID)

在用户 ID 中 0 是超级用户的 ID,只要 UID 是 0 就是超级用户。

在用户 ID 中 1-999 是系统用户的范围,作用是系统服务或命令在运行时会对这些账号进行调用。为保留给服务使用的账号 UID(nfsnobody 是个例外,默认安装后的 uid 为65534。是 NFS 服务的匿名访问用户的本地用户 UID)

在用户 ID 中 1000-65535 是普通用户使用,当创建一个新用户时 UID 从 1000 开始,最大到 60000。2.6.x 内核(uname -r 查看内核版本)以后的 Linux 系统 UID 可以支持 2^32 的 UID 了(修改最大 UID 范围/etc/login.defs)。

第四列:初始组 ID(GID)

为更加灵活的管理用户的权限,Linux 里还采用用户组的概念。有效组(附加组)与初始组:

在/etc/passwd 里边

第四列是 GID。这个 GID 就是初始用户组。

创建用户时如果不指定用户的初始组,则会自动创建和用户名相同的组,初始组只能 有一个。

也就是说用户登陆系统,立刻就拥有初始组的相关权限/身份。

第五列:用户描述信息(类似于“注释”,现在已经不常用)。

第六列:用户家目录

第七列:用户的 shell 类型:

用户会取得一个 shell 与系统的内核通信以进行用户的操作任务。

/bin/bash:shell 类型为 bash,bash shell 是最常用的一种 shell(能正常登陆系统)。

/sbin/nologin:不能登陆系统,可以使用系统资源。



  1. /etc/shadow:        

第一列:用户名。

第二列:经过加密编码的密码,$6$开头的表明是使用 SHA-512 加密。

如果密码位是“!!”或“*”代表没有密码,不能登录(我们也可以在第二列用户的密码 前面加入一个“!”或“*”,加入后都不能登录)(新建用户时,如果不设置密码,那么 第二列为“!!”)

第三列:密码最近更改时间



此段记录了改动密码的日期,日期是由 1970 年 1 月 1 日作为标准时间来计算的。时间戳转日期

日期转时间戳:(86400 为每一天的秒数)

第四列:密码不可被更改的天数(与第三列相比)

第四列记录了这个账号的密码在最近一次修改过之后需要经过几天才可以再次修改。 如果是 0 的话,表示密码随时可以被修改。

如果设置为 5 的话,那么当你设置过密码后,需要等 5 天之后才能更改密码。第五列:密码最长有效期(与第三列相比)

为了强制用户更改密码,这个字段可以指定密码的最长有效期。 用户必须在有效期内重设密码才行。

必须在期限时间内重设密码,否则这个账号的密码会变为过期特性。 而默认的 99999(273 年)表示为 近似永久。

第六列:密码到期前的警告天数(与第五字段相比)

当账号的密码有效期快到的时候,系统会依据这个字段的设置发出“警告”给这个账 号,提醒他过 N 天后你的密码即将过期。

第七列:密码过期后的宽限天数(密码失效日,与第五字段相比)

密码过期后预留几天给账户修改密码,此时已无法使用旧密码登陆系统。 如果写入 0,那么代表密码过去就马上失效。

如果写入 5,那么代表密码会在 5 天后失效。

如果写入-1,那么代表密码永远不会失效。第八列:账号失效日期

这里同样要写时间戳,用 1970 年 1 月 1 日进行时间换算,如果超过了失效时间,用户也就失效无法使用了。

第九列:保留。


  1. /etc/group:

第一列:组名称(默认组成员)。第二列:组密码占位符。

第三列:组 ID 号(GID) 第四列:组内成员列表

所以把用户添加到组内的方式有两种,一种临时,一种永久。

临时:root 用户设置组密码,把密码告知即将加入组的用户。用户使用组密码,通过newgrp 命令切换到组内。但这种方式在重新登录之后,就会失效。

永久:写入/etc/group 的方式。使用 root 用户给组添加管理员(gpasswd -A 管理员组名)然后使用组管理员用户,将用户添加到组内(gpasswd -a 用户名 组名)。这种添加后,会在/etc/group 信息中最后一列进行记录。重新登录不会失效。并且在添加之后, 用户切换的时候不用输入密码。

有效用户组与初始用户组:在/etc/passwd 文件中第四列是用户初始组 ID。也就是说用户登陆系统,立刻就拥有这个用户组的相关权限。有效组是后续添加的组。用 groups 命令来查看当前的初始组和有效组。newgrp 组名的格式用来切换当前的有效组。

  1. /etc/gshadow

  2. 第一列:组名称

     

    第二列:经过加密的组密码,这个段可以为空或!,如果是空或!表示没有密码。 第三列:用户管理员,这个字段也可以为空,如果有多个用户组管理者,用,分隔。 第四列:组成员,如果有多个成员,用,分隔。

    通过 gpasswd 组名的方式来为组设置密码(需要 root 用户设置)。组密码的作用:用户可以通过输入组密码的方式临时切换到组中,获取相应的组权限。如果没有设置组密码, 则只有永久加入的组内成员才能够切换组身份。

    通过 gpasswd -A 账户名 组名 来为组添加管理员(拥有添加或移除组员的权限,只有root 有权限添加管理员,即使是默认初始组,也没有组管理员权限)。

    通过 gpasswd -a/-d 用户名 组名 来添加/移除组成员

    1. /etc/login.defs:


     

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


     

    #指定密码保持有效最大天数。#表示修改密码的间隔时间。

    #指定密码的最小长度。



    #表示密码到期前多少天系统提示用户密码到期。

    #指定 UID 最小为 1000,也就是说创建新用户时用户的 UID 从 1000 开始。#指定最大 UID 为 60000。

    #系统用户最小 201

    #系统用户最大 999 #最小 GID 为 1000。

    #最大 GID 为 60000。#系统组 ID 最小 201

     

    #系统组 ID 最大 999


     

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



    #创建用户家目录权限默认掩码值。

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

    #使用 SHA512 加密方式。

    1. /etc/default/useradd:

     

    #创建用户的默认文件

    #新创建用户时默认初始组的 GID 号(公共组),现在使用的都是私有组机制(根据创建用户名称创建组)

    #/home 表示用户家目录的位置

    #表示是否启用账号过期禁用,-1 表示不启用。#表示账号过期,不设置表示不启用。

    #指定了新建用户的默认 shell 类型。

    #指定用户家目录中默认文件的来源,新建用户家目录下的文件都是从这个目录中复制的。 #表示是否创建邮箱缓存 yes 表示创建



    1. /etc/skel/:

    在创建新用户后,会在新用户家目录下看到类似.bash_profile .bashrc                                                                .bash_logout

    touch  /etc/skel/ccc

    useradd hf01

    ls -a /home/hf01

     

    等文件。/etc/skel 目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel 目录下的内容就可以改变新建用户默认主目录的配置文件信息。

 

第一列:组名称

第二列:经过加密的组密码,这个段可以为空或!,如果是空或!表示没有密码。 第三列:用户管理员,这个字段也可以为空,如果有多个用户组管理者,用,分隔。 第四列:组成员,如果有多个成员,用,分隔。

通过 gpasswd 组名的方式来为组设置密码(需要 root 用户设置)。组密码的作用:用户可以通过输入组密码的方式临时切换到组中,获取相应的组权限。如果没有设置组密码, 则只有永久加入的组内成员才能够切换组身份。

通过 gpasswd -A 账户名 组名 来为组添加管理员(拥有添加或移除组员的权限,只有root 有权限添加管理员,即使是默认初始组,也没有组管理员权限)。

通过 gpasswd -a/-d 用户名 组名 来添加/移除组成员

  1. /etc/login.defs:

 

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

 

#指定密码保持有效最大天数。#表示修改密码的间隔时间。

#指定密码的最小长度。


#表示密码到期前多少天系统提示用户密码到期。

#指定 UID 最小为 1000,也就是说创建新用户时用户的 UID 从 1000 开始。#指定最大 UID 为 60000。

#系统用户最小 201

#系统用户最大 999 #最小 GID 为 1000。

#最大 GID 为 60000。#系统组 ID 最小 201

#系统组 ID 最大 999

 

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


#创建用户家目录权限默认掩码值。

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

#使用 SHA512 加密方式。

  1. /etc/default/useradd:

 

#创建用户的默认文件

#新创建用户时默认初始组的 GID 号(公共组),现在使用的都是私有组机制(根据创建用户名称创建组)

#/home 表示用户家目录的位置

#表示是否启用账号过期禁用,-1 表示不启用。#表示账号过期,不设置表示不启用。

#指定了新建用户的默认 shell 类型。

#指定用户家目录中默认文件的来源,新建用户家目录下的文件都是从这个目录中复制的。 #表示是否创建邮箱缓存 yes 表示创建


  1. /etc/skel/:

在创建新用户后,会在新用户家目录下看到类似.bash_profile .bashrc                                                                .bash_logout

等文件。/etc/skel 目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel 目录下的内容就可以改变新建用户默认主目录的配置文件信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1989707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue.js 3.x 必修课|009|Watch API:响应式数据的侦听器(必读+实操)

欢迎关注公众号:CodeFit。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创作 提供 动力! 欢迎订阅《Vue 3.x 必修课| 2024》:http://t.csdnimg.cn/hHRrM 精品内容,物超所值(9.9 元,20+篇内容)。 1. 引言 在 Vue3 的 Composit…

基于 JWT 的模拟登录爬取实战

准备工作 1. 了解 JWT 相关知识 2. 安装 requests 库,并了解其基本使用 案例介绍 爬取网站: https://login3.scrape.center/ 用户名和密码是: admin 模拟登录 基于 JWT 的网站通常采用的是前后端分离式, 前后端的数据传输依…

【C++高阶】:自定义删除器的全面探索

✨ 我凌于山壑万里,一生自由随风起 🌏 📃个人主页:island1314 🔥个人专栏:C学习 🚀 欢迎关注:👍点赞 👂&am…

观测维度过大的一种ceres求解优化思路

详见 文章 这个优化如此重要,以至于需要单列一个文章。 使用场景: 比如lidar SLAM中优化点到面的距离,如果多个点关联到同一个面,那么就可以利用矩阵批量运算,假如有N个点,那么可以用一个factor来代替N个f…

【MYSQL】表操作

目录 查看当前数据库含有表查看表结构创建表插入(新增create)查询(retrieve)全列查询指定列查询查询列是表达式别名查询(as)去重查询(distinct)排序查询(order by)条件查询(where)比较/逻辑运算符使用 分页查询(limit) 一条语句各…

微服务-实现nacos的集群和Gateway网关的实现、认证校验、解决跨域

1. nacos的集群模式 1.1 分析 nacos在企业中的使用100%都是集群模式。需要掌握nacos集群的搭建 nacos的数据存放在derby本地磁盘中,nacos集群模式会导致数据库数据不一致,使用加一层思想,修改nacos的数据库,使用mysql数据库&…

kafka producer metrics

背景 做online Service埋点设计,塞了很多节点,采用了base64压缩,希望能监控当前消息的大小,防止超过threshold后无法正常发送。 kafka基本架构 producer metrics 官方文档 其中有两个参数用来表征在kafka的producer的client里&…

鸿蒙AI功能开发【hiai引擎框架-主体分割】 基础视觉服务

hiai引擎框架-主体分割 介绍 本示例展示了使用hiai引擎框架提供的主体分割能力。 本示例模拟了在应用里,选择一张图片,识别其图片中的显著性主体并展示出来主体的边界框的数据。 需要使用hiai引擎框架通用文字识别接口hms.ai.vision.subjectSegmenta…

加密软件有哪些常见的安全特性

1. 数据加密 核心功能:加密软件的核心在于对数据进行加密处理,通过复杂的加密算法(如AES、RSA等)将明文数据转换为密文,确保数据在存储和传输过程中的安全性。 透明加密:部分加密软件支持透明加密功能&am…

函数实例讲解(六)

文章目录 如何加密电话号码?(SUBSTITUTE、REPLACE)1、SUBSTITUTE2、REPLACE 用REPT函数做图表学生的考试成绩用A、B、C表示,如何找出哪个等级的学生最多呢?(CHAR、CODE、MODE)1、CHAR2、CODE3、…

【数据结构】顺序结构实现:特殊完全二叉树(堆)+堆排序

二叉树 一.二叉树的顺序结构二.堆的概念及结构三.堆的实现1.堆的结构2.堆的初始化、销毁、打印、判空3.堆中的值交换4.堆顶元素5.堆向上调整算法:实现小堆的插入6.堆向下调整算法:实现小堆的删除7.堆的创建1.堆向上调整算法:建堆建堆的时间复…

使用Go语言绘制折线统计图教程

使用Go语言绘制折线统计图教程 在本教程中,我们将学习如何使用Go语言及gg包绘制折线统计图,并将图表保存为PNG格式的图片。折线图适用于展示数据的变化趋势,并能直观地展示数据随时间或其他指标的变化。 安装gg包 首先,确保你已…

⌈ 传知代码 ⌋ 改进表情识别

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

Unity入门2——编辑器常用功能

点击文件夹,右键,选择showInExplorer可以在文件管理器中打开 选中多个图片素材,在Inspector里将Texture Type设置为Sprite(2D and UI)即可将图片素材用于UI 右键Hierachy面板的空白区,点击UI->Panel可以创建UI面板&#xf…

GPT-SoVITS-文本转语音(你的声音不再是唯一)

本文将要介绍GPT-SoVITS的安装和使用方法 首先感谢花儿不哭大佬带来的RVC声音克隆 花儿不哭: 花儿不哭的个人空间-花儿不哭个人主页-哔哩哔哩视频 (bilibili.com) GPT-SoVITS下载地址 GitHub - RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a …

网络药理学:分子对接之pocasa/proteins.plus/Deepsite网站预测蛋白口袋

前言 配体的结合需要疏水作用,通常来说,疏水性空腔(开口小、肚子大、能容纳一定体积的分子结构)更有可能成为口袋。当我们复现网络药理学文章时可能经过前面的筛选,依旧有数个乃至数十个蛋白需要做分子对接验证。此时如…

算法——动态规划:基础

文章目录 一、基本介绍二、案例——斐波那契数列1. 基本介绍2. 递归实现3. 动态规划3.1 重叠子问题3.2 最优子结构3.3 无后效性3.4 性质的总结 4. 使用 动态规划 的思想实现4.1 自顶向下 的 递归4.2 自底向上 的 递推4.3 两种思路的简单比较 三、总结 一、基本介绍 动态规划&a…

python语言day4 函数 生成器yield、next关键字 装饰器

一、 函数 定义: def info(): print("执行info()函数") 直接调用方法和封装一个函数: 使用信息发送的功能为例 登录163网易免费邮-你的专业电子邮局 1)开启POP3/SMTP服务,会得到对应的授权码,也就是登陆…

2024年旗舰骨传导耳机大对比:南卡、韶音和墨觉,哪款最值得购买?

作为专注于数码产品的博主,我对骨传导耳机的迅猛发展深有感触。这类耳机以其与众不同的技术和设计风格,成功捕捉了消费者的兴趣。它们独特的工作原理不仅保留了使用者对周围环境的感知,还能提供清晰的音乐播放和通话体验,特别适合…

第三方软件检测机构服务类型

在信息技术飞速发展的今天,软件产品的质量已成为企业竞争力的重要组成部分。卓码软件测评这家第三方软件检测机构致力于提供一流的软件测试服务,帮助企业确保其软件产品的可靠性和安全性。 一、项目验收测试:确保交付质量   项目验收测试是…