Linux 切换到 Root 用户的方式及差异详解

在 Linux 系统中,切换到 root 用户进行管理和操作是常见需求。不同的切换方法会影响环境变量、工作目录以及加载的配置文件。本文将介绍几种常用的切换方式及它们的特点。


切换到 Root 用户的主要方式

1. sudo su

这是通过 sudo 提权后调用 su 切换到 root 用户的方式。

  • 特点

    • 保留当前用户的环境变量。
    • 切换到 root 用户后,工作目录不变,仍停留在当前目录。
    • 不加载 root 用户的环境配置文件(如 /root/.bashrc/root/.profile)。
  • 适用场景

    • 当需要短暂切换到 root 用户权限,但希望保留当前用户的环境变量时。

2. sudo - su

这是在 sudo su 基础上增加短横线 - 的方式,用于完全模拟登录到 root 用户。

  • 特点

    • 清除当前用户的环境变量,加载 root 用户的完整环境变量。
    • 切换到 root 用户的主目录 /root
    • 加载 root 用户的登录 shell 配置文件(如 /root/.bashrc/root/.profile)。
  • 适用场景

    • 需要完全模拟 root 用户登录环境时,例如测试 root 环境的配置或执行需加载登录环境的操作。

3. sudo -i

sudo -i 是直接通过 sudo 提供的登录 shell 切换方式。

  • 特点

    • 效果与 sudo su - 基本相同。
    • 清除当前用户的环境变量,加载 root 用户的登录环境。
    • 切换到 root 用户的主目录 /root
    • 加载 root 用户的登录 shell 配置文件。
  • 适用场景

    • sudo su - 相同,但语法更短、更直接。

4. sudo -s

sudo -s 提供的是一种非登录 shell 的切换方式。

  • 特点

    • 保留当前用户的环境变量。
    • 切换到 root 用户权限,但不切换目录,仍保留当前目录。
    • 不加载目标用户(root)的登录 shell 配置文件。
  • 适用场景

    • 希望切换到 root 权限,但不改变环境变量和工作目录的快速操作。

差异总结与建议

命令环境变量工作目录登录环境加载适用场景
sudo su保留当前用户环境变量当前目录不加载暂时切换到 root,保留当前环境。
sudo - su加载 root 环境变量/root加载完全模拟 root 登录环境。
sudo -i加载 root 环境变量/root加载sudo su - 相同,语法更简洁。
sudo -s保留当前用户环境变量当前目录不加载切换到 root 权限,快速保留当前环境。
su -c "cmd"根据 - 参数加载环境变量当前目录或 /root根据参数决定单次命令切换到 root,无需进入持续会话。

使用建议:

  • 保留当前环境时:使用 sudo susudo -s,避免影响现有环境变量。
  • 完全模拟 root 环境时:使用 sudo su -sudo -i
  • 单次命令执行:使用 su -c "cmd",切换到 root 仅执行指定命令后返回。

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

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

相关文章

浅谈Redis

2007 年,一位程序员和朋友一起创建了一个网站。为了解决这个网站的负载问题,他自己定制了一个数据库。于2009 年开发,称之为Redis。这位意大利程序员是萨尔瓦托勒桑菲利波(Salvatore Sanfilippo),他被称为Redis之父,更…

element tbas增加下拉框

