别名与用户管理体系

news/2024/12/25 13:20:49/文章来源:https://www.cnblogs.com/liaofy/p/18529005

别名与用户管理体系

1. 概述

  • 别名,给命令进行设置

  • 一般用于给命令设置一个昵称/爱称.ll ls -l color=auto

  • 应用场景:

    • 给常用命令设置个快捷方式,使用简单方便
  • 给危险命令加上的防护措施.

1.1 如何创建别名--给rm设置别名

  • 只要运行rm就提示 rm is dangerous,pls use mv.
  • 需求只有运行rm,就执行echo 命令

1.0 查看系统已有的别名

alias #查看所有别名。alias ll #查看ll别名对应的命令。

1.1 如何输出提示信息

echo rm is dangerous,pls use mv.

1.2 设置别名

alias rm='echo rm command is not found'
# 设置别名
alias 昵称='命令'
alias rm 
alias rm='echo rm command is not found'

1.3 测试

rm -fr /oldboy/oldboy.txt
rm command is not found -fr /oldboy/oldboy.txt

如果想真的删除文件(临时取消别名):

🅰 使用命令绝对路径 /bin/rm

🅱 使用撬棍(反斜线) \别名

\rm /oldboy/oldboy.txt

1.4 永久生效

一般命令行的操作都是临时,重启或重新登录失效了。

这时候我们要记得让配置永久生效,修改配置文件。

  • 修改配置文件 ~/.bashrc (当前用户生效)

    /etc/profile (全局)

# 修改/etc/profile 
在最后一行写入配置别名的命令。
alias rm='echo rm command is not found'# 让配置文件生效(source目前仅用于profile文件)
source /etc/profile# 检查别名
alias  rm 
alias rm='echo rm command is not found'#未来除了rm,cp,mv命令的别名,配置到此为止。
对于rm,cp,mv命令的别名,还要额外配置下,否则不生效。#注释掉~/.bashrc里面已经配置的别名
修改~/.bashrc 注释 #a lias rm='rm -i' 这一行# 检查注释结果
[root@oldboy-lnb-king-v3 ~]# grep 'rm' ~/.bashrc
#alias rm='rm -i'

​ 关于井号# 表示注释,#号之后的内容系统认为不存在,会忽略掉。

​ 关于别名生效:重新登录即可,断开连接然后重新连接。

2. 用户管理

  • 核心内容:命令
    • Linux用户概述与分类,UID,GID
    • Linux用户相关文件/etc/passwd每一列含义
    • 用户增删改查命令
    • 故障案例:命令行灵异的提示-bash-4.2$
    • sudo管理
    • 堡垒机

2.1 用户管理概述

1.1 概述

  • 各种系统中都有用户,win(administrator),Linux系统中是 有各种类型的用户的.
  • 未来大部分操作使用root实现,进行系统管理的时候都使用root 造成管理混乱.
  • 推荐使用普通用户,提升系统安全.
  • 简单来说:未来Linux系统会有各种的用户,每个用户都有自己 的用途,root最高权限用户,普通用户,虚拟用户。
  • Linux系统是一个多用户系统.

1.2 UID , GID

Linux中的用户是有一个标记,类似于身份号码一样的东西,叫做UID和GID. 一般情况下UID和GID要唯一。

  • UID user id 用户的id号,身份证号码.
  • GID group id 用户组id号,户口本号码.

1.3 用户分类

UID , GID 规律

用户分离 分类方法(uid)
root uid是0
普通用户 uid1000(C7之后)(原来的系统C5,C6 >= 500),手动创 建,无法对系统进行更改,只能在当前家目录有权限.
虚拟用户 uid <1000, 也叫傀儡用户, 用于服务,进程运行使用的用 户,无法直接使用 .

温馨提示: uid是分类的1种方法.

2.2 用户相关的文件

Linux下面每创建1个用户,一般会影响下面几个文件。

用户相关的文件 说明
/etc/passwd 存放用户信息
/etc/shadow 存放密码信息
/etc/group 用户组信息
/etc/gshadow 用户组密码信息,几乎不会给用户组设置密码
  • /etc/passwd每一列含义

image

  • /etc/shadow
第1列是用户名
第2列是密码
第3列及以后是密码过期时间,默认是不过期。
  • /etc/group
