五、Linux系统中的用户管理

2023-11-17

五、Linux系统中的用户管理

5.1、用户及用户组存在的意义

5.1.1、用户存在的意义

系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权author
3.认证auth
3A机制,3A机制组成系统中最底层的安全架构

5.1.2、用户组存在意义

用户组是一个逻辑容器
对用户进行归类和统一授权

5.2、用户及用户组在系统中的存在方式

电脑对数字敏感,而人类对字符串敏感名称,id就是名称 ,必须要记录到文件当中,用户才能存在。
用户就是/etc/passwd文件中的一行字符;
用户组存在的方式就是/etc/group 文件中的一行字符。

5.3、用户切换

5.3.1、用户查看

whomai ##查看当前用户
id ##查看用户id信息
-u ##查看用户的用户id
-g ##查看用户主组id
例:查看root用户主组id
在这里插入图片描述
-G ##查看用户所有的组的id
-n ##显示名称
用户id范围:0-65535
0: ##Linux超级用户ID
1-999: ##Liunx系统自用ID
1000-65535: ##用户级ID
注:以上ID设定规则都被记录在/etc/login.defs
在这里插入图片描述

5.3.2、用户切换

su username
在这里插入图片描述
注:上述情况只切换了身份,未切换环境,同时切换用户和环境指令为:su – 用户名
在这里插入图片描述
注:
(1)如果root ----> commonuser 不需要后者密码
(2)commonuser ----> root 需要密码
(3)commonuser ----> commonuser 需要密码

注:
(1)在做用户切换时,当使用完毕用户身份及时退出,否则会在进程中占用系统资源。
(2)不要在一个shell中反复执行su命令
(3)在一个shell中反复执行su命令会导致环境错乱

5.4、用户涉及到的系统配置文件

/etc/passwd ##用户身份信息文件
#用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
例:vim /etc/passwd
在这里插入图片描述
/etc/group ##组身份信息文件
#组名称:组密码:组id:组的附加成员
在这里插入图片描述
/etc/skel/.* ##用户环境配置文件模板
/etc/shadow ##用户认证信息文件
/home/username ##用户家目录
/var/spool/mail/username ##用户邮箱文件

5.5、用户和用户组建立及删除

5.5.1、监控用户建立的命令

watch -n 1 “tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home”
在这里插入图片描述在这里插入图片描述
注:< crtl >+< c >退出监控

5.5.2、用户建立

useradd username
-u id username ##uid 2**16=0-65535
例:建立一个id为888,用户名为fake的用户
在这里插入图片描述
在这里插入图片描述
##0 表示超级用户
##1-200 系统预留id
##201-999 系统用户
##1000-60000 用户级用户
##/etc/login.defs 记录用户建立的默认规则
-g id username ##主组id
例:建立一个主组id为990的用户fake
useradd -g 990 fake
在这里插入图片描述
-G id username ##附加组id
在这里插入图片描述
-d dir username ##指定用户家目录
-M username ##建立用户时不建立家目录
-c word username ##指定用户说明
-s shell username ##指定用shell

5.5.3、用户删除

userdel -r username ##用户删除 -r表示删除用户的系统配置文件,如果删除时没有加-r,再建立该用户时会报错,需手动删除。
在这里插入图片描述

5.5.4、组建立

groupadd groupname ##组建立
-g id groupname ##指定组名称
groupdel groupname ##组删除

5.6、用户和用户组的信息管理

usermod
-l #更改用户名称
例:把fake用户名改为faker
usermod -l faker fake
在这里插入图片描述
-u #更改用户id
例:fake用户id改为888
usermod -u 888 fake
在这里插入图片描述
-g #更改主组id
例:fake用户的主组id改为1000
usermod -g 1000 fake
在这里插入图片描述
-G #更改用户附加组身份
例:不改变id把fake加入light成员里面
usermod -G light fake
在这里插入图片描述
改变之后的fake用户有两个身份
在这里插入图片描述
例:fake用户有两个附加组身份
usermod -G 72, light fake
在这里插入图片描述
例:fake用户两个附加组身份清零
usermod -G 0 fake
在这里插入图片描述
-aG #添加用户附加组身份
例:用户fake在原有身份基础上增加一个附加组身份
usermod -aG 10 fake
在这里插入图片描述
例:去掉fake用户所有附加组身份
usemod -G “ “ fake
在这里插入图片描述
-c #更改用户说明
例:fake用户更改用户说明fake is liar
uermod -c “fake is liar” fake
在这里插入图片描述
-d #更改家目录指向
例:更改用户fake的家目录为/home/biubiu
usermod -d /home/biubiu fake
在这里插入图片描述
-md #更改家目录指向同时更改家目录名称
在这里插入图片描述
注意上面两个图的区别