使用Tabs 标签页的label插槽,嵌入Dropdown 下拉菜单,实现Tabs 标签页增加下拉切换功能 Tabs 标签页 tab-click"事件"(这个事件当中到拥有下拉框的tab里时,可以存一下Dropdown 第一个菜单的id,实现点击到拥有…

SQL-leetcode—1179. 重新格式化部门表

1179. 重新格式化部门表 表 Department: ---------------------- | Column Name | Type | ---------------------- | id | int | | revenue | int | | month | varchar | ---------------------- 在 SQL 中,(id, month) 是表的联合主键。 这个表格有关…

【Address Overfitting】解决过拟合的三种方法

目录 1. 收集更多数据实践方法:适用场景:优缺点: 2. 特征选择方法介绍:实践示例:适用场景:优缺点: 3. 正则化(Regularization)正则化类型:实践示例&#xff1…

面向通感一体化的非均匀感知信号设计

文章目录 1 非均匀信号设计的背景分析1.1 基于OFDM波形的感知信号1.2 非均匀信号设计的必要性和可行性1.2 非均匀信号设计的必要性和可行性 3 通感一体化系统中的非均匀信号设计方法3.1 非均匀信号的设计流程(1)均匀感知信号设计(2&#xff0…

【深度学习】搭建PyTorch神经网络进行气温预测

第一步 数据加载与观察 ①导包 import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim import warnings warnings.filterwarnings("ignore") %matplotlib inline ②加载数据 features pd.read_csv(…

ESP8266 NodeMCU与WS2812灯带:实现多种花样变换

在现代电子创意项目中,LED灯带的应用已经变得极为广泛。通过结合ESP8266 NodeMCU的强大处理能力和FastLED库的高效功能,我们可以轻松实现多达100种灯带变换效果。本文将详细介绍如何使用Arduino IDE编程,实现从基础到高级的灯光效果&#xff…

pycharm踩坑(1)

由于我重装系统,导致我的pycharm需要进行重装,因此我觉得需要记录一下,pycharm的正确使用方法 汉化 汉化很重要,除非你从小就双语教学,不然你看着那些英文就是会消耗大量的精力 我使用的pycharm版本是pycharm-commun…

OpenCV2D 特征框架 (11)特征检测与描述用于检测二值图像中连通区域(即“斑点”或“blob”)的类cv::SimpleBlobDetector的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::SimpleBlobDetector 是 OpenCV 中用于检测二值图像中连通区域(即“斑点”或“blob”)的类。这些连通区域可以是白色前…

Unity自学之旅05

Unity自学之旅05 Unity学习之旅⑤📝 AI基础与敌人行为🥊 AI导航理论知识(基础)开始实践 🎃 敌人游戏机制追踪玩家攻击玩家子弹碰撞完善游戏失败条件 🤗 总结归纳 Unity学习之旅⑤ 📝 AI基础与敌…

浅谈Unity中Canvas的三种渲染模式

Overview UGUI通过 Canvas 组件渲染和管理UI元素。Canvas 是 UI 元素的容器,它决定了 UI 元素的渲染方式以及它们在屏幕上的显示效果。Canvas 有三种主要的渲染模式,每种模式有不同的用途和特点。本文将介绍这三种渲染模式 1. Screen Space - Overlay 模…

Unity中在UI上画线

在UI中画一条曲线 我封装了一个组件,可以实现基本的画线需求. 效果 按住鼠标左键随手一画. 用起来也很简单,将组件挂到空物体上就行了,红色的背景是Panel. 你可以将该组件理解为一个Image,只不过形状更灵活一些罢了,所以它要放在下面的层级(不然可能会被挡住). 代码 可以…

2024.1.22 安全周报

政策/标准/指南最新动态 01 工信部印发《关于加强互联网数据中心客户数据安全保护的通知》 原文: https://www.secrss.com/articles/74673 互联网数据中心作为新一代信息基础设施,承载着千行百业的海量客户数据,是关系国民经济命脉的重要战略资源。…

Mac cursor设置jdk、Maven版本

基本配置 – Cursor 使用文档 首先是系统用户级别的设置参数,运行cursor,按下ctrlshiftp,输入Open User Settings(JSON),在弹出的下拉菜单中选中下面这样的: 在打开的json编辑器中追加下面的内容: {"…

ARM64平台Flutter环境搭建

ARM64平台Flutter环境搭建 Flutter简介问题背景搭建步骤1. 安装ARM64 Android Studio2. 安装Oracle的JDK3. 安装 Dart和 Flutter 开发插件4. 安装 Android SDK5. 安装 Flutter SDK6. 同意 Android 条款7. 运行 Flutter 示例项目8. 修正 aapt2 报错9. 修正 CMake 报错10. 修正 N…

基于海思soc的智能产品开发(视频的后续开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们讨论了camera,也讨论了屏幕驱动,这些都是基础的部分。关键是,我们拿到了这些视频数据之后,…

vue3+webOffice合集

1、webOffice 初始化 1)officeType: 文档位置:https://solution.wps.cn/docs/web/quick-start.html#officetype 2)appId: 前端使用appId 后端需要用到AppSecret 3)fileId: 由后端返回,前端无法生成,与上传文…

2025牛客寒假算法营2

A题 知识点&#xff1a;模拟 打卡。检查给定的七个整数是否仅包含 1,2,3,5,6 即可。为了便于书写&#xff0c;我们可以反过来&#xff0c;检查这七个整数是否不为 4 和 7。 时间 O(1)&#xff1b;空间 O(1)。 #include <bits/stdc.h> using namespace std;signed main()…

记录一次k8s起不来的排查过程

我在k8s集群&#xff0c;重启了一个node宿主机&#xff0c;竟然发现kubelet起不来了&#xff01;报错如下 这个报错很模糊&#xff0c;怎么排查呢。这样&#xff0c;开两个界面&#xff0c;一个重启kubelet&#xff0c;一个看系统日志(/var/log/message:centos&#xff0c;/va…

仿 RabbitMQ 的消息队列3(实战项目)

七. 消息存储设计 上一篇博客已经将消息统计文件的读写代码实现了&#xff0c;下一步我们将实现创建队列文件和目录。 实现创建队列文件和目录 初始化 0\t0 这样的初始值. //创建队列对应的文件和目录&#xff1a;public void createQueueFile(String queueName) throws IO…