Linux学习笔记 | sudo命令的基本使用

在这里插入图片描述

sudo命令

sudo 命令是 Unix 和 Linux 系统中用于执行需要超级用户权限(即 root 权限)操作的工具。它允许系统管理员授予某些用户(或用户组)以 root 或其他指定用户的权限来运行特定命令,而无需知道 root 用户的密码。这种机制提高了系统的安全性和灵活性。

sudo权限

sudo 的权限配置主要通过 /etc/sudoers 文件进行管理。这个文件定义了哪些用户可以在何种条件下执行什么命令。直接编辑这个文件是有风险的,因为错误的语法可能导致系统无法正常使用 sudo 功能。因此,推荐使用 visudo 命令来编辑该文件,因为它会在保存前检查语法错误。

/etc/sudoers 文件中,你可以设置不同的规则,比如:

用户名被管理主机的地址可使用的身份授权命令(绝对路径)说明
usernameALLALLALL允许用户 username 作为任何用户在任何地方执行任何命令。
usernameALLALL/usr/sbin/reboot, /usr/sbin/shutdown允许用户 username 执行 /usr/sbin/reboot/usr/sbin/shutdown 命令。
huaweiALLALL/bin/ls, /usr/bin/touch允许用户 huawei 执行 lstouch 命令。
  • 用户名:这是你希望赋予 sudo 权限的用户名。
  • 被管理主机的地址:指定用户可以在哪些主机上使用 sudoALL 表示所有主机。
  • 可使用的身份:指定用户可以以哪个用户的身份执行命令。ALL 表示任何用户,包括 root。
  • 授权命令(绝对路径):指定用户可以执行的具体命令。多个命令用逗号分隔。
 visudo

在这里插入图片描述

sudo 命令介绍

基本格式

sudo 的基本格式如下:

sudo [选项] [命令]

常见选项包括:

  • -u username:指定要以哪个用户的身份执行命令,默认为 root。
  • -l (小写 L):列出当前用户可用的 sudo 权限。
  • -v:验证 sudo 时间戳,更新时间戳但不执行命令。
  • -k:使 sudo 忘记时间戳,下次执行 sudo 需要重新输入密码。
  • -s-i:启动一个 shell 会话,在其中拥有超级用户权限。
  • -H:设置 HOME 环境变量为目标用户的 home 目录。

使用示例

  • 以 root 身份运行命令:
    sudo apt update
    
  • 以另一个用户身份运行命令:
[root@cloud ~]# sudo -u admin touch /home/admin//ab.txt
[root@cloud ~]# ll /home/admin/ab.txt
-rw-r--r-- 1 admin admin 0 Oct 24 22:34 /home/admin/ab.txt

在这里插入图片描述

设置普通用户权限

  • 以 root 用户或具有 sudo 权限的用户登录
sudo visudo
  • 打开的编辑器中找到合适的位置(通常在文件末尾)添加以下行
huawei ALL=(ALL) /bin/ls, /usr/bin/touch
  • 切换到huawei用户
 su - huawei
  • 测试去用户权限
[huawei@cloud ~]$ sudo ls /etc/passwd

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for huawei:
/etc/passwd
[huawei@cloud ~]$ sudo touch /root/aa.txt
[huawei@cloud ~]$ sudo ls /root/aa.txt
/root/aa.txt
[huawei@cloud ~]$ sudo ls -l /root/aa.txt
-rw-r--r-- 1 root root 0 Oct 24 22:45 /root/aa.txt

提示和注意事项

  • 密码提示:首次在一个终端会话中使用 sudo 时,系统会要求你输入当前用户的密码,而不是 root 密码。之后的一段时间内(默认是 15 分钟),你可以无需再次输入密码就使用 sudo

  • 权限配置sudo 的权限是由 /etc/sudoers 文件控制的,通常不应该直接编辑此文件,而是应该使用 visudo 命令,它会在保存时检查语法错误。

  • 日志记录sudo 通常会记录所有使用它的尝试到日志文件中,这对于安全审计很有帮助。

  • 谨慎使用:由于 sudo 可以让你执行高权限的操作,所以在使用时要特别小心,确保你知道自己在做什么,以免对系统造成不必要的损害。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑怎么进行全盘加密?

1.使用Windows自带的BitLocker: 打开“控制面板”,选择“系统和安全”,然后点击“BitLocker驱动器加密”。 选择要加密的驱动器,点击“启用BitLocker”。 选择解锁驱动器的方式,通常选择“使用密码解锁驱动器”&…

内盘期货配资牛/文华财经有资管软件吗

文华财经不仅提供行情、交易、资讯于一体的综合性期货交易软件,还针对投资者的资产管理需求,开发了一系列功能强大的资管软件。这些软件的核心功能包括实时行情监控、技术分析工具、交易执行系统以及风险管理模块,全方位满足了期货配资投资者…