-s #更改默认shell
例:把fake用户的shell改为/bin/sh
usermod -s /bin/sh fake
-L #冻结账号
-U #解锁
groupmod -g ##更改用户组id
例:更改用户组id为10000
groupmod -g 10000 fake
在这里插入图片描述

5.7、用户认证信息管理

/etc/shadow 文件内容说明
用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)

5.7.1、用户名称

passwd -S lee ##查看密码状态

5.7.2、用户加密字符

5.7.2.1、更改密码

passwd lee ##只有root可以执行 “echo 123 | passwd --stdin lee”
passwd ##普通用户改密码
Current password: #输入原始密码
New password: ##输入新密码(8位以上无序数字+无序字母组合)
Retype new password: ##重复输入
passwd: all authentication tokens updated successfully.

5.7.2.2、冻结认证

passwd -l lee ##冻结账号认证
在这里插入图片描述
passwd -u lee ##解锁账号认证

5.7.2.3、密码删除

passwd -d lee
#密码使用天数
*从1970-1-1算其到今天的时间
passwd -e lee ##修改默认使用时间为0
chage -d 0 lee ##账号必须改密码才能登陆系统
在这里插入图片描述
#密码最短有效期
passwd -n 1 lee ##lee在1天内不能改密码
chage -m 1 lee
#密码最长有效期
passwd -x 40 lee ##40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
例:用户light密码最长有效期设置为30天
passwd -x 40 light
在这里插入图片描述

5.8、用户权力下放

#在系统中普通用户时无法执行系统管理命令的
#如果需要普通用户执行系统管理动作那么需要
#root用户来进行授权
普通用户授权方式 “sudo”
作用:
可以使普通用户使用指定的用户身份运行命令
授权方法:
visudo ##此命令作用是编辑/etc/sudoers并提供语法检测
在文件的100行左右 ##代码规范性
格式:username hostname=(newusername) [NOPASSWD:] /command, /command1

例:纠错提醒
在这里插入图片描述
命令:lee linux.westos.com=(root) /usr/sbin/useradd
解释:lee用户在linux.wesots.com主机=(用超级用户身份) 执行useradd命令
命令:westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
解释:westos用户在linux.wesots.com 使用超户免密执行useradd 和 userdel

测试:
su - lee
sudo useradd westostest ##在lee第一次使用sudo命令时需要输入lee密码
exit #退出lee
su - westos
sudo userdel -r westostest ##westos可以免密执行userdel 命令
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

