账号和权限的管理

2024-06-21 05:20
文章标签 账号 权限 管理

本文主要是介绍账号和权限的管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 管理用户账号和组账号
    • 用户账号的分类
      • 超级用户
      • 普通用户
      • 程序用户
    • UID(用户id)和(组账号)GID
      • UID用户识别号
      • GID组标识号
  • 用户账号文件
      • 添加用户账号
      • 设置/更改用户口令

管理用户账号和组账号

用户账号的分类

超级用户

root 用户是 Linux 操作系统中默认的超级用户账号,权限最高,进行系统 管理、维护任务时,才使用 root 用户登录系统,日常事务处理建议只使用普 通用户账号,root ID=0

普通用户

普通用户账号需要由 root 用户或其他管理员用户创建,权限受 到一定限制,只在用户自己的宿主目录中拥有完整权限系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本) UID:即每个用户的身份标示,类似于每个人的身份证号码.

程序用户

在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail
又称为伪用户不会用来登录系统的,主要是用于维持某个服务的正常运行.如:ftp,apache
image.png

UID(用户id)和(组账号)GID

UID用户识别号

管理员组:root 0
UID1~999是系统保留的
UID从1000开始,是由于/etc/login.defs这个文件中的配置决定的
vim /etc/login.defs
image.png
image.png

GID组标识号

普通组:GID
系统组:1-499(CentOS6), 1-999(CENTOS7)
普通组:500+(CentOS6), 1000+(CENTOS7)

主要组 必须要一个组 有且唯一
附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组

用户账号文件

保存用户名称,宿主目录,登录shell等基本信息
文件位置在/etc/passwd(简要信息)
格式
image.png
使用 “:” 作为分隔符

x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件,只有root用户可以浏览和操作,保证密码的安全
"x"不是表示真正的密码,不能删除,如果删除了 “x”,系统会认为这个用户没有密码,导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)

第一个0:用户账号的 UID 号

第二个0:所属基本组账号的 GID 号

第二个root:描述性信息,此字段只是用来解释这个用户的意义而已

第三个root:宿主目录,即该用户登录后所在的默认工作目录
通常称为用户的主(家)目录,例如:root主目录为/root,普通用户odysee的主目录为/home/odysee
/bin/bash是登录 Shell 等信息,用户完成登录后使用的

保存用户的密码,账号有效期等消息
文件在/etc/shadow(详细信息)
格式
555: 6 6 6t9TZJ3Ro$nmiF0MVIU3O7Yny86TcAIPTgrbQlItGuUTY/2XZvDStEGmsj2dZRqtBEsxd7aldNPgC93I8Yb/0r6A2Fl0yZL1:19894:0:99999:7:::
使用 “:” 作为分隔符,每行用户信息被划分为 9 个字段
**第一个:**账户名
**第二个:**存放真正加密的密码,采用SHA512散列算法,更加安全 加密源来用MD5 或 DES
!!和*表示没有密码不能登陆,新创建用户是!!,如果密码前面显示双感叹号表示该账户被锁定

**第三个:**上一次修改密码的时间,从1970年1月1日开始算,因为1970年是linux的诞生日,date -d "1970-01-01 18983 days"可以查看哪一天改过
image.png
chage -d

**第四个:**多久之后才可以修改密码,如果是 0,则密码可以随时修改最小修改间隔时间 ,该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对频繁更改账号密码而设计的
chage -m +数字

**第五个:**密码有效期,默认99999(273年),表示永久生效
chage -M +数字

**第六个:**密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 “修改密码” 的警告信息
chage -W +数字

**第七个:**密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效
chage -I大写i +数字

**第八个:**账号失效时间,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间
chage -E +数字
**第九个:**保留,未使用

chage命令
修改账号密码有效期,针对目前系统已有用户
格式
chage +选项 +用户名
选项
-m 密码可以更改的最小天数,为0代表任何时间都可以修改密码
-M 密码保持有效的最大天数
-w 用户密码到期前,发送告警信息的天数
-E 账号到期的日期,超过后账号不可用
-I(大写i) 停滞期,假设密码已经过期指定的天数,账号将不可以用
-l 显示当前对用户的密码,账号有效期的设置,由非特权用户确定账户或者密码过期时间

例:chage -d 0 555 用户555需要立即修改密码
image.png
例:chage -d 2024-06-21 555 用户555最后一次修改账户密码的时间为2024年6月21日
image.png
例:chage -m 30 555 用户555最小修改密码的最小时间是30天
image.png
例:chage -M 90 555 用户555修改密码最大时间是90天
image.png
例:chage -I 10 555 用户555的账号密码失效10天后,账户555不可以使用
image.png
例:chage -E 2024-06-22 555 用户555将在2024年6月21日失效,不能登录
image.png
例:chage -l 555 显示用户555的密码账号有效期设置
image.png

添加用户账号

