Linux 中的 su 命令及有用示例

2023-10-25

The su 命令也称为切换用户。该命令用于在登录会话期间成为另一个用户。当没有用户名调用时,su 默认切换到超级用户。基本上,su 命令用于将当前登录的用户更改为另一个用户,而无需从系统注销。

它是 Linux 终端用户经常使用的命令。本教程将通过示例帮助您了解 Linux su 命令的用法。

Syntax:


su [OPTIONS] [USER] [OPTIONAL ARGS...]
  

Linux 中的 su 命令示例

让我们从一个基本的例子开始。我使用用户“root”登录到我的系统,使用验证身份whoami命令。然后使用su命令切换到root用户。再次验证了身份。

whoami                ### Output: rahul

su - root             ### Become root user

whoami                ### Output: root

要知道的事情:

  • 不带用户名调用su命令成为超级用户(root)。
  • 使用连字符 (-) 进行切换调用登录 shell 脚本。这用于提供类似于用户直接登录时获得的环境
  • 当前环境将传递到新 shell,并将有效的环境变量传递给切换用户。

sudo 特权用户还可以在 sudo 前面加上 su 命令。喜欢:

sudo su - root 

有时,您可能只需要切换用户即可运行单个或几个命令。在这种情况下, su 为您提供 -c 选项以另一个用户身份运行命令无需实际切换外壳。

su - root -c "whoami"               ### Output: root

su 命令行选项

Linux su 命令只有很少但非常有用的选项。这些选项在使用自动化任务时非常有用外壳脚本.

  1. -c, --command 使用此选项将 COMMAND 传递到调用的 shell。借助此功能,您可以以其他用户身份运行命令。
  2. -, -l, --login 使新 shell 成为登录 shell。所以所有的环境都会被设置为类似于用户直接登录。
  3. -s, --shell 更改 /etc/passwd 文件中指定的默认 SHELL。
  4. -m, -p, --preserve-environment 使用此选项可以保留环境变量,这在以另一个用户身份临时运行命令时很有帮助。
    1. 结论

      在本教程中,您通过有用的示例学习了 Linux su 命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的 su 命令及有用示例 的相关文章

  • PHP shell 命令输出到变量

    你好 我正在尝试将 Shell 命令传递给 php 中的变量 我正在做 var system ls 它被执行 但输出是 echo 默认情况下不在我使用的变量中 var exe ls or var exec ls 但 print r 只是打印
  • 找不到 docker 命令

    我在Mac上安装了docker 安装成功 它还正在运行 并尝试在终端中执行以下命令 docker v 请参阅以下错误 bash docker command not found 我该如何解决这个问题 在 Windows 中这些命令运行良好
  • 在 Flutter/Dart 中如何将参数从命令行传递到 main ?

    如何运行命令并使用 Flutter Dart 传递一些自定义参数 以便可以在main 调用例如 flutter run device my custom arg 那么我可以通过以下方式访问它 void main List
  • 跳转后 vim 中自动 'zz'

    当我跳转到世界上的任何地方后 无论是在当前文件还是在不同的文件中 是否可以让vim自动运行zz 重新以当前行为中心 在搜索之类的事情之后我想要这个 ctrl o and ctrl i 以及几乎任何运动 除了hjkl Thanks Voila
  • 命令绑定在动态 MVVM 上下文菜单中不起作用

    我是 WPF 新手 像许多其他人一样 我正在尝试绑定一个ContextMenu to an ObservableCollection创建动态上下文菜单 除了绑定之外一切正常Command财产给TheCommand的财产MenuItemVie
  • 通过 Java 执行 ADS 相关的 Powershell 命令不起作用,使用 2 种不同的方式时会出现 2 种不同的错误

    我一直在尝试通过 java 在 powershell 会话中执行一组命令 但还没有成功 我的目标是在 AD 中搜索域为 domain com 的计算机对象 我从一个命令开始 不幸的是 以下命令在我的 powershell 提示符下成功运行
  • Symfony v4、php bin/console 无法按预期工作。自动中止[重复]

    这个问题在这里已经有答案了 我刚刚在我的新 SSD 上安装了 Composer php apache 等 之后我想开始编码 我从 IDE 中的另一个驱动器打开了我的项目 然后我想将我的灯具加载到我的新数据库中 但我不能 我什至无法进行迁移等
  • 命令 test -x 在 ubuntu 中做什么?

    什么是test x从 etc cron daily logrotate 做什么 test x usr sbin logrotate exit 0 usr sbin logrotate etc logrotate conf 它是否测试是否已经
  • 如何在 Linux 中创建别名? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 假设我想为 srm 创建一个别名 安全删除 这样每次使用 srm 时 都会运行交互式 rm 命令 例如rm i 需要对必要的配置文件进行此
  • Sublime Text 2 中的“关闭其他”命令快捷方式

    我正在尝试添加 关闭其他 选项卡的快捷方式 但似乎找不到该命令 这就是我正在尝试的 keys super alt w command close others Cmd Option W sort of like Cmd Option H i
  • 在远程机器上执行多个命令

    在下面的命令中 我尝试 ssh 命令并执行多个命令 如果任何命令失败 即如果 command1 退出 那么如果 command1 和 commnd 2 退出 否则在远程计算机上执行命令 3 我如何退出 我怎样才能做到这一点 ssh logi
  • PHP shell_exec() 与 exec()

    我正在努力理解之间的区别shell exec and exec 我一直用exec 执行服务器端命令 我什么时候使用shell exec Is shell exec 只是一个简写exec 似乎参数更少 效果是一样的 shell exec以字符
  • mifare 卡身份验证错误“6982:安全状态未满足”

    我有 pc sc 读卡器和非接触式卡 mifare 卡 我可以连接到该卡 并且我也成功执行 getdate 命令 但是当我想进行身份验证时 我看到此错误 6982 安全状态不满足 我已经尝试过这 3 个不同的身份验证命令 但所有这些命令都出
  • 如何在c#中使用net user

    我正在尝试将 net user 与 c 一起使用 System Diagnostics ProcessStartInfo proccessStartInfo new System Diagnostics ProcessStartInfo n
  • MVVM 路由和中继命令

    两者有什么区别路由命令 http msdn microsoft com en us library system windows input routedcommand aspx and 中继命令 http msdn microsoft c
  • Django:如何从管理界面调用管理自定义命令执行?

    参考 从代码执行管理命令 https stackoverflow com questions 907506 how can i call a custom django manage py command directly from a t
  • 如何阅读shell命令的源代码?

    我想阅读编写linux命令的实际源代码 我已经获得了一些使用它们的经验 现在我认为是时候与我的机器进行更深层次的交互了 我在这里找到了一些命令http directory fsf org wiki GNU http directory fs
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 使用 su 和 Expect 脚本登录用户时遇到问题

    我正在为一个班级制作一个网站 您可以使用用户名和密码登录 然后它会将您带到一个显示您在班级中的成绩的页面 该网站正在运行bash脚本 https github com jduga002 rapache 并将托管在用户已有用户名和密码登录的计