五、Linux系统中的用户管理 的相关文章

  • Plink 通过 C# 返回不需要的字符

    通过 C 使用 Plink 时 我在结果前后收到不需要的字符 Command ls l informatica tgtdynamicparams out grep vaulttest grep Sep 1 awk print 9 sort
  • DHCP 服务器将任何 url 重定向到登陆页面

    我有一个 Linux DHCP 服务器 我需要将所有网络流量重定向到一个登陆页面 该页面将包含有关如何在网络上注册计算机的说明 无论用户输入什么 URL 都需要将用户重定向到网页 在 DHCP 服务器上 即 用户输入 google com
  • Shell Linux:grep 带有 NULL 字符的精确句子

    我有一个像这样的文件 key 0value n akey 0value n key2 0value n 我必须创建一个以单词作为参数的脚本 我必须返回具有与参数完全相同的键的每一行 I tried grep aF key x0 但 grep
  • ELF 文件头

    关于 elf 文件头的一个简单问题 我似乎找不到任何关于如何在 elf 头中添加 更改字段的有用信息 我希望能够更改幻数并向标题添加构建日期 以及可能的其他一些内容 据我了解 链接器创建标头信息 但我在 LD 脚本中没有看到任何引用它的内容
  • Python 在打开套接字时可以选择哪个网络适配器吗?

    运行 python 应用程序的目标计算机将具有三个可用的网络接口 一般来说 所有三个网络都会有很大不同 但是三个网络中的两个可能位于相似的网络上 在下面的示例中 我无法控制 ETH 2 上的目标地址 因为它是预先配置的系统 因此我被迫以编程
  • 如何编写写入 /var/log/myapp 目录的 C/C++ 应用程序?

    背景 在 Linux 系统上 应用程序日志 https help ubuntu com community LinuxLogFiles Application Logs存在于子目录中 var log 其所有者为root root并且在我的系
  • 变量名称后面的“-”(破折号)在这里有什么作用?

    if n BASH o n ZSH VERSION then hash r 2 gt dev null fi 我在哪里可以找到这方面的参考资料 谢谢 a 内的变量 称为 参数扩展 搜索该词在在线手册中 https man cx bash h
  • Linux 上的 Chrome - 查询浏览器以查看打开了哪些选项卡?

    我在 Ubuntu Linux 上运行 Chromium 开源 chrome 版本 我可以编写一个程序来查看我打开了哪些选项卡吗 我想编写一个程序来监控我在事情上花费了多少时间 是否有命令行程序 某种调用 chromium browser
  • php.ini 更改,但在 Ubuntu 上无效

    我想更改 PHP 上传文件大小的限制 这是我的输出的一些信息phpinfo https www php net manual en function phpinfo php Configuration File php ini Path e
  • 在我的 Linux 机器上安装 lisp

    我使用 Vim 作为我的编辑器 Practical common Lisp 建议安装 Lispbox 我不知道如何使用 emacs 不知道如何用那个 T T 运行 lisp 代码 之后我找到了一个名为 limp vim 的 vim lisp
  • 如何在没有 root 访问权限的情况下在 Ubuntu 上安装 Google Test?

    我正在尝试根据以下方式安装 Google Test这个答案 https stackoverflow com a 21314020 6560773在没有 root 访问权限的 Ubuntu 上 因为我需要在工作中学习和使用它 设法在我自己的用
  • 获取后台进程的退出代码

    我有一个从我的主 bourne shell 脚本中调用的命令 CMD 该命令需要很长时间 我想修改脚本如下 作为后台进程并行运行命令 CMD CMD 在主脚本中 有一个循环每隔几秒监视生成的命令 该循环还向标准输出回显一些消息 指示脚本的进
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • 在大型文本文件中查找重复记录

    我在一台 Linux 机器 Redhat 上 并且有一个 11GB 的文本文件 文本文件中的每一行包含单个记录的数据 并且该行的前 n 个字符包含该记录的唯一标识符 该文件包含略多于 2700 万条记录 我需要验证文件中不存在具有相同唯一标
  • 打印堆栈指针的值

    如何在 Linux Debian 和 Ubuntu 中用 C 打印堆栈指针的当前值 我尝试谷歌但没有找到结果 一个技巧是简单地将本地地址作为指针打印出来 但它不可移植 甚至无法保证有效 void print stack pointer vo
  • 启动jetty服务器时出现NoClassDefFoundError

    我正在尝试在码头服务器中托管我的网络应用程序 spring 我将 war 文件复制到 jetty 服务器中的 webapp 文件夹中 我并不是想嵌入jetty服务器 而是试图在jetty内托管应用程序 如tomcat 我没有安装jetty
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该

