在 Ubuntu 中,sudo 允许授权用户以 root 级别权限执行任务,即使他们不知道 root 用户密码。这对于执行管理任务非常重要,因为它可以避免直接使用 root 用户,从而减少系统被误操作的风险,同时在企业生产中由于ubuntu系统都是root的用户名,为了防止被爆破也是要减少root用户的ssh连接,转为提供拥有sudo权限的用户!!!

概念

        在Linux操作系统中,有一个特殊的用户叫做 root,root用户可以在系统中做任何事情。权限太大,可以对系统进行任意操作。例如:删除系统文件等危险操作。为了避免误操作导致系统崩溃或数据丢失,我们一般不使用超级用户账号进行日常操作。

        因而创建一个普通用户并将他添加到 sudo 用户组以执行管理任务很重要的原因,因此,该用户在运行以 sudo 为前缀的命令时,既可以作为普通用户,也可以作为拥有root权限的管理用户。

        其次管理员权限可以很容易地授予用户,如果不再需要,可以随时撤销。(centos系统禁止root用户ssh登录)ubuntu系统默认禁用 root 用户,外来用户没法对root用户发起暴力攻击。

        再者,进入sudo 会话后,一定时间内超时,从而失去管理用户的权限。因此,其他用户无法执行任何进一步的管理任务。默认情况下,在当前会话中记住 sudo 密码 15 分钟。

以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作

地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录

相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客

驱动操作:ubuntu22.04系统 cuda驱动版本过高,更换驱动的方法 (常规通用)-CSDN博客

接下来跟着我进行实操

一、在 Ubuntu22.04系统中添加新用户

其他ubuntu版本大同小异,如ubuntu20.04、18.04基本无异

首先创建普通用户

在普通用户下

sudo adduser user 
#user替换为自己需要的用户名字!

在root用户下

adduser user
#user替换为自己要新建的用户名

两者效果一直,如下图

在New password 和 Retype new password 中输入新建用户的登录密码即可

 Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 

设置密码后,需要设置账户信息,默认回车即可, 输入y  用户创建就完成了

添加用户后,默认会在/home路径下创建一个与用户名相同的用户目录。

二、确认新建用户有无sudo权限

        由于新建的用户是普通用户,是没有sudo权限,我们是一定要记得要授权,否则新建的用户是不能管理系统中的任何任务

sudo -l -U roots
#roots更换为新建的用户名

三、授权sudo权限

将新建的用户添加到sudo组中即可获取sudo权限

方法一

sudo adduser roots sudo

不要妄想直接从步骤一的后面加上sudo就以为可以授权了,没有新建用户,这条命令走不通的

方法二

sudo usermod -aG sudo roots

检测新建用户是否加入到sudo中

sudo -l -U roots

        (ALL:ALL)ALL   表示该roots用户拥有无限权限,可以在系统上运行任何命令,表明roors已被添加到sudo 用户组中,他可以执行各种管理任务。

打开sudoers文件

sudo cat /etc/sudoers

可以看到下面的几行

其中

第一个行  User privilege specification    ALL 是允许的用户。

第二行 ALL 是主机。相同的sudoers文件分发给许多主机,相同的sudo用户组可以在所有主机上执行管理命令。

第三行是运行命令时的用户。

最后一行是允许的命令。

此处注意,在Debian系统中,创建新的sudo用户前,需要安装sudo包

在Debian系统中安装sudo包

apt install sudo

ubuntu桌面版和服务器版都是默认安装了sudo包

四、验证sudo权限是否生效

切换用户

由root用户切换到普通账号

sudo su roots
#roots替换为要切换的用户名

由普通用户切换到root用户

sudo su root

注意:切换为root用户时,输入的是root用户的密码,如若还没有设置root的用户密码,先对root用户进行密码设置,否则无法登录root用户

方法一 

在有sudo权限的用户下输入

sudo -i
#进入root用户
passwd
#修改root密码
exit
#推出root

方法二

在有sudo权限的用户下输入

sudo passwd root

以上完成,下面继续

切换当前用户

sudo -i -u roots
#roots换成自己新建的用户

sudo apt-get update
#用sudo命令更新软件包

成功更新,说明新建的roots用户拥有sudo权限

以上完成

五、移除sudo权限

        移除sudo权限,并非删除用户,在ubuntu系统中,sudo组至少有一个用户拥有sudo权限