root:x:0:oldboy
bin:x:1:
daemon:x:2:第1列是用户组的名字:默认是和用户名一致。
第2列是密码
第3列是gid
第4列是空,这个组里面有什么额外的用户?

2.3 用户管理指令

  • 增加
  • 删除
  • 修改
  • 查看

3.1 增加

创建用户:必会

  • useradd
useradd选项 说明
- u 指定用户uid
- s 指定命令解释器,默认是/bin/bash
- M 不创建家目录
# 添加用户 oldboy
useradd oldboy 
grep 'oldboy' /etc/passwd# 创建用户mysql指定uid 1314指定命令解释器/sbin/nologin不创建家目录 创建虚拟用户
useradd  -u 1314 -s /sbin/nologin -M   mysql [root@myvps ~]# grep 'mysql' /etc/passwd /etc/group /etc/shadow
/etc/passwd:mysql:x:1314:1314::/home/mysql:/sbin/nologin
/etc/group:mysql:x:1314:
/etc/shadow:mysql:!!:19955:0:99999:7:::
[root@myvps ~]# ll /home/mysql
ls: 无法访问/home/mysql: 没有那个文件或目录[root@myvps ~]# id mysql (只能加一个用户)
uid=1314(mysql) gid=1314(mysql) 组=1314(mysql)
id 也可以看用户是否存在

id 也可以看用户是否存在

虚拟用户:命令解释器是 /sbin/nologin 和不创建家目录

  • passwd 修改密码
[root@myvps ~]# passwd  修改当前密码
[root@myvps ~]# passwd oldboy 
更改用户 oldboy 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

passwd 后面跟用户

passwd选项 说明
--stdin 非交互式设置密码
# 给oldboy 用户设置密码
passwd oldboy# 非交互式设置密码,用于批量修改密码。(只能在root中用)
echo 1 | passwd --stdin oldboy
  • su 切换用户
su -oldbou# 退出当前用户
ctrl + d # 相当于logout命令su switch user 切换用户

  ⚠ 温馨提示: 关于su - 与su命令

 su命令中的-,是su命令的选项: -, -l, login

 切换用户的时候,更新用户的配置与环境变量。

3.2 删除

⚠ 尽量笔避免使用,通过注释这个用户信息实现.

  • userdel
userdel选项
默认不会删除家目录和相关的文件,比如邮箱
- r 删除用户及家目录⚠
-d 查看家目录
# 删除用户
[root@myvps ~]# userdel mysql 
[root@myvps ~]# grep 'mysql' /etc/passwd# 彻底删除用户包含家目录
[root@myvps ~]# useradd yang666
[root@myvps ~]# ll -a /home/yang666/
总用量 12
drwx------. 2 yang666 yang666  62 8月  20 16:41 .
drwxr-xr-x. 8 root    root     91 8月  20 16:41 ..
-rw-r--r--. 1 yang666 yang666  18 4月   1 2020 .bash_logout
-rw-r--r--. 1 yang666 yang666 193 4月   1 2020 .bash_profile
-rw-r--r--. 1 yang666 yang666 231 4月   1 2020 .bashrc
[root@myvps ~]# userdel -r yang666 
[root@myvps ~]# ll -a /home/yang666
ls: 无法访问/home/yang666: 没有那个文件或目录

3.3 修改-了解

  • passwd 修改密码。必会
  • usermod 用于于修改用户信息,用户已经存在,useradd添加的时候指定的信息. 很少用。
[root@oldboy-king-v2 ~]# useradd oldboy
[root@oldboy-king-v2 ~]# grep oldboy /etc/passwd
oldboy:x:1000:1000 :/home/oldboy:/bin/bash
[root@oldboy-king-v2 ~]# su - oldboy
[oldboy@oldboy-king-v2 ~]$ 登出
[root@oldboy-king-v2 ~]# usermod -s /sbin/nologin   oldboy
[root@oldboy-king-v2 ~]# grep oldboy /etc/passwd
oldboy:x:1000:1000 :/home/oldboy:/sbin/nologin
[root@oldboy-king-v2 ~]# su - oldboy
上一次登录:五 7月 22 11:10:59 CST 2022pts/0 上
This account is currently not available.
[root@oldboy-king-v2 ~]# usermod -s /bin/bash   oldboy
[root@oldboy-king-v2 ~]# grep oldboy /etc/passwd
oldboy:x:1000:1000 :/home/oldboy:/bin/bash