随机推荐

  • Java多线程练习--取钱

    1 需求 小明和小红是一对夫妻 他们有一个共同的账户 余额是10万元 模拟2人同时去取钱10万 分析 1 需要提供一个账户类 创建一个账户对象代表2个人的共享账户 2 需要定义一个线程类 线程类可以处理账户对象 3 创建2个线程对象 传入同
  • 浅析GPT2中的autoregressive和BERT的autoencoding源码实现

    经常使用BERT来做研究 因此对Encoder的架构较为熟悉 但是从来没有了解过GPT这样的Decoder架构 尤其对自回归的形式不知道源码是如何实现的 为了方便对比和讨论 接来下所探讨的源码都是基于HuggingFace这个框架的 Ber
  • 数据结构--基础之顺序表的一种实现(堆实现)基于C++语言。Sqlite(初始化,增,删,查,定,判,打印,求长,销毁)

    Mr lei 来人 上代码 好的 Title 顺序表 WorkSpace C 环境下的实现 Date 2023 4 12 Author Mr Lei Copyright 版权所有 侵权不究 QQ 2223696890 include
  • DDR的VTT有源端接和无源端接(slua886a笔记)

    DDR的VTT有源端接和无源端接 slua886a笔记 背景 对于DDR的VTT端接 一直有说法是有源端接可降低功耗 之前一直没仔细理解其中原因 现在找了些相关的资料来介绍和对比有源和无源端接 理解有源端接的优点和降低功耗的原理 主要基于读
  • 微信小程序之模版的使用(template)

    WXML提供模板 template 可以在模板中定义代码片段 然后在不同的地方调用 分为两部分 定义模板和使用模板 1 定义模板 使用 name 属性 作为模板的名字 然后在
  • python散点图圆形区域_python – Matplotlib;散点图标记,圆内点

    我正在使用Matplotlib散点绘图仪进行绘图 对于标记 我理想地喜欢内部有圆点的圆形轮廓 外圆圈清楚地表明那里有东西 然后点更精确 我可以实现这个 如果我只是绘制两次 一次用轮廓然后再用点 但那时我的传说是不正确的 所以我的问题是 有什
  • 划分训练集、验证集和测试集代码

    输入需要划分的数据所在的文件夹 返回一个划分好的包含train val和test的文件夹 val ratio 和test ratio分别为验证集和测试集所占的比例 test ratio 0表示不划分测试集 import os import
  • Java - Stream流详解

    目录 前言 一 Stream流是什么 二 流的分类 顺序流 并行流 区别 三 获取流的常用方式 1 通过集合获取流 2 通过数组获取流 3 通过Stream of 方法获取流 四 常用方法用法 1 filter Predicate pred
  • 线性代数 - 特征向量和特征值

    今天在看到这个马汉诺拉距离的时候 又看到了这个东西 就是利用特征值来进行协方差方向上的伸缩 突然感觉到了线性代数的作用了 但是实际上 我今天看到了非常多的内容 但是都没有吸收完 很多内容都是线性代数的东西 但是这些东西我都忘了 这里先挖个坑
  • Java8 stream对List<Map<String,Object>>常用的数据处理

    java 8 在推出stream 之后 对于集合等数据的处理用了就回不去了 在此处做个笔记 查数据 List
  • 数据库出现“评估期已过”问题怎么解决?

    问题 SQL server 2012年版 打开SQL Server时 出现问题 评估期已过 有关如何升级您的测试版软件的信息 请访问http www microsoft com sql howtobuy 问题原因 SQL Server安装时
  • Android Automotive概述

    Android开发者的新赛道 在智能手机行业初兴起时 包括BAT在内许多传统互联网企业都曾布局手机产业 但是随着手机市场的基本定型 造车似乎又成了各大资本下一个追逐的方向 百度 小米先后宣布造车 阿里巴巴则与上汽集团共同投资创立了 面向汽车
  • threejs-纹理贴图

    前言 threejs中的纹理贴图使用方法 参考 threejs开发指南 文章目录 前言 纹理的基本使用 纹理的常用属性 常用纹理的种类 1 普通贴图map 2 凹凸贴图bumpMap 3 法线贴图normalMap 4 位移贴图displa
  • 大数据量JSONObject.fromObject性能问题(大数据传给前台)

    最近项目中我负责了一个jms打印log信息的功能模块 大体需求是 用jms接受log信息 然后前台请求的时候 发给前台最新的log信息 前台会不断的刷新获取数据 个人思路是写一个静态的固定长度的list保存log信息 如果list满了清空
  • 通信端口感叹号_PCI简易通讯控制器有黄色感叹号怎么办?

    近日有网友新安装了Win7系统 安装完成后感觉电脑都顺畅了很多 不过在打开设备管理器的时候发现 在其他设备下的PCI简易通讯控制器有个黄色感叹号 出现这个感叹号也意味着这个控制器的驱动未安装 对此我们该如何解决呢 解决方法 1 打开设备管理
  • android 功能模块之通讯模块三

    Android通讯录开发之解决快速搜索联系人线程同步问题 2013年1月13日 上一篇博客介绍的是如何实现搜索 在PhoneUtil中已经定义好了search方法 开发者直接拿来用就ok了 但用的时候肯定会遇到线程同步问题 如何解决搜索的时
  • 区块链节点和网络的实现

    文章目录 1 介绍 1 1 区块链的基本概念回顾 1 2 区块链节点的作用和重要性 1 3 区块链网络的组成和结构 2 实现区块链节点 2 1 节点的角色和功能 2 2 使用Python创建区块链节点 2 3 定义区块和区块链数据结构 2
  • linux 内核笔记之watchdog

    watchdog 简而言之 watchdog是为了保证系统正常运行 或者从死循环 死锁等一场状态退出的一种机制 看门狗分硬件看门狗和软件看门狗 硬件看门狗是利用一个定时器电路 其定时输出连接到电路的复位端 程序在一定时间范围内对定时器清零
  • Vscode中JS输出乱码问题的解决

    一直很好用vscode突然不好用了 原来输出正常的JS代码在输出中都是乱码 于是上网查答案 试了很多奇奇怪怪的答案 然而没有一款能够解决我这个问题 仔细琢磨 既然以前好用 现在不好用 应该是某个电脑操作 误伤 友军 VScode执行代码原理
  • 五、Linux系统中的用户管理

    五 Linux系统中的用户管理 5 1 用户及用户组存在的意义 5 1 1 用户存在的意义 系统资源是有限的 如何合理分配系统资源 在这个问题解决时必须要有连个资源配合 1 身份 account 2 授权author 3 认证auth 3A