sudu提权命令账号安全控制(su命令)执行单个命令并返回原用户、执行多个命令并返回原用户、保持当前环境变量、配置文件/etc/sudoers
su命令
su
命令是 Linux 和 Unix 系统中用于切换用户身份的命令。它允许一个用户变成另一个用户并以该用户的权限运行命令或启动新的 shell 会话。
基本语法
su [选项] [用户名]
用途:
su[选项][-][用户[arg]…]
将有效用户id和组id更改为user的id。
A merely-implies-l。如果没有给出USER,则假定为root。
选项:
-m、 -p,--preserve environment不重置环境变量
-g、 --group<group>指定主要组
-G、 --supp group<group>指定一个补充组
-,-l,--login使shell成为登录shell
-c、 --command<command>使用-c向shell传递单个命令
--session命令<command>使用-c向shell传递单个命令
并且不创建新会话
-f、 --快速传递-f到shell(用于csh或tcsh)
-s、 --shell<shell>如果/etc/shells允许,则运行shell
-h、 --help显示此帮助并退出
-V、 --输出版本信息并退出
常用用法
-
切换到 root 用户:
su -
这个命令将你切换到 root 用户,并执行一个完整的登录 shell。你需要输入 root 用户的密码。
切换到指定用户:
su username
切换到名为 username
的用户。默认情况下,这不会改变环境变量或工作目录。如果你没有提供密码,命令将提示你输入该用户的密码。
切换到 root 用户并保持当前环境:
su
如果当前用户不是 root,则此命令默认切换到 root 用户,并保持当前的工作目录和环境变量。同样地,你需要输入 root 用户的密码。
执行单个命令并返回原用户:
su username -c "command"
这个命令将以 username
用户的身份执行 command
,然后返回到原来的用户。例如:
su -c "whoami" user1
将显示 user1
。
执行多个命令:
su - username -c "command1; command2"
示例
假设你想要以 root
用户身份运行 ls
命令,可以这样做:
su -c "ls" root
注意
su
命令需要有足够的权限才能成功切换用户。通常情况下,普通用户只能切换到自己的账户或者使用 sudo
来暂时获取 root 权限来执行某些命令。
sudo命令
sudo
命令是 Linux 和 Unix-like 操作系统中非常常用的一个命令,它允许用户以其他用户(通常是 root 用户)的身份来执行命令。sudo
提供了一种安全的方式来管理系统的权限,而无需直接登录为 root 用户。
基本语法
sudo [选项] 命令
选项说明
-u
或--user
: 指定以哪个用户的身份来执行命令。-i
或--login
: 执行一个登录 shell,类似于使用su -
。-s
或--shell
: 执行一个 shell,但不执行登录 shell。-l
或--list
: 显示用户可以执行的命令列表。-v
或--validate
: 验证用户是否可以在不重新输入密码的情况下执行命令。-H
或--preserve-env
: 保留当前环境变量(默认情况下,sudo
会清除大部分环境变量)。-E
或--setenv
: 保留当前环境变量,并允许传递额外的环境变量给子进程。-k
或--reset-timestamp
: 清除 sudoers 记录的时间戳文件,这会导致下次运行sudo
时需要重新输入密码。- 选项 “-” 等同于 “--login” 或 “-l”,表示切换用户后进入目标用户的登录shell环境
常用用法
以指定用户身份执行命令:
sudo -u username command
执行多个命令:
sudo -s
这个命令会打开一个 root 用户的 shell 会话。在 shell 中,你可以执行多个命令。
执行登录 shell:
sudo -i
这个命令将以 root 用户的身份执行一个登录 shell。这会加载 root 用户的 shell 配置文件。
查看可执行的命令列表:
sudo -l
这个命令会列出用户可以执行的命令以及与之相关的权限。
验证权限:
sudo -v
这个命令会验证用户是否可以在接下来的一段时间内无需再次输入密码就执行 sudo
命令。
保持当前环境变量:
sudo -E command
这个命令会保留当前的环境变量,并将它们传递给 command
。
注意事项
使用 sudo
时,通常需要输入当前用户的密码。
如果你在 /etc/sudoers
文件中配置了特定的权限,那么某些用户可能会被允许执行特定的命令而无需密码。
修改 /etc/sudoers
文件通常需要使用 visudo
命令,这样可以防止编辑过程中出现错误。
pam_wheel认证模块
默认情况下,任何用户都允许使用su命令,便给了其他用户反复登录尝试root用户密码,这样便增加了安全隐患,便可以借助于pam_wheel认证模块,只允许授权用户使用su命令切换。
将授权使用su命令的用户添加到wheel组,修改/etc/pam.d/su认证配置以启用pam_wheel认证。
sed -i -e 's/^#\?auth.*pam_wheel.so trust use_uid$/auth sufficient pam_wheel.so trust use_uid/' \-e 's/^#\?auth.*pam_wheel.so use_uid$/auth required pam_wheel.so use_uid/' \/etc/pam.d/su
这里解释一下这个命令:
-i
选项表示在原地修改文件。
-e
选项允许我们指定多条 sed 命令。
s/^#\?auth.*pam_wheel.so trust use_uid$/auth sufficient pam_wheel.so trust use_uid/
表示匹配以 #
开头(可选)的行,该行包含 auth
和 pam_wheel.so trust use_uid
,并将其替换为未注释的形式。
同样的逻辑也适用于第二条 sed
命令。
gpasswd -a jingyu wheel
添加授权用户jingyu(在输入用户名与wheel组时是不能tab键补全的。)
启用pam_wheel认证之后,没有加入到wheel组内的其他用户将无法使用su命令
sudo命令 提权-执行权限
在配置文件/etc/sudoers中添加授权
授权配置主要包括用户、主机地址、命令、三个部分,
用户(user):直接授权指定的用户名,或采用%组名的形式(组里的所有用户)
主机(MACHINE):使用此配置文件的主机名称,方便在多个主机间共用一个sudoers文件。
命令(commands):允许授权的用户通过sudo的方式执行的特权命令,(需要写命令程序的决定路径,多个命令之间以逗号“,”进行分隔)
可以在文件末尾添加如:
yourusername ALL=(ALL) NOPASSWD: command
jingyu ALL=(ALL) NOPASSWD: /usr/bin/sh
yourusername
是赋予无密码执行权限的用户名。command
是用户无密码执行的具体命令路径。
上面为赋予jingyu用户sh命令。
sudo 配置记录的命令部分允许使用通配符 “ * ” 、取反符号 “ ! ” ,当需要授权某个目录下的所有 命令或取消其中个别命令时特别有用。
jingyu localhost=/usr/bin/* ,!/usr/bin/sh ,…………
授权jingyu用户可以执行/usr/bin目录下的除sh以外的所有命令程序。
相关文章:
sudu提权命令账号安全控制(su命令)执行单个命令并返回原用户、执行多个命令并返回原用户、保持当前环境变量、配置文件/etc/sudoers
su命令 su 命令是 Linux 和 Unix 系统中用于切换用户身份的命令。它允许一个用户变成另一个用户并以该用户的权限运行命令或启动新的 shell 会话。 基本语法 su [选项] [用户名] 用途: su[选项][-][用户[arg]…] 将有效用户id和组id更改为user的id。 A merely-im…...
【线性代数】【二】2.7 矩阵的秩
文章目录 前言一、向量组的秩二、矩阵的秩三、矩阵的可逆性与秩总结 前言 在前面的内容中,我们已经陆陆续续地给出了秩的概念。本文可以看成是对以往概念与性质的总结,那专门针对秩进行分析。 一、向量组的秩 在笔记2.2中,我们学习了极大线…...
计算机网络部分基础知识
网络协议的意义 单台主机内部的设备之间需要发送和接收消息,那么和相隔很远的两台主机之间发送消息有什么区别呢?两台主机通过网络发送消息,相当于两个网卡设备之间进行通信,最大的区别在于距离变长了。而距离变长带来的结果就是&…...
WESWOO合作的出海企业(一)
分享一些我们在shopify开发上合作的品牌介绍1. **韶音科技(SHOKZ)**: - WESWOO为韶音科技设计了多个产品页面,如OPENFIT、OPENSWIMPRO等,这些页面展示了产品特点、滑动特效、比较功能等,并通过品牌VI统一&a…...
vue 项目中 使用vxe-grid 表格中给表格的表头设置特殊的格式 , 并且给指定的列文字设置颜色
项目场景: 相关背景: vue 项目中 使用vxe-grid 表格中给表格的表头设置特殊的格式,并为指定的列文字设置颜色 实现方案: 具体实现方法及步骤: 一、给表格的表头设置特殊的格式 实现方式一: :header-row-s…...
基于SpringBoot的企业资产管理系统
TOC springboot117基于SpringBoot的企业资产管理系统 系统概述 1.1 研究背景 智慧养老是面向居家老人、社区及养老机构的传感网系统与信息平台,并在此基础上提供实时、快捷、高效、低成本的,物联化、互联化、智能化的养老服务。 随着科技进步&#…...
ps快捷键,学习
ps快捷键图片变的特别大,归位,ctrl0背景图层锁住 选中图层,点击顶部图层,新建,背景图层,确定,就解开了,想在锁住,在点一次...
python代码模拟服务器实验2:IO多路复用select
实验代码的环境是在windows,和linux是有差别的 在Windows系统上,select模块需要传递特定的对象类型,而不是文件描述符。在Unix-like系统上,文件描述符是一个整数,而在Windows上,select期望得到的是socket对…...
修改ubuntu的终端显示语言为英文,界面保持为中文
修改ubuntu的终端显示语言为英文,界面保持为中文 sudo nano /etc/default/locale LANGzh_CN.UTF-8nano ~/.bashrc 在文件未尾加入下列两行 export LANGen_US.UTF-8 export LANGUAGEen在终端执行 source ~/.bashrc之后提示语言就变成英文了...
重塑园区生态,引领产业智慧化新飞跃
中服云智慧园区平台基于工业物联网平台,在园区场景中集中运用云计算、物联网、大数据、人工智能、数字孪生、边缘计算等新一代信息技术。秉承产业主导、业务主导、效率主导的理念,通过一体化子系统集成、智慧化业务管理、可视化运营分析、人性化客户服务…...
WSL 忘记ubuntu的密码
文章目录 1. 以管理员身份打开 PowerShel2.输入命令 wsl.exe -d Ubuntu-20.04 --user root3.输入命令 passwd username 修改用户密码,username即待重置的用户的名称 1. 以管理员身份打开 PowerShel 2.输入命令 wsl.exe -d Ubuntu-20.04 --user root 注意版本号是自…...
github项目-创建一个新分支
在远程仓库创建一个分支实际上是在本地创建一个分支,然后将该分支推送到远程仓库。这是因为在 Git 中,您不能直接在远程仓库创建分支,而需要先在本地创建分支,然后将该分支推送到远程仓库。 以下是创建并推送新分支到远程仓库的步…...
Java设计模式中介者模式的优势与局限性分析
Java设计模式中介者模式的优势与局限性分析 一、引言 在软件工程中,设计模式是一种经过验证的解决方案,用于解决软件开发中常见的问题。设计模式的使用可以提高代码的复用性、可维护性和可扩展性。中介者模式(Mediator Pattern)…...
一、软件工程概述
软件工程概述 1. 软件的概念和特点2. 软件危机的产生3. 软件工程的概念和发展过程4. 软件工程知识体系与职业道德 1. 软件的概念和特点 软件定义 软件程序数据文档。 软件生存周期 问题定义:要解决的问题是什么?可行性分析:对于上阶段所确定…...
第六天:java设计模式、GUI编程与面向对象设计原则
第六天:设计模式、GUI编程与面向对象设计原则 1. 设计模式概述 设计模式的定义:回顾设计模式的定义,即解决特定设计问题的通用解决方案。常见设计模式:了解并掌握几种常见的设计模式,如单例模式、工厂模式、策略模式…...
解读RPA自动化流程机器人
RPA全称Robotic Process Automation,即机器人流程自动化,基于人工智能和自动化技术,能够将大量重复、规则明确的日常事务操作实现自动化处理,通常被形象地称为“数字员工”。本文金智维将深入探讨RPA的主要价值和应用领域…...
Redis17-服务端优化
目录 持久化配置 慢查询 什么是慢查询 如何查看慢查询 命令及安全配置 内存配置 集群优化 持久化配置 Redis的持久化虽然可以保证数据安全,但也会带来很多额外的开销,因此持久化请遵循下列建议: 用来做缓存的Redis实例尽量不要开启持…...
Web语义化及实际应用
你好同学,我是沐爸,欢迎点赞、收藏和关注!今天一起了解下Web语义化及其应用吧! 是什么? 使用合适的标签、属性,让页面能“说话“,让人和机器都能快速理解网页内容。 为什么? 有…...
Linux系统调试课:CPUFreq 中央处理器频率调节技术
文章目录 一、CPUFreq组成二、用户接口三、设备树配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢中央处理器频率调节(Central Processing Unit frequency,CPUFreq)技术可以降低ARM芯片的功耗,例如在系统对任务压力较小时,通过调整处理器工作频率与输入电压的…...
C++之模版初阶
目录 前言 1.泛型编程 2.函数模版 2.1函数模版概念 2.2函数模版格式 2.3函数模版的原理 2.4函数模版的实例化 2.5模版参数的匹配原则 3.类模版 3.1类模版的定义格式 3.2类模版的实例化 结束语 前言 前面我们学习了C的类与对象和内存管理,接下来我们继续学习…...
飞桨paddle API函数scatter详解
飞桨的scatter函数,是通过基于 updates 来更新选定索引 index 上的输入来获得输出,具体官网api文档见: scatter-API文档-PaddlePaddle深度学习平台 官网给的例子如下: >>> import paddle>>> x paddle.to_tens…...
RCE漏洞复现
PHP命令执行常用函数 回调函数必须是命令执行和代码执行的函数,有两个条件 必须是函数,而且需要有函数运行的参数 危害:可以直接删除文件,添加文件,甚至可以添加用户 system --执行外部程序,并且显示输…...
Qt QTabWidget之创建标签页的多页面切换
QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…...
【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出
【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出 文章目录 【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出1.简介2.验证用例3.软件代码4.链接脚本5.编译脚本6.仿真结果6.1 复位结束6.2 运行成功6.3 终端打印 7.总结 1.简介 本文将详细阐述如何利用 printf 来打印字符串…...
时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention
时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 文章目录 前言时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 一、VMD-TCN-BiLSTM-Attention模型1. **…...
Python知识点:如何使用Godot与Python进行游戏脚本编写
在Godot中使用Python进行游戏脚本编写,你需要通过一个插件来实现,因为Godot原生支持的脚本语言是GDScript、VisualScript和C#。这个插件被称为Godot-Python,它允许你在Godot引擎中使用Python编写脚本。以下是详细的步骤指导你如何配置和使用G…...
Spring MVC数据绑定和响应学习笔记
学习视频:12001 数据绑定_哔哩哔哩_bilibili 目录 1.数据绑定 简单数据绑定 默认类型数据绑定 简单数据类型绑定的概念 参数别名的设置 PathVariable注解的两个常用属性 POJO绑定 自定义类型转换器 xml方式 注解方式 数组绑定 集合绑定 复杂POJO绑定 属性为对象类…...
Vulnhub JIS-CTF靶机详解
项目地址 https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 修改靶机的网卡 开机时长按shift,进入此页面 选择root模式进入 将只读模式改为读写模式 mount -o remount,rw / 查看本机的网卡名称 …...
FPGA资源评估
FPGA资源评估 文章目录 FPGA资源评估前言一、资源评估1.1 资源有哪些1.2 资源统计 二、 FPGA 的基本结构三、 更为复杂的 FPGA 架构 前言 一、资源评估 大家在项目中一般会要遇到需要资源评估的情况,例如立了新项目,前期需要确定使用什么FPGA片子&…...
REST framework中Views API学习
REST framework提供了一个APIView类,它是Django的View类的子类。 APIView类和一般的View类有以下不同: 被传入到处理方法的请求不会是Django的HttpRequest类的实例,而是REST framework的Request类的实例。处理方法可以返回REST framework的…...
对网站建设起到计划和指导的作用/最新百度快速排名技术
ubuntu18.04.5设置开机脚本报“/etc/rc.local: 17: /etc/rc.local: exit 0: not found”的问题 最近因工作需要,在编写代码时经常需要使用Android Studiu自带的虚拟机,但是虚拟机本身需要修改权限,使用chmod修改权限又只能暂时生效ÿ…...
自己做网站需要多少钱/网络项目平台
用JNI直接实现CTP API这里记录一下思路,做个纪念。防止以后忘记了~~参考了SWIG的一些做法(就是照抄了基本思路),例如director类(SPI往回调用),比如methodID的数组。但是也有很多不一样的地方(偷懒的),例如C…...
门户网站建设多少钱/运营推广渠道有哪些
效果: 下载 优化版下载: https://pan.baidu.com/s/1mvKGwJsBjXd2hvvi5Rp9pA 用法: import barrage from ../components/barrage.vue<barrage :linecount"3" :data"textlist"></barrage> //linecount属性表示显示几行弹幕 //textlist数据格式为…...
机械厂做网站到底有没有效果/磁力搜索器 磁力猫在线
在设置中搜索python.linting.pylintPath如下 如果使用的是anaconda,在anaconda文件夹中寻找pylint应用程序的安装位置,例如:E:\anaconda\new\pkgs\pylint-2.2.2-py37_0\Scripts 如果没有安装anaconda,先检查是否安装了pylint&am…...
亚马逊跨境电商好做吗/杭州seo俱乐部
Java 理论与实践: 正确使用 Volatile 变量Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。…...