在移除对应的用户的sudo权限时,确保对应的用户没有在登录

方法一

sudo deluser roots sudo
#roots更换为要移除sudo权限的用户名

        此命令只会从 sudo 组中删除用户 roots,但不会从系统中永久删除用户,换句话说,roots用户从高权限的管理用户变成了最底层的普通用户

方法二

也可以通过下面的命令移除sudo权限

sudo gpasswd -d roots sudo
#roots替换对应的用户名

通过以下命令验证是否移除成功

sudo -l -U roots
#roots替换移除sudo权限的用户名

成功

可以通过步骤四,反向验证sudo权限是否真的被移除了,这里就提供结果,不重复讲解如何切换用户了

失去sudo权限后 如下图

六、在系统中删除用户

        上面五个步骤只是在sudo组中加入用户和移除用户,并未把新建的用户给删掉,roots用户还是可以正常登录机器,接下来要想真正删除roots用户,需要拥有sudo权限的用户或在root用户下进行真正的删除用户   

sudo deluser roots
#roots替换为要删除的用户名

删除时确保没有roots用户在登录,否则会删除失败

以下是删除成功

若要删除用户的数据  移除/home目录下已删除的用户的数据  这部要优先与上面删除用户的那一步

sudo deluser --remove-home roots
#roots替换为要删除的用户的数据

不然  会提示没有该用户  接下来就只能通过rm -rf 移除对应的文件夹资料

sudo rm -rf /home/roots/

其他详情

在系统中输入

#man adduser
#man deluser
#man sudo
#查看各个的使用手册和方法

请各位帅哥美女们多多支持!!小花花小心心  更多入门知识慢慢补充啦

后期持续关注!

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

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

相关文章

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1

问题描述使用git bash, cmd运行npm都可以,但是用Power Shell运行npm,却报错:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/…

【面经】实习经历

文章目录一、求职准备篇1.1提升技术水平1.1.1学什么?1.1.2怎么学?1.2做项目1.3做简历1.4找实习二、求职难度篇找实习难不难?笔试面试三、实习内容篇新人入职 -- 学会看代码参与小需求实习日常实习到底难不难?四、总结 一、求职准备…

The Missing Semester of Your CS Education 学习笔记以及一些拓展知识(二)

文章目录The Missing Semester of Your CS Education 学习笔记以及一些拓展知识Bash脚本笔记部分一些在Bash脚本中的常用命令补充常用标准输入输出命令常用环境变量(普通变量)控制命令常用系统时间信息获取命令常用函数执行状态控制命令常用脚本执行控制命令Bash脚本的创建和运…

教育科技内容平台的用户定位与产品方案:从需求到解决方案的精准匹配

教育科技内容平台的用户定位与产品方案:从需求到解决方案的精准匹配打造一款成功的内容平台,核心在于 “懂用户”—— 明确不同用户的需求场景、使用目的,才能设计出真正有价值的产品功能。本文以面向互联网从业者的教育科技内容平台为例&…

网络之路16:认识虚拟化环境H3C CAS

正文共:3888 字 54 图,预估阅读时间:6 分钟目录网络之路第一章:Windows系统中的网络0、序言1、Windows系统中的网络 1.1、桌面中的网卡 1.2、命令行中的网卡 1.3、路由表 1.4、家用路由器网络之路第二章:认识企业设备2…

Sklearn 机器学习 IRIS数据 理解分类报告

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Sklearn 机器学习 IRIS 数据分类报告解读 鸢尾花(Iris)数据集是机器学习入门中最经典…

ni-app 对鸿蒙的支持现状

自 HBuilderX 4.27 版本开始,uni-app 支持 Harmony Next 平台的 App 开发,目前仅支持 Vue3 项目编译到鸿蒙平台。uni-app x 从 4.61 版本起支持纯血鸿蒙,即 Harmony NEXT,其组件、API、CSS 与 Android 和 iOS 基本拉齐。 开发与配…

docker 容器学习

笔者来介绍一下docker 容器的学习1、docker容器背景 docker 里面有两个概念,镜像可看成一个类,而容器则是镜像的一个实例,从这个来看,那么一般镜像是一个,而容器可以有很多个。 镜像:带一堆工具链的操作系统…

MongoDB社区版安装(windows)