3.4 查看用户

  • id 查询用户的uid,gid,用户组信息,检查用户是否存在

  • whoami 查询当前用户的名字

  • w 查看当前登录的用户的信息

  • last 用户的登录情况.

  • lastlog 所有用户最近1次登录情况.

  • id

# id 查看用户id信息 uid gid 属于的用户组  判断用户是否存在
# id 查看用户id信息 uid gid 属于的用户组 判断用户是否存在
[root@myvps ~]# id oldboy 
uid=1002(oldboy) gid=1002(oldboy) 组=1002(oldboy)
[root@myvps ~]# usermod -G root oldboy    #让oldboy用户属于oldboy组和rootzu
[root@myvps ~]# id oldboy 
uid=1002(oldboy) gid=1002(oldboy) 组=1002(oldboy),0(root)
[root@myvps ~]# usermod -G '' oldboy 	#把oldboy从root组踢出
[root@myvps ~]# id oldboy 
uid=1002(oldboy) gid=1002(oldboy) 组=1002(oldboy)
[root@myvps ~]# 
  • whoami
查看当前用户的名字也可以用于获取当前用户的名字。
  • w 命令,查询谁登录了系统并且正在干啥,系统运行时间,负载信息

替代了uptime

image

  • last , lastlog 查看用户登录情况
    • last 显示所有用户的登录信息
    • lastlog 显示所有用户最近1次的登录信息

3.5. 用户组命令(了解)

  • 创建用户组 groupadd
  • 使用场景:指定用户的uid和gid的时候可以使用groupadd
    • 创建组指定gid groupadd -g 1315 yang996
    • 创建用户指定uid与用户组 useradd -u 1315 -g yang996 -s /sbin/nologin -M yang996
案例 创建uid,gid都为888 的lidao888虚拟用户
[root@oldboy-lnb-king-v3 ~]# groupadd -g 888   lidao888
[root@oldboy-lnb-king-v3 ~]# useradd -u 888   -g lidao888   -s /sbin/nologin -M
lidao888
[root@oldboy-lnb-king-v3 ~]# id lidao888
uid=888(lidao888) gid=888(lidao888) 组=888(lidao888)

3. 故障案列-命令行 -bash.2$

1.预备姿势/etc/skel/目录

  • 这个目录是Linux新用户家目录的一个模板。
  • 每当我们创建用户的时候,系统会把/etc/skel/下面所有内容,复制到新用户的家目录下面。
  • 其他应用:创建通知文件,告知每个新用户,禁止使用rm等危险命令。

2.原因

命令行:
-bash-4.2$
用户家目录没有,用户家目录下面的配置文件没了 ~/.bashrc ~/.bash_profile

3.解决

  • 通过/etc/skel/.bash* 复制并解决
  • /etc/skel 目录所有新用户的家目录的模板.
cp /etc/skel/.bash* ~
重新登录即可

4.复现故障

#oldboy用户下操作
\rm -fr ~/.bash*
cp /etc/skel/.bash*   ~

4. sudo权限管理

1. 概述

  • Linux系统开发人员要看日志,如何创建用户与授予权限?

    • 解决方案:
    • root权限,权限太大.
    • 普通用户,权限太小.
    • 日志平台
    • 普通用户+尚方宝剑以root权限运行命令。
    • 。。。
  • 这时候请使用sudo(提权)

  • 这时候可以通过普通用户+sudo权限实现这个目标.

  • 授予普通用户以root权限运行,cat,head/tail,more/less,grep.

  • sudo概述:

  • 用于给普通用户配置的命令,配置了sudo权限后普通可以以root权限运行命令。

2. 进行sudo授权与使用

温馨提示:授权sudo,需要使用root

# root 授权配置
visudo   ===背后修改 vi /etc/sudoers 
# 普通用户使用
sudo + 命令
  • 授予oldboy用户,以root权限运行cat,head,tail,more,less,grep权限

精细化授权,可以给开发人员使用。