Python 函数返回值之None类型

什么是None None是类型‘NoneType’字面量,用于表示:空的、无意义的 函数如何返回None 不使用return语句即返回None 主动return None 使用场景 函数返回值if判断变量定义 练习: 练习一:无return语句的函数返回值 # 无ret…

自动发现-实现运维管理自动化

nVisual-Discovery是一款自动化工具软件,通过多种自动发现技术,协助运维管理人员快速建立可视化的网络文档,提升网络管理的效率与准确性。 01 IP扫描发现 当我们新接手一个网络运维项目,通常缺乏精准的网络文档数据,…

uniapp 引入了uview-ui后,打包错误,主包过大解决方案

原因:由于使用uniapp来设计小程序,使用uview的组件库,导致了主包过大,无法打包 前提条件:已经完成了分包,如果还没有分包的先分包,需要上传代码时用到 1. 通常情况,大多数都是通过点…

Oracle SQL Developer 同时打开多个table的设置

Oracle SQL Developer 同时打开多个table的设置 工具 》 首选项 》数据库 》对象查看器,勾选 “自动冻结对象查看器窗口”

面试题:JVM(一)

1. JVM概述 1.1 JVM的生命周期 说说Java虚拟机的生命周期(阿里) 虚拟机的启动 Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。 虚拟机的退出有如下…

javaScript整数反转

function _reverse(number) { // 补全代码 return (number ).split().reverse().join(); } number :首先,将数字 number 转换为字符串。在 JavaScript 中,当你将一个数字与一个字符串相加时,JavaScript 会自动将数字转换为字符串…

基于SpringBoot的“高校校园点餐系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“高校校园点餐系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台首页功能界面图 用户注册、登录界面图 我…

unity游戏开发之塔防游戏

如何制作塔防游戏 让我们以迷你游戏的形式创建一个休闲塔防。 从基本处理到适用技术,应有尽有,因此您只需制作一次即可获得 Unity 中的游戏制作专业知识。 与背景素材结合使用时,您将获得以下游戏视图: 由于在创建过程中使用了 …

Google DeepMind的研究人员提出了Talker-Reasoner框架

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【复旦微FM33 MCU 外设开发指南】外设篇1——硬件除法器

前言 本系列基于复旦微FM33LC0系列单片机的DataSheet编写,旨在提供一些开发指南。 本文章及本系列其他文章将持续更新,本系列其它文章请跳转【复旦微FM33 MCU 外设开发指南】总集篇 本文章最后更新日期:2024/10/24 文章目录 前言用途工作流…

若依 spring boot +vue3 前后端分离

若依方便之处 如果你需要一个前后端分离管理web系统,可以通过若依快速搭建一个基于spring boot vue的管理系统,当然还有cloud版,和App移动版可供选择,本文搭建的是spring boot vue3.x版本 若依官网 https://www.ruoyi.vip/ 环境…

贪心算法day(1)

1.将数组和减半的最少操作次数 链接:. - 力扣(LeetCode) 思路:创建大跟堆将最大的数进行减半 注意点:double t queue.poll()会将queue队列数字减少一个后再除以2,queue.offer(queue.poll()/…

第十三部分 Java IO

第十三部分 Java IO 13.1 IO概述 13.1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数…

EfficientNet-B6模型实现ISIC皮肤镜图像数据集分类

项目源码获取方式见文章末尾! 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于opencv答题卡识别判卷】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【G…

51单片机完全学习——红外遥控

一、红外接收模块原理 红外接收头内部本身有一个反相,意思就是:平时发送方无信号时接收到的是1,发送方有发送载波时接收头引脚输出的是0,写代码的时候注意这一点。红外协议,你也可以理解成,他对0和1重新做…

Vue学习笔记(五)

Class绑定 数据绑定的一个常见需求场景式操纵元素的CSS class列表,因为class是attribute,我们可以和其他attribute一样使用v-bind将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此&#xf…

【认知智能】编译器1

深度学习编译器是一种专门设计用来优化和加速深度学习模型在各种硬件平台上执行的工具。它们通过将高级深度学习框架(如TensorFlow, PyTorch等)中的计算图转换为针对特定硬件架构优化过的低级代码来实现这一目标。基础架构通常包括以下几个关键组件&…

C语言基础题(大合集2)

1. 时间转换 给定秒数 --> 输出秒数 转化成 时/分/秒 //时间转换 //给定秒数 --> 转换成 小时/分/秒 int main() {//输入int seconds 0;int h 0;//小时int m 0;//分钟int s 0;//秒scanf("%d", &seconds);//计算h seconds / 60 / 60;m seconds / 60…