Skip to content

Linux中su与sudo的区别

758字约3分钟

linux

2024-11-19

在Linux环境中,susudo是两个不同的命令,它们各自有不同的用途、功能和应用。

1. su 命令

su命令用于用户身份切换,即用户身份切换。通常是由只有root用户使用,以root权限执行特定命令或直接登录root账户。一般用于Switch User(切换用户)。它允许用户以不同的身份(以superuser或其他用户身份)执行命令。当使用su命令时,需要提供root用户的过身份验证认证。

命令格式如下:

su [用户名称][Password]

如果不指定用户名称,系统默认假设是切换到root账户。

具体的命令语法如下:


su [操作符] [用户名[-]/[用户名]

#其中“操作符”可以是以下几种:

#-:执行命令为su操作而需要提供一个用户名和密码。

#-c “命令”:执行单个命令,也需要提供一个用户名和密码。

#-l:用户以root用户的身份登录,但不会尝试要求密码。这可能会影响安全性。

#-i:在改变到新用户现在正在用户组的注意到系统变量改为新用户的。

例如,在当前 shell 中首先切换到用户tom的 shell:

su - tom

然后在当前 shell中切换到 root 账户

su -

在默认情况下,“su” 命令需要统一执行切换用户的密码。因此,它不受 SELinux、PAM ,其他所要的安全控制。

su命令是Linux系统中的一个常用用户身份切换的命令,可以以root用户身份运行程序或执行特权管理的任务。

su命令的基本格式如下:

su [-l 用户名] [ medications ]

常用的参数有:

  • -l: 启用账户的登录环境(如果用户存在)。也就是说如果-l 用户名,那么启用用户名所拥有的环境状态(Shell环境变量、配置文件等)。
  • -c: CMD:执行一个命令并退出。CMD是一条命令。这表示在没有输入任何用户名时,虽然不可能使用-l选项,但可以使用-c选项。

2. sudo 命令

在Linux系统中,sudo命令允许用户临时提高权限,以超级用户(root权限)运行程序。sudo命令由「superuser do」两个单词组成,意为「superuser do」,即superuser执行的。

sudo命令后面一般跟着一个程序名称来使用,例如sudo ls,使用sudo前面的程序将以root身份运行而不会提示用户密码。

默认情况下,用户需要首先输入原有用户的密码才能使用sudo命令,这个密码是用户的密码不是root密码的。sudo命令的价值在于安全性,允许用户询问root权限而不使用root账户,从而达到这样的效果。

命令格式如下:

sudo [命令] [参数]