# root用户授权
visudo   = vim /etc/sudoers
第100行后面
oldboy  ALL=(ALL)     /bin/cat, /bin/head, /bin/tail, /bin/less, /bin/more,
/bin/grep# 过滤检查配置结果
grep oldboy /etc/sudoers# oldboy使用
sudo head /var/log/secure
[sudo] oldboy 的密码:  #输入oldboy密码# 查看普通用户拥有的sudo权限.sudo -l 查看当前用户有什么sudo权限,关注最后2行即可
  • 授予oldboy运行所有命令(root)并且不需要输入密码.

运维自己使用的普通用户

lidao996 ALL=(ALL)     NOPASSWD: ALL
grep lidao996 /etc/sudoers

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

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

相关文章

20222408 2024-2025-1 《网络与系统攻防技术》实验四实验报告

1.实验内容 1.1实验要求 (1)对恶意代码样本进行识别文件类型、脱壳、字符串提取操作。 (2)使用IDA Pro静态或动态分析所给的exe文件,找到输出成功信息的方法。 (3)分析恶意代码样本并撰写报告,回答问题。 (4)对于Snort收集的蜜罐主机5天的网络数据源进行分析,回答问…

SPSS 26 下载与安装教程

SPSS(Statistical Product and Service Solutions),即“统计产品与服务解决方案”,是社会科学研究领域内的翘楚。本教程提供了丰富的数据管理、描述统计、推断统计以及回归分析等功能介绍,界面友好,易学易用; 1、安装包 SPSS 26: 链接:https://pan.quark.cn/s/87f4464…

20222414 2024-2025-1 《网络与系统攻防技术》实验四实验报告

一、实验内容 1.恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具; (2)使用…

[极客大挑战 2019]EasySQL 1 -Xxiaoma解题

0X01:先上解题过程 1:遇到这种题,第一个想到的就是sql注入,直接万能密码就得到flag了。 账户名为:1 or 1=1 # 密码随便输入 即可得到flag0X02:sql注入万能密码原理 SQL注入是一种安全漏洞,攻击者通过在应用程序的输入中插入或者操作SQL命令来改变原有SQL语句的结构,从而…

RISK ANALYSIS

人类健康和安全风险,微生物风险工程,数学建模,风险表征,风险沟通,风险管理和决策,风险感知,可接受性和伦理法律和监管政策,生态风险。@目录一、征稿简介二、重要信息三、服务简述四、投稿须知 一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述 …

20222303 2024-2025-1 《网络与系统攻防技术》实验四实验报告

一、实验内容 (一)恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具; (2)…

20222417 2024-2025-1 《网络与系统攻防技术》实验四实验报告

1.实验内容 1.1恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具; (2)使用超…

Molecular Cellular Biomechanics

主要涉及生物力学领域,包括生物分子、细胞、组织和器官的力学研究。@目录一、征稿简介二、重要信息三、服务简述四、投稿须知 一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述 主要涉及生物力学领域,包括生物分子、细胞、组织和器官的力学研究。 四、…

.NET周刊【11月第1期 2024-11-03】

国内文章 .NET 9 AOT的突破 - 支持老旧Win7与XP环境 https://www.cnblogs.com/lsq6/p/18519287 .NET 9 引入了 AOT 支持,使得应用程序能够在编译时优化,以在老旧 Windows 系统上运行。这项技术通过静态编译,消除运行时的 JIT 编译,加速程序执行。尽管 Windows 7 和 XP 已不…

认识鸿蒙Context

Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area(文件分区)等,以及应用的一些基本方法,例如createBundleContext()、getApplicationContext()等。UIAbility组件和…

鸿蒙项目实战(一):实现首页动态Tab

需求:存在n个tab页,支持动态设置显示指定某几个tab实现如下: 一、定义一个类,定义所有的tab页数据 知识点: 1、类使用export修饰,可以让其他模块引入 2、类内字段 设置 static readonly ,只读静态字段 3、图标文件存于src->main->resources->base->media目录…

关于注册登录注销的jsp实现

这是效果图 代码实现中的数据库建表连接,参考之前的博客, 这里写几个关键点的实现方法这里是添加了点击事件,有两个好处其一是两个图标一直了都是按钮,ui更加美观一点、其二是可以在函数部分添加弹窗比如先弹出登录成功的窗口再提交表单,在期中考试中有地方会用到这里是判…