如何在 Debian VPS 上添加、删除和授予用户 sudo 权限
简介
当你启动一个新的服务器时,会创建一个名为 root 的默认账户。这个用户拥有完全的系统访问权限,应该仅用于管理任务。作为 root 用户,你基本上可以对系统做任何操作,这很强大,但也极其危险。Linux 没有“撤销”按钮。
为了减轻这种风险,我们可以创建一个新用户,该用户权限较低,更适合日常任务。当你需要管理员用户的权限时,可以通过一个名为 sudo 的命令来临时提升单个命令的权限。
本指南将介绍如何在 Debian 系统上创建新用户。我们还将介绍如何允许用户访问 sudo 命令以获取管理员权限,以及如何删除不再需要的用户。
登录服务器
要完成本指南中的步骤,你需要以 root 用户身份登录到你的 Debian 服务器。
如果你创建了一个实例服务器但没有选择嵌入的 SSH 密钥进行身份验证,通常会收到一封包含 root 用户密码的电子邮件。你可以使用这些信息在终端中以 root 用户身份登录到服务器,方法如下:
[本地环境]
ssh root@your_server_ip_address
输入你收到的密码(在你输入密码时屏幕上不会显示任何内容。这是一项安全功能,以防附近的人根据密码长度猜测你的密码)。
如果你配置了服务器使用 SSH 密钥进行身份验证,你可以使用与上述相同的 SSH 过程,但你将自动登录而无需输入密码。请注意,你也不会收到密码邮件。
添加新用户
第一步是添加一个新用户。默认情况下,新用户是非特权用户。这意味着他们只能修改自己家目录中的文件,这正是我们想要的。
如果这是你的第一个新用户,并且你当前以 root 用户身份登录,你可以使用以下语法创建一个新用户:
adduser newuser
如果你以前添加过用户并授予了 sudo 权限,你可以通过使用相同的命令调用 sudo 来创建新用户:
sudo adduser newuser
无论哪种方式,Debian 都会提示你输入有关所创建用户的更多信息。你需要选择的第一部分信息是新用户的密码。
它会要求你选择一个密码,然后通过重复输入来确认(同样,出于安全目的,你在窗口中输入的字符不会显示)。之后,它会要求你输入有关用户的个人信息。你可以随意填写或留空。无论你的决定如何,用户的操作方式都完全相同。输入 ENTER 跳过这些提示并接受输入的值。
访问新用户
完成这些步骤后,你的新用户现在可用。你可以通过输入以下命令注销当前的 root 会话,并通过 SSH 以新用户身份登录:
[本地环境]
exit
这将终止当前的 root 会话,并允许你通过以下命令以 SSH 登录新用户:
[本地环境]
ssh newuser@your_server_ip_address
这次,输入你刚刚为该用户配置的新密码。
另一种快速切换到另一个用户而无需先注销的方法是使用 su 命令。这个命令代表 substitute user,它允许你切换到你想要的用户。你可以这样使用它:
su - newuser
这将要求你输入新用户的密码。当你正确输入后,你将切换到新用户。当你希望退出返回到原始会话时,只需再次输入 exit 命令:
exit
授予用户管理员权限
现在你的系统上有了一个新用户,你需要决定是否允许该用户使用 sudo 执行管理员任务。
如果你创建的用户将成为系统上的主要用户,通常希望启用 sudo 权限,以便进行常规配置和维护。
要将这些权限添加到我们的新用户,我们需要将新用户添加到 sudo 组。默认情况下,属于 sudo 组的用户被允许使用 sudo 命令。
作为 root,运行以下命令将你的新用户添加到 sudo 组(用你的新用户替换下面的高亮词):
usermod -aG sudo sammy
现在,当你以常规用户身份登录时,可以通过输入以下命令以 root 权限执行特定命令:
sudo command_name
系统会提示你输入 你的 用户密码(而不是 root 用户的密码)。然后该命令将以提升的权限执行。
删除用户
如果有多个人在使用你的服务器,你应该为他们创建自己的用户来登录。如果有一个你创建的用户不再需要了,那么删除它非常容易。
作为一个具有sudo特权的普通用户,你可以使用以下语法来删除用户:
sudo deluser --remove-home 用户名
--remove-home 选项将同时删除用户的家目录。
如果你以root用户身份登录,你不需要在命令前添加 sudo:
deluser --remove-home 用户名
结论
添加用户、删除用户和分配sudo特权都是你很可能需要为任何服务器配置的基本任务。通过熟悉这些流程,你将能够更快、更自信地设置你的初始环境。
相关文章:
如何在 Debian VPS 上添加、删除和授予用户 sudo 权限
简介 当你启动一个新的服务器时,会创建一个名为 root 的默认账户。这个用户拥有完全的系统访问权限,应该仅用于管理任务。作为 root 用户,你基本上可以对系统做任何操作,这很强大,但也极其危险。Linux 没有“撤销”按…...
openlayers 入门教程(九):overlay 篇
还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…...
基于Python的高考志愿辅助填报系统
基于Python的高考志愿辅助填报系统是一个利用数据分析和机器学习技术帮助高考生进行志愿填报决策的工具。该系统可以根据考生的分数、兴趣、专业偏好、历史录取数据等因素,为考生提供科学合理的志愿填报建议。以下是设计这样一个系统的步骤和要点。 ### 1. 数据收集…...
使用CMake搭建简单的Qt程序
目录结构 代码 CMakeLists.txt: cmake_minimum_required(VERSION 3.15)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)# set the project name project(xxx)# 设置Qt的路径 # 例如 E:/Qt/Qt/aaa/msvc2019_64 # aaa 为Qt的版本号 set(QT_PATH…...
Qt + VS2017 创建一个简单的图片加载应用程序
简介: 本文介绍了如何使用Qt创建一个简单的图片加载应用程序。该应用程序可以打开图片文件并在界面上显示选定的图片,并保存用户上次选择的图片路径。 1. 创建项目: 首先,在VS中创建一个新的Qt Widgets应用程序项目,并…...
Linux文件搜索工具(gnome-search-tool)
opensuse下安装: sudo zypper install gnome-search-tool 操作界面:...
c++20协程详解(三)
前言 前面两节我们已经能够实现一个可用的协程框架了。但我们一定还想更深入的了解协程,于是我们就想尝试下能不能co_await一个协程。下面会涉及到部分模板编程的知识,主要包括(模板偏特化,模板参数列表传值,模板函数…...
LLM--提示词Propmt的概念、作用及如何设计提示词
文章目录 1. 什么是提示词?2. 提示词的作用3. 如何设计提示词?3.1. 提供详细的信息3.2. 指定角色3.3. 使用分隔符和特殊符号3.4. 提供示例3.5. 少量示例的思维链(COT)模型3.6. 思维树(TOT)模型3.7. 自洽性 …...
59 使用 uqrcodejs 生成二维码
前言 这是一个最近的一个来自于朋友的需求, 然后做了一个 基于 uqrcodejs 来生成 二维码的一个 demo package.json 中增加以依赖 "uqrcodejs": "^4.0.7", 测试用例 <template><div class"hello"><canvas id"qrcode&qu…...
Leetcode 3097. Shortest Subarray With OR at Least K II
Leetcode 3097. Shortest Subarray With OR at Least K II 1. 解题思路2. 代码实现 题目链接:3097. Shortest Subarray With OR at Least K II 1. 解题思路 这一题是题目3095的一个进阶版本,但也就是增加了序列的复杂度而已,要求我们能够在…...
算法系列--递归,回溯,剪枝的综合应用(2)
💕"对相爱的人来说,对方的心意,才是最好的房子。"💕 作者:Lvzi 文章主要内容:算法系列–递归,回溯,剪枝的综合应用(2) 大家好,今天为大家带来的是算法系列--递归,回溯,剪枝的综合应用(2) 一.括号…...
Docker搭建LNMP环境实战(09):安装mariadb
1、编写mariadb部署配置文件 在文件夹:/mnt/hgfs/dockers/test_site/compose下创建文件:test_site_mariadb.yml,内容如下: version: "3.5" services:test_site_mariadb:container_name: test_site_mariadbimage: mari…...
基于Python的微博舆论分析,微博评论情感分析可视化系统,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
Flutter iOS上架指南
本文探讨了使用Flutter开发的iOS应用能否上架,以及上架的具体流程。苹果提供了App Store作为正式上架渠道,同时也有TestFlight供开发者进行内测。合规并通过审核后,Flutter应用可以顺利上架。但上架过程可能存在一些挑战,因此可能…...
实操:driver.js 实现产品导览、亮点、上下文帮助
官网 https://driverjs.com/ 依赖 <script src"https://cdn.jsdelivr.net/npm/driver.js1.0.1/dist/driver.js.iife.js"></script> <link rel"stylesheet" href"https://cdn.jsdelivr.net/npm/driver.js1.0.1/dist/driver.css"/…...
【JavaWeb】Day29.SpringBootWeb请求响应——请求(二)
请求响应 4.数组集合参数 数组集合参数的使用场景:在HTML的表单中,有一个表单项是支持多选的(复选框),可以提交选择的多个值。 4.1 数组 数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即…...
asf是什么格式的文件?用手机怎么打开?
由于手机操作系统和硬件的限制,大部分手机并不直接支持asf文件的播放。因此,如果你想在手机上打开asf文件,你可能需要先将文件转换为手机支持的格式,如MP4。可以通过使用一些视频转换软件来实现,比如野葱视频转换器。 …...
picGo图床搭建gitee和smms(建议使用)
picGoGitee 这个需要下载gitee插件, 因为官方频繁的检索文件类型, 有时候也会失效 如果没有特殊要求平时存个学习的要看图中文字的重要的图片建议就是smms, 免费也够用! 图片存本地不方便, 各种APP中来回传还会失帧损失画质, 所以你值得往下看 picGosmms 建议使用这个, sm…...
LeetCode | 数组 | 二分查找 | 35.搜索插入位置【C++】
题目链接 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出…...
Linux 给网卡配置ip
ip addr | grep eth9 ifconfig eth9 10.0.0.2 netmask 255.255.255.0 up...
从寄存器到库函数:手把手拆解STM32的RCC时钟树(以F103C8T6为例)
从寄存器到库函数:手把手拆解STM32的RCC时钟树(以F103C8T6为例) 在嵌入式开发领域,STM32系列微控制器因其出色的性能和丰富的外设资源而广受欢迎。然而,对于许多开发者来说,STM32的时钟系统(RCC…...
TQVaultAE终极指南:解锁泰坦之旅无限仓库与装备管理新境界
TQVaultAE终极指南:解锁泰坦之旅无限仓库与装备管理新境界 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾在泰坦之旅的冒险中,面对满仓的传…...
JSON数据同步利器:深度解析ogre-software/json-synchronizer的核心原理与应用
1. 项目概述:一个被低估的JSON数据同步利器如果你经常和JSON数据打交道,尤其是在前后端分离、微服务架构或者多数据源集成的场景下,你肯定遇到过这样的烦恼:手头有两份甚至多份JSON数据,它们结构相似,但内容…...
Obsidian-Templates:卡片盒笔记法的终极模板库,构建你的第二大脑
Obsidian-Templates:卡片盒笔记法的终极模板库,构建你的第二大脑 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: https://gitco…...
不止于校验:用HashMyFiles命令行玩转文件批量管理与VirusTotal联动
从本地到云端:HashMyFiles命令行与VirusTotal联动的安全自动化实践 在数字化时代,文件完整性校验和安全检测已成为IT运维、安全分析乃至日常开发中不可或缺的环节。传统图形界面工具虽然直观,但在处理大批量文件或需要自动化集成的场景下显得…...
STM32CubeMX LL库定时器中断避坑指南:为什么你的中断不触发?
STM32CubeMX LL库定时器中断避坑指南:为什么你的中断不触发? 在嵌入式开发中,定时器中断是最基础也最常用的功能之一。然而,当开发者从标准库转向LL库(Low Layer Library)时,往往会遇到各种&quo…...
【高通SDM660平台】Camera 驱动 Bringup 实战:从 DTS 配置到 Vendor 模块集成
1. 高通SDM660平台Camera驱动Bringup概述 当你拿到一块基于高通SDM660平台的新硬件时,Camera驱动的Bringup工作可能会让你感到有些头疼。作为一个在这个领域摸爬滚打多年的工程师,我想分享一些实战经验,帮助你快速点亮Camera功能并完成基础调…...
MLC LLM:大语言模型通用编译部署实战指南
1. 项目概述:当大语言模型遇见“通用编译” 最近几个月,我身边不少做AI应用和部署的朋友都在讨论一个词: MLC LLM 。这可不是一个新的大模型,而是一个旨在解决大语言模型(LLM)部署“最后一公里”问题的开…...
代码转图片怎么实现:代码高亮卡片生成方法
最近在做文章后台时,我遇到一个很实际的问题:编辑器里的代码块虽然能正常显示,但要拿去做分享图、封面图或者文档配图时就不太合适了。 一开始我试过手动截图,但这种方式效率低,而且样式不统一。代码只要改一行&#x…...
用Arduino和MAX30102做个心率血氧仪,从硬件连线到算法调试全流程避坑
从零构建Arduino心率血氧仪:MAX30102实战指南 开篇:为什么选择MAX30102? 在可穿戴健康设备爆发的时代,心率血氧监测已成为智能手环的标配功能。而MAX30102这颗高度集成的光学传感器,正以医用级精度和低功耗特性成为创客…...