下载地址 官网: MongoDB: The World’s Leading Modern Database | MongoDB 8.0.11版本下载地址: https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.0.11.zip 安装 解压安装包 解压结果目录如下: bin目录介绍 文件名称作用…

Git上传与下载GitHub仓库

新建GitHub仓库 … 本地上传GitHub 第一步:git add .第二步:git commit -m your content第三步:git push xxx main或者git push xxx master 对于第三步,首先看自己建立的仓库是master分支,还是main分支。以前都是默认m…

OpenCV 官翻 3 - 特征检测 Feature Detection

文章目录理解特征目标解释Harris角点检测目标理论OpenCV 中的 Harris 角点检测器亚像素级精度角点检测练习Shi-Tomasi角点检测器与优质跟踪特征目标理论基础代码SIFT(尺度不变特征变换)简介目标理论1、尺度空间极值检测2、关键点定位3、方向分配4、关键点…

2️⃣处理文本数据

本章介绍 为大语言模型的训练准备文本数据集将文本分割成词和子词token字节对编码(Byte Pair Encoding,BPE):一种更为高级的文本分词技术使用滑动窗口方法采样训练示例将tokens转换为向量,输入到大语言模型中 文章目录本章介绍2.1 理解词嵌入2.2 文本分词2.3 将tok…

TestCase Studio - 自动生成测试用例详解

你是否也曾为编写测试用例而头疼?点击按钮、填写表单、截图说明——这些重复操作让人心生倦意。 而现在,只需动动鼠标,TestCase Studio 就能自动录制你的 Web 操作,生成清晰的“Plain English”步骤、截图和定位器,彻…

Rust+ChatBoxAI:实战

Chatbox AI Chatbox AI 是一款基于人工智能技术的智能助手工具,旨在通过自然语言交互帮助用户完成多种任务。以下是其核心功能与特点: 功能概述 多模型支持:可连接 OpenAI、Claude、Gemini 等主流大语言模型,用户能自由切换不同 AI 服务。 本地运行:支持离线使用,数据隐…

服务器与工控机的区别解析

服务器和工控机虽然都是计算机,但它们的设计目标、使用环境和核心特性有本质的区别,就像轿车和越野车虽然都是车,但用途和构造截然不同。以下是它们的主要区别:核心设计目标:服务器: 数据处理、存储、网络服…

【大模型】深入解析大模型推理架构之 Prefill-Decode Disaggregation (PD分离)

深入解析大模型推理架构之 Prefill-Decode Disaggregation (PD分离) 文章目录深入解析大模型推理架构之 Prefill-Decode Disaggregation (PD分离)1 从统一到分离,推理架构为何演进?2 什么是Prefill-Decode分离?3 PD分离系统的工作流程4 PD分离…

D3动画--动态绘制文本下划线,支持自定义曲线

前言:在现实生活中,看书的时候,在文本的下面画个波浪线,画个横线,是很常见的行为。本篇文章使用D3动画来实现一个给文本绘制下划线的效果,可以暂停绘制,继续绘制,重新绘制&#xff0…

单表查询-分页提前获取数据

1、 问题 以下的例子如何优化呢&#xff1f; SELECT * FROM(SELECT INNER_TABLE.*, ROWNUM OUTER_TABLE_ROWNUM FROM (SELECT t1.* FROM ( SELECT * FROM T1 ) t1 WHERE 1 1 ORDER BY T1.TTIME DESC)INNER_TABLE ) OUTER_TABLE WHERE OUTER_TABLE_ROWNUM<25AND OUTER_TA…

Oracle触发器:数据世界的“隐形守护者“

今天&#xff0c;我想和大家聊一个在Oracle数据库领域既强大又神秘的话题——触发器&#xff08;Trigger&#xff09;​。在座的各位可能都写过SQL语句&#xff0c;做过表结构设计&#xff0c;甚至用过存储过程&#xff0c;但有很多人对触发器的态度可能是"既爱又怕"…

Python桌面版数独游戏(三版)-增加难易度模式

数独游戏难度模式解析 在数独游戏中&#xff0c;难度通常由已知数字&#xff08;提示数&#xff09;的数量决定。难度越高&#xff0c;已知数字越少&#xff0c;玩家需要推理的步骤越多。以下是不同模式下的算法区别和核心代码解析。 文章目录数独游戏难度模式解析1. **难度模…