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).

2.2 su命令帮助解释

语法:

su [选项] [-] [<用户> [<参数>...]]

功能:
更改有效用户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#

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:~$

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$

3.4 执行单个命令

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

root@jeven01:~# su - -c "pwd" admin
/home/admin

四、总结

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

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

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

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

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

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

相关文章
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
333 1
二、Linux文本处理与文件操作核心命令
|
2月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
186 3
Linux系统禁用swap
|
2月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
235 3
|
2月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
251 137
|
2月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
578 57
|
29天前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
254 2
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
218 0
Linux系统初始化脚本
|
2月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
139 0
Linux内存问题排查命令详解
|
2月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
193 16
|
2月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
211 1