【BASH】回顾与知识点梳理(二十六)

【BASH】回顾与知识点梳理 二十六

    • 二十六. 二十一至二十五章知识点总结及练习
      • 26.1 总结
      • 26.2 模拟
      • 26.3 简答题

该系列目录 --> 【BASH】回顾与知识点梳理(目录)

二十六. 二十一至二十五章知识点总结及练习

26.1 总结

  • Linux 操作系统上面,关于账号与群组,其实记录的是 UID/GID 的数字而已;
  • 使用者的账号/群组与 UID/GID 的对应,参考 /etc/passwd 及 /etc/group 两个文件
  • /etc/passwd 文件结构以冒号隔开,共分为七个字段,分别是『账号名称密码UIDGID全名(注释)家目录shell
  • UID 只有 0 与非为 0 两种,0为root,非为 0 则为一般账号。一般账号又分为系统账号 (1~999) 及可登入者账号(大于 1000)
  • 账号的密码已经移动到 /etc/shadow 文件中,该文件权限为仅有 root 可以更动。该文件分为九个字段,内容为『 账号名称加密密码密码更动日期密码最小可变动日期密码最大需变动日期密码过期前警告日数密码失效天数 账号失效日保留未使用
  • 使用者可以支持多个群组,其中在新建文件时会影响新文件群组者,为有效群组。而写入 /etc/passwd 的第四个字段者, 称为初始群组
  • 与使用者建立、更改参数、删除有关的指令为:useradd, usermod, userdel 等,密码建立则为 passwd;
  • 与群组建立、修改、删除有关的指令为:groupadd, groupmod, groupdel 等;
  • 群组的观察与有效群组的切换分别为:groups 及 newgrp 指令;
  • useradd 指令作用参考的文件有: /etc/default/useradd, /etc/login.defs, /etc/skel/ 等等
  • 观察用户详细的密码参数,可以使用『 chage -l 账号 』来处理;
  • 用户自行修改参数的指令有: chsh, chfn 等,观察指令则有: id, finger 等
  • ACL 的功能需要文件系统有支持,CentOS 7 预设的 XFS 确实有支持 ACL 功能!
  • ACL 可进行单一个人或群组的权限管理,但 ACL 的启动需要有文件系统的支持;
  • ACL 的设定可使用 setfacl ,查阅则使用 getfacl ;
  • 身份切换可使用 su ,亦可使用 sudo ,但使用 sudo 者,必须先以 visudo 设定可使用的指令;
  • PAM 模块可进行某些程序的验证程序!与 PAM 模块有关的配置文件位于 /etc/pam.d/*/etc/security/*
  • 系统上面账号登入情况的查询,可使用 w, who, last, lastlog 等;
  • 在线与使用者交谈可使用 write, wall,脱机状态下可使用 mail 传送邮件!

26.2 模拟

情境模拟题一:想将本服务器的账号分开管理,分为单纯邮件使用,与可登入系统账号两种。其中若为纯邮件账号时, 将该账号加入 mail 为初始群组,且此账号不可使用 bash 等 shell 登入系统。若为可登入账号时, 将该账号加入 youcan 这个次要群组。

  • 目标:了解 /sbin/nologin 的用途;
  • 前提:可自行观察使用者是否已经建立等问题;
  • 需求:需已了解 useradd, groupadd 等指令的用法;

解决方案如下:

  1. 预先察看一下两个群组是否存在?
[root@study ~]# grep mail /etc/group
[root@study ~]# grep youcan /etc/group
[root@study ~]# groupadd youcan
  1. 开始建立三个邮件账号,此账号名称为 pop1, pop2, pop3 ,且密码与账号相同。可使用如下的程序来处理:
[root@study ~]# vim popuser.sh
#!/bin/bash
for username in pop1 pop2 pop3
do
useradd -g mail -s /sbin/nologin -M $username
echo $username | passwd --stdin $username
done
[root@study ~]# sh popuser.sh
  1. 开始建立一般账号,只是这些一般账号必须要能够登入,并且需要使用次要群组的支持!所以:
[root@study ~]# vim loginuser.sh
#!/bin/bash
for username in youlog1 youlog2 youlog3
do
useradd -G youcan -s /bin/bash -m $username
echo $username | passwd --stdin $username
done
[root@study ~]# sh loginuser.s
  1. 这样就将账号分开管理了!非常简单吧!

26.3 简答题

  • root 的 UID 与 GID 是多少?而基于这个理由,我要让 test 这个账号具有 root 的权限,应该怎么作?

    /etc/passwd
    root:x:0:0...
    test:x:0:0...
    

    理论上:root 的 UID 与 GID 均为 0 ,所以要让 test 变成 root 的权限,那么就将 /etc/passwd 里面, test 的 UID 与 GID 字段变成 0 即可!
    实际上:别这么搞!

  • 假设我是一个系统管理员,我有一个用户最近不乖,所以我想暂时将他的账号停掉, 让他近期无法进行任何动作,等到未来他乖一点之后,我再将他的账号启用,请问:我可以怎么作比较好??

    passwd -l yurq
    

    由于这个账号是暂时失效的,所以不能使用 userdel 来删除,否则很麻烦!那么应该如何设定呢?再回去瞧一瞧 /etc/shadow 的架构,可以知道有这几个可使用的方法:

    • 将 /etc/passwd 的 shell 字段写成 /sbin/nologin ,即可让该账号暂时无法登入主机;
    • 将 /etc/shadow 内的密码字段,增加一个 * 号在最前面,这样该账号亦无法登入!
    • 将 /etc/shadow 的第八个字段关于账号取消日期的那个,设定小于目前日期的数字,那么他就无法登入系统了!
  • 我在使用 useradd 的时候,新增的账号里面的 UID, GID 还有其他相关的密码控制,都是在哪几个文件里面设定的?
    在 /etc/login.defs 还有 /etc/default/useradd 里面规定好的!

      UID:/etc/passwd,/etc/shadowGID:/etc/group,/etc/gshadow
    
  • 我希望我在设定每个账号的时候( 使用 useradd ),预设情况中,他们的家目录就含有一个名称为 www 的子目录,我应该怎么作比较好?

    mkdir /etc/skel/WWW
    
  • 简单说明系统账号与一般用户账号的差别?
    系统账号的shell一般都是/sbin/nologin,无法登录,没有家目录,一般而言,为了让系统能够顺利以较小的权限运作,UID一般再1~999之间

  • 简单说明,为何 CentOS 建立使用者时,他会主动的帮使用者建立一个群组,而不是使用 /etc/default/useradd 的设定?
    不同的 linux distributions 对于使用者 group 的建立机制并不相同。主要的机制分为:

    • Public group schemes: 用户将会直接给予一个系统指定的群组,一般来说即是 users , 可以 SuSE Server 9 为代表;
    • Private group schemes: 系统会建立一个与账号一样的组名!以 CentOS 7.x 为例!
  • 如何建立一个使用者名称 alex, 他所属群组为 alexgroup, 预计使用 csh, 他的全名为 “Alex Tsai”, 且他还得要加入 users 群组当中!

    [root@node-135 ~]# useradd -s /bin/csh -g alexgroup -G users -c "Alex Tsai" alex1
    
  • 由于种种因素,导致你的用户家目录以后都需要被放置到 /account 这个目录下。 请问,我该如何作,可以让使用 useradd 时,默认的家目录就指向 /account ?
    最简单的方法,编辑 /etc/default/useradd ,将里头的 HOME=/home 改成 HOME=/account 即可。

  • 我想要让 dmtsai 这个使用者,加入 vbird1, vbird2, vbird3 这三个群组,且不影响 dmtsai 原本已经支持的次要群组时,该如何动作?

usermod -a -G  vbird1,vbird2,vbird3 dmtsai

该系列目录 --> 【BASH】回顾与知识点梳理(目录)

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

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

相关文章

unittest单元测试

当你在编写测试用例时,可以使用Python内置的unittest模块来进行单元测试。下面是一个逐步指南,帮助你理解如何编写和运行基本的单元测试。 导入必要的模块: 首先,你需要导入unittest模块和需要测试的模块(例如&#xf…

运维监控学习笔记8

在服务器端,我们添加了nginx-server的主机: 在解决Error问题的过程中,我还通过zabbix_get这个命令进行了测试,发现是没有的,后来确认是在web页面配置的过程中,我输错了密码。 yum install zabbix-getzabbi…

uniapp-原生地图截屏返回base64-进行画板编辑功能

一、场景 vue写uniapp打包安卓包,实现原生地图截屏(andirod同事做的)-画板编辑功能 实现效果: 二、逻辑步骤简略 1. 由 原生地图nvue部分,回调返回 地图截屏生成的base64 数据, 2. 通过 uni插件市场 im…

《图解HTTP》——HTTP协议详解

一、HTTP协议概述 HTTP是一个属于应用层的面向对象协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP…

muduo 29 异步日志

目录 Muduo双缓冲异步日志模型: 异步日志实现: 为什么要实现非阻塞的日志

SQL 语句解析过程详解

SQL 语句解析过程详解: 1.输入SQL语句 2.词法分析------flex 使用词法分析器(由Flex生成)将 SQL 语句分解为一个个单词,这些单词被称为“标记“。标记包括关键字、标识符、运算符、分隔符等。 2.1 flex 原…

【CSS 布局】水平垂直方向居中

【CSS 布局】水平垂直方向居中 单行元素 <div class"container"><div class"item"></div> </div>方式一&#xff1a;relative 和 absolute .container {position: relative;height: 400px;border: 1px solid #ccc;.item {posit…

20个互联网用户Python数据分析项目

这篇文章给大家整理了20个互联网用户数据分析的项目。所有收录的项目&#xff0c;进行了严格的筛选&#xff0c;标准有二&#xff1a; 1.有解说性文字&#xff0c;大家能知道每一步在干嘛&#xff0c;新手友好 2.数据集公开&#xff0c;保证大家可以在原文的基础上自行探索 更…

[保研/考研机试] KY96 Fibonacci 上海交通大学复试上机题 C++实现

题目链接&#xff1a; KY96 Fibonacci https://www.nowcoder.com/share/jump/437195121692000803047 描述 The Fibonacci Numbers{0,1,1,2,3,5,8,13,21,34,55...} are defined by the recurrence: F00 F11 FnFn-1Fn-2,n>2 Write a program to calculate the Fibon…

【STM32】FreeRTOS互斥量学习

互斥量&#xff08;Mutex&#xff09; 互斥量又称互斥信号量&#xff08;本质也是一种信号量&#xff0c;不具备传递数据功能&#xff09;&#xff0c;是一种特殊的二值信号量&#xff0c;它和信号量不同的是&#xff0c;它支持互斥量所有权、递归访问以及防止优先级翻转的特性…

人文景区有必要做VR云游吗?如何满足游客出行需求?

VR云游在旅游行业中的应用正在快速增长&#xff0c;为游客带来沉浸式体验的同时&#xff0c;也为文旅景区提供了新的营销方式。很多人说VR全景展示是虚假的&#xff0c;比不上真实的景区触感&#xff0c;人文景区真的有必要做VR云游吗&#xff1f;我的答案是很有必要。 如果你认…

【跟小嘉学 Rust 编程】十二、构建一个命令行程序

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于K邻近算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种简单但常用的机器…

Redis基础学习

目录 第一章、Redis数据库的下载和安装1.1&#xff09;nosql数据库和 Redis 介绍1.2&#xff09;Windows中下载安装Redis数据库1.3&#xff09;Linux中安装Redis数据库1.4&#xff09;Linux中启动redis1.5&#xff09;Linux中关闭redis 第二章、三种Redis客户端连接Redis数据库…

安全远控如何设置?揭秘ToDesk、TeamViewer 、向日葵安全远程防御大招

写在前面一、远程控制&#xff1a;安全性不可忽略二、远控软件安全设置实测◉ ToDesk◉ TeamViewer◉ 向日葵 三、远控安全的亮点功能四、个人总结与建议 写在前面 说到远程办公&#xff0c;相信大家都不陌生。远程工作是员工在家中或者其他非办公场所上班的一种工作模式&…

传输层协议

传输层协议 再谈端口号端口号范围划分认识知名端口号两个问题netstatpidof UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议 TCP协议TCP协议段格式确认应答(ACK)机制超时重传机制连接管理机制理解 CLOSE_WAIT 状态理解TIME_WAIT状态解决…

修改el-select和el-input样式;修改element-plus的下拉框el-select样式

修改el-select样式 .select_box{// 默认placeholder:deep .el-input__inner::placeholder {font-size: 14px;font-weight: 500;color: #3E534F;}// 默认框状态样式更改:deep .el-input__wrapper {height: 42px;background-color: rgba(0,0,0,0)!important;box-shadow: 0 0 0 …

OptaPlanner笔记6 N皇后

N 个皇后 问题描述 将n个皇后放在n大小的棋盘上&#xff0c;没有两个皇后可以互相攻击。 最常见的 n 个皇后谜题是八个皇后谜题&#xff0c;n 8&#xff1a; 约束&#xff1a; 使用 n 列和 n 行的棋盘。在棋盘上放置n个皇后。没有两个女王可以互相攻击。女王可以攻击同一水…

如何做好一名网络工程师?具体实践?

预防问题 – 资格与认证 在安装线缆或升级网络时测试线缆是预防问题的有效方式。对已安装布线进行测试的方法有两种。 资格测试确定布线是否有资格执行某些操作 — 换言之&#xff0c;支持特定网络速度或应用。尽管“通过”认证测试也表明按标准支持某一网络速度或应用的能力…

Redux - Redux在React函数式组件中的基本使用

文章目录 一&#xff0c;简介二&#xff0c;安装三&#xff0c;三大核心概念Store、Action、Reducer3.1 Store3.2 Reducer3.3 Action 四&#xff0c;开始函数式组件中使用4.1&#xff0c;引入store4.1&#xff0c;store.getState()方法4.3&#xff0c;store.dispatch()方法4.4&…