useradd
格式
useradd +选项 +用户名
选项
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:指定用户的基本组名(或使用 GID 号)
-G:指定用户的附加组名(或使用 GID 号)
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
-s:指定用户的登录Shell

例:useradd 999 添加用户999
image.png
例:useradd -d /admin -g wheel -G root admin 将用户admin加入root的附加组
image.png
image.png
image.png
例:useradd -e 2024-06-20 -s /sbin/nologin yyy 创建一个名为yyy的程序用户使它无法登录
image.png
image.png
例:useradd -u 11111 112 设置用户112的uid
image.png
例:useradd -M lisi 创建一个属组lisi
image.png

设置/更改用户口令

passwd
格式
passwd +选项 +用户名
选项
-d 清空指定用户的密码,仅使用用户名即可登录系统
-l 锁定用户账户
-u 解锁用户账户
-S 查看用户账户的状态(是否被锁定)
例:passwd -d 113 清除账号113的密码
image.png
例:passwd -l 113 锁定账号113的密码
image.png
例:passwd -S 113 查看账号113状态
image.png
例:passwd -u 113 解锁账号113
image.png

这篇关于账号和权限的管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080321

相关文章

用Microsoft.Extensions.Hosting 管理WPF项目.

首先引入必要的包: <ItemGroup><PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" /><PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /><PackageReference Include="Serilog

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

Java研学-RBAC权限控制(八)

九 登录登出 1 登录作用   判断员工是否有权限访问,首先得知道现在操作的人是谁,所以必须先实现登录功能 2 登录流程   ① 提供登录页面,可输入用户名与密码信息,并添加执行登录的按钮。(登录页面不能被拦截)   ② 给按钮绑定点击事件(异步操作,POST请求)   ③ 事件中发送登录请求,使用 AJAX 方式提交。(使用 AJAX 原因:用户体验更好,既可保留用户刚输入的用户名和密码

vue3项目将所有访问后端springboot的接口统一管理带跨域

vue3项目将所有访问后端springboot的接口统一管理带跨域 一、前言1.安装Axios2.创建Axios实例3.创建API服务文件4.在组件中使用API服务 二、跨域三、总结 一、前言 在Vue 3项目中,统一管理所有访问后端Spring Boot接口的最佳实践是创建一个专门的API服务层。这可以让你的代码更加模块化、可维护和集中管理。你可以使用Axios库作为HTT

逆向学习汇编篇:内存管理与寻址方式

本节课在线学习视频(网盘地址,保存后即可免费观看): ​​https://pan.quark.cn/s/3ceeb9ae6d98​​ 在汇编语言的世界中,内存管理和寻址方式是构建程序的基础。理解这些概念不仅对于编写高效的汇编代码至关重要,也是进行逆向工程分析的关键技能。本文将深入探讨内存管理的基本原则和多种寻址方式,并通过代码案例来展示它们的实际应用。 1. 内存管理 内存管理涉及如何分配

Git代码管理的常用操作

在VS022中,Git的管理要先建立本地或远程仓库,然后commit到本地,最后push到远程代码库。 或者不建立本地的情况,直接拉取已有的远程代码。 Git是一个分布式版本控制系统,用于跟踪和管理文件的变化。它可以记录文件的修改历史,并且可以轻松地回滚到任何历史版本。 Git的基本概念包括: 仓库(Repository):Git使用仓库来存储文件的版本历史。一个仓库可以包含多个文件

Yarn:引领JavaScript包管理新潮流

在浩瀚的JavaScript世界中,包管理工具如同一位精明的管家,帮助开发者管理着各式各样的代码包。而Yarn,这位新晋管家,以其高效、稳定和安全的特性,正逐渐成为开发者心中的新宠。本文将带您走进Yarn的世界,让您轻松掌握Yarn的强大特性和使用方法。 特性一:快速如闪电         想象一下,你是一位忙碌的图书馆管理员,每天需要整理成千上万的书籍。如果每本书的摆放都

【Qt6.3 基础教程 17】 Qt布局管理详解:创建直观和响应式UI界面

文章目录 前言布局管理的基础为什么需要布局管理器? 盒布局:水平和垂直排列小部件示例:创建水平盒布局 栅格布局:在网格中对齐小部件示例:创建栅格布局 表单布局:为表单创建标签和字段示例:创建表单布局 调整空间和伸缩性示例:增加弹性空间 总结 前言 当您开始使用Qt设计用户界面(UI)时,理解布局管理是至关重要的。布局管理不仅关系到UI的外观,更直接影响用户交互的体验。本篇博

文件权限修改为777,php failed to open stream: Permission denied

记录一次在谷歌云上的异常诡异的事件: 环境 centos7.5 nginx php7.0 mysql 问题: 问题一 我用相同的nginx配置,只是修改了nginx root目录。 打开/var/www/html/ 这个目录就报 2018/06/22 04:35:03 [error] 15840#0: *438 FastCGI sent in stderr: “Primary scr