随机推荐

  • Python while 循环

    循环是编程语言的基本概念之一 当您想要多次重复特定的代码块直到满足给定条件时 循环会很方便 Python中有两种基本的循环结构 for and while loops 本教程涵盖了以下基础知识whilePython 中的循环 我们还将向您展
  • NumPy loadtxt 教程(从文件加载数据)

    在之前的教程中 我们讨论过NumPy 数组 我们看到了它如何使读取 解析和对数字数据执行操作的过程变得轻而易举 在本教程中 我们将讨论 NumPy loadtxt 方法 该方法用于解析文本文件中的数据并将其存储在 n 维 NumPy 数组中
  • Linux Bash 脚本编写第 3 部分 – 参数和选项

    到目前为止 您已经了解了如何编写无需用户输入即可完成工作的 Linux bash 脚本 今天我们将继续我们的 Linux bash 脚本系列 如果您想了解我们在谈论什么 我建议您查看之前的帖子 Bash 脚本基础知识 Bash 脚本 For
  • Pythonnamedtuple(将元组提升到一个新的水平)

    在本教程中 我们将深入研究命名元组 它们是什么 如何创建和操作它们 以及何时使用它们 或不使用它们 命名元组是Python内置的一部分收藏模块 并且它们提供了一种将数据捆绑在一个名称下的便捷方法 它们是 Python 内置元组数据类型的子类
  • 使用 Python 处理 CSV:综合教程

    CSV 逗号分隔值 文件是存储和共享表格数据的最常见方法之一 这些文件由行和列组成 其中每行代表一个记录 列包含由分隔符 通常是逗号 分隔的值 Python 提供了多种内置方法来处理 CSV 文件 使您可以高效地读取 写入和操作数据 本教程
  • Linux Bash 脚本编写第 5 部分 – 信号和作业

    在上一篇文章中 我们谈到了输入 输出和重定向在 bash 脚本中 今天我们将学习如何在Linux系统上运行和控制它们 到目前为止 我们只能从命令行界面运行脚本 但这并不是运行 Linux bash 脚本的唯一方法 这篇文章描述了控制 Lin
  • 使用curl命令的SSL/TLS:安全连接指南

    卷曲命令是一种发出网络请求的工具 它在通过 HTTPS 与安全服务器通信时使用 SSL TLS 默认情况下 curl尝试在可用时使用安全连接 但了解如何控制和诊断这些连接至关重要 目录 hide 1 使用客户端证书 2 指定证书类型 3 使
  • 如何使用 tqdm 创建 Python 终端进度条?

    进度条是估算和显示任务所需时间的宝贵工具 这些也可以添加到您的 Python 脚本或代码块中 以指示代码执行所需的时间 Python 中有多种可用的库 例如progressbar and tqdm可以用于此目的 目录 hide 1 什么是
  • 使用 Linux curl 命令管理 Cookie

    与 Web 应用程序交互时 您会遇到处理 cookie 和会话的需要 在本教程中 您将学习如何使用卷曲命令发送 接收和管理 cookie 目录 hide 1 手动发送 Cookie 标头 2 存储从服务器接收到的 Cookie 3 通过请求
  • 正确理解 Linux 运行级别

    您可以将 Linux 运行级别视为操作系统运行的不同 模式 每种模式或运行级别都有其打开或关闭的进程和服务列表 从 Linux 启动时起 它就始终处于某个运行级别 当您继续使用计算机时 此运行级别可能会发生变化 具体取决于操作系统需要访问的
  • Linux PS1 提示定制终极指南

    PS1 或提示字符串 1 是主要提示变量 它定义 Linux shell 环境中命令行提示的外观和元素 它提供了多个自定义选项 使您的命令提示符信息更丰富且更具视觉吸引力 本教程将讨论这些细节 增强您的命令行界面体验 目录 hide 1 查
  • 11 个令人惊叹的 NumPy Shuffle 示例

    蟒蛇的NumPy包提供了各种用于执行涉及随机性的操作的方法 例如从给定的数字列表中随机选择一个或多个数字的方法 或者生成给定范围内的随机数的方法 或者从给定分布 所有这些方法均在randomNumPy 包的模块 其中一种方法是numpy r
  • 使用 pyenv 管理多个 Python 版本

    pyenv 是一个简单而强大的工具 用于管理多个Python版本 作为一名 Python 开发人员 您可能面临过不同项目需要不同 Python 版本的情况 pyenv 为这个问题提供了一个优雅的解决方案 本质上 pyenv 是一个 Pyth
  • 如何在Ubuntu 20.04上安装Netdata监控工具

    Netdata是一款专为实时系统性能监控解决方案而设计的开源工具 它收集系统活动的实时指标 如 CPU 使用 内存使用 带宽使用和磁盘活动等 并通过图形图表在 Web 界面上显示信息 Netdata官方团队建议安装netdata监控工具使用
  • 用于删除重复数组元素的 JavaScript 程序

    数组是包含一组元素的数据结构 通常这些元素都是相同的数据类型 例如整数或字符串 但在 JavaScript 中 我们可以存储不同类型的元素 使用数组 您可以组织数据 以便可以轻松地对一组相关值进行排序或搜索 本教程向您介绍了如何使用 Jav
  • 如何在 Debian 9 上安装 Python 3.9

    Python 是一种面向对象的高级编程语言 它是一个拥有大型社区的开源软件 Python 被 Google 等顶级科技公司用作关键语言 Python 3 9 稳定版本已发布 包含多项改进和安全更新 它包括多个新模块 改进的现有模块和许多其他
  • 如何在 Debian11 上安装和保护 Apache

    Apache HTTP Web 服务器是广泛使用的 Web 服务器之一 尤其是在 Linux 发行版上 它是一种免费的跨平台 被互联网上的大量网站使用 Apache Web 服务器使用 HTTP 来处理请求并接收 Web 信息 Apache
  • 如何在 Ubuntu、CentOS 和 Fedora 上设置 Hadoop 2.6.5(单节点集群)

    阿帕奇Hadoop 2 6 5与之前的稳定 2 X Y 版本相比有显着改进 该版本在HDFS和MapReduce方面有很多改进 本操作指南将帮助您在 CentOS RHEL 7 6 5 Ubuntu 和其他基于 Debian 的操作系统上安
  • C# 中的空合并运算符 (??)

    在 C 领域 程序员使用许多运算符来执行各种操作 并且每个运算符都有其独特的功能 空合并运算符 就是这样一个运算符 通常被视为管理空值的重要实用程序 什么是空合并运算符 空合并运算符是一个二元运算符 可简化对空值的检查并在遇到空值时定义默认
  • Linux 中的 su 命令及有用示例

    The su 命令也称为切换用户 该命令用于在登录会话期间成为另一个用户 当没有用户名调用时 su 默认切换到超级用户 基本上 su 命令用于将当前登录的用户更改为另一个用户 而无需从系统注销 它是 Linux 终端用户经常使用的命令 本教