Linux系统之su命令的基本使用

简介: Linux系统之su命令的基本使用

@TOC

在这里插入图片描述

一、su命令介绍

su(switch user)命令在Linux系统中用于切换当前用户的身份,通常用来从普通用户切换到超级用户(root),但也支持切换到其他非特权用户。

二、su命令的使用帮助

2.1 su命令的帮助信息

在命令行终端中,我们使用-h选项查su命令的基本帮助信息。

root@jeven01:~# su -h

Usage:
 su [options] [-] [<user> [<argument>...]]

Change the effective user ID and group ID to that of <user>.
A mere - implies -l.  If <user> is not given, root is assumed.

Options:
 -m, -p, --preserve-environment      do not reset environment variables
 -w, --whitelist-environment <list>  don't reset specified variables

 -g, --group <group>             specify the primary group
 -G, --supp-group <group>        specify a supplemental group

 -, -l, --login                  make the shell a login shell
 -c, --command <command>         pass a single command to the shell with -c
 --session-command <command>     pass a single command to the shell with -c
                                   and do not create a new session
 -f, --fast                      pass -f to the shell (for csh or tcsh)
 -s, --shell <shell>             run <shell> if /etc/shells allows it
 -P, --pty                       create a new pseudo-terminal

 -h, --help                      display this help
 -V, --version                   display version

For more details see su(1).
AI 代码解读

2.2 su命令帮助解释

语法:

su [选项] [-] [<用户> [<参数>...]]
AI 代码解读

功能:
更改有效用户ID和组ID为<用户>的ID。仅提供一个 - 参数时等同于指定了 -l。如果未指定<用户>, 则默认为root。

选项:

选项 描述
-m, -p, --preserve-environment 不重置环境变量
-w, --whitelist-environment <列表> 不重置指定的环境变量
-g, --group <组名> 指定主要组
-G, --supp-group <组名> 指定辅助组
-, -l, --login 创建一个登录shell
-c, --command <命令> 将单个命令传递给shell执行
--session-command <命令> 将单个命令传递给shell执行,但不创建新会话
-f, --fast -f 参数传递给shell(适用于 csh 或 tcsh)
-s, --shell <shell> 如果 /etc/shells 允许,则运行指定的 shell
-P, --pty 创建一个新的伪终端
-h, --help 显示此帮助信息
-V, --version 显示版本信息

三、su命令的基本使用

3.1 切换到root用户

默认情况下,不指定用户名时,su会尝试切换到root用户,系统将提示你输入root用户的密码。

admin@jeven01:~$ su
Password:
root@jeven01:/home/admin#
AI 代码解读

3.2 切换到另一个用户

指定用户名以切换到特定的用户账户,例如切换到名为admin的用户:

root@jeven01:/home/admin# su - admin
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

admin@jeven01:~$
AI 代码解读

3.3 保留当前环境

如果你不使用-、-l或--login选项,那么除了UID和GID之外,几乎所有的环境都会保持不变。这可能不是最佳的安全实践,因为某些敏感信息可能会留在环境中。

root@jeven01:~# su admin
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

admin@jeven01:/root$
AI 代码解读

3.4 执行单个命令

使用-c选项可以让你作为另一个用户执行单个命令。完成后,你将返回到原来的用户身份。

root@jeven01:~# su - -c "pwd" admin
/home/admin
AI 代码解读

四、总结

  • 使用su切换到root用户时需要提供root密码,这赋予了对系统最高级别的控制权限。

  • 每次使用su提升权限后,完成任务应立即退出该会话以减少风险暴露时间。

  • 带有-或--login选项的su命令会初始化新的登录环境,这可能改变当前的工作目录和环境变量设置。

  • 不带-或--login选项的su命令会保留原有用户的大部分环境变量,这可能导致安全风险或意外行为。

  • 使用-c选项可以通过su执行单个命令而不需要完全切换用户会话,适合临时操作。

  • 建议在日常操作中优先使用sudo而非su来执行特权命令,因为sudo提供了更细粒度的权限管理和日志记录。

目录
打赏
0
1
1
1
1263
分享
相关文章
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
69 24
调试技巧 - 用Linux命令排查Java问题
总的来说,使用Linux命令来排查Java问题,需要一定的实践经验和理论知识。然而,只要我们愿意花时间深入了解这些工具,我们就能够熟练地使用它们来分析和解决问题。此外,这些工具只是帮助我们定位问题,真正解决问题需要我们对Java和JVM有深入的理解,并能够读懂和分析代码。
45 13
|
18天前
|
linux常用命令详细说明以及案例
本文介绍了Linux中几个常用的命令及其用法,包括:`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm -p`(删除目录及内容)和`mv`(移动或重命名文件/目录)。每个命令都配有详细说明、语法格式、常见选项及实用案例,帮助用户更好地理解和使用这些基础命令。内容源自[linux常用命令详细说明以及案例](https://linux.ciilii.com/show/news-285.html)。
|
18天前
|
linux命令详细说明以及案例
本文介绍了常用的 Linux 命令及其详细说明和示例,包括:`ls`(列出目录内容)、`cd`(更改目录)、`rm` 和 `mv`(删除与移动文件)、`grep`(搜索文本)、`cat`(显示文件内容)以及 `chmod`(更改文件权限)。每个命令均配有功能描述、选项说明及实际案例,帮助用户更好地掌握 Linux 命令的使用方法。
116 56
|
20天前
|
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
101 27
|
20天前
|
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
66 19
|
6月前
|
手把手教会你安装Linux系统
手把手教会你安装Linux系统
139 0
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
185 1
从头安装Arch Linux系统
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置