如何在 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...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...

aurora与pcie的数据高速传输
设备:zynq7100; 开发环境:window; vivado版本:2021.1; 引言 之前在前面两章已经介绍了aurora读写DDR,xdma读写ddr实验。这次我们做一个大工程,pc通过pcie传输给fpga,fpga再通过aur…...
window 显示驱动开发-如何查询视频处理功能(三)
D3DDDICAPS_GETPROCAMPRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含特定视频流上特定 ProcAmp 控件属性允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视频流的 ProcAmp 控件属性指定DXVADDI_QUER…...