外观
Linux中su与sudo的区别
在Linux环境中,su
和sudo
是两个不同的命令,它们各自有不同的用途、功能和应用。
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 [命令] [参数]