Linux su sudo

sudo 与 su 两个命令的最大区别是

sudo 命令需要输入当前用户的密码,
su 命令需要输入 root 用户的密码。
另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

su 用以切换成不同的用户的身份

命令简介

su 命令用于切换当前用户身份到其他用户身份。
默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以”-“不能省略,不然有些操作无法执行。su root 输入root密码后切换之root用户但是pwd目录不变
sudo 命令用于切换用户执行权限,这个命令可使其它非 root 用户具有 root 权限。默认情况下,sudo 要求用户使用密码进行身份验证,这是用户密码,不是 root 密码。

语法格式

  1. su [ options ] [ username ]

选项说明

su 命令选项

  1. -c<指令> #执行完指定的指令后,即恢复原来的身份
  2. -f #使shell不用去读取启动文件
  3. -l #切换身份时,同时变更工作目录
  4. -m #切换身份时,不变更环境变量
  5. -s #指定要执行的shell
  6. --help #打印帮助信息
  7. --version #打印版本信息

su - root

输入root密码后切换之root用户但是pwd目录/root

sudo 一般加的是命令

sudo -i root与sudo - root、sudo -i ,sudo - ,sudo root效果相同 提示输入密码时该密码为当前账户的密码 要求执行该命令的用户必须在sudoers中才可以 su需要的是切换后账户的密 用法为“su 账户名称”

sudo命令简介

暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su :切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。

语法格式

sudo [ options ] [ command ]

选项说明

sudo 命令选项

-b  #在后台执行指令
-h  #打印帮助信息
-H  #将HOME环境变量设为新身份的HOME环境变量
-k  #结束密码的有效期限,也就是下次再执行sudo时便需要输入密码
-l  #列出目前用户可执行与无法执行的指令
-s<shell>  #执行指定的shell
-u<用户>   #以指定的用户作为新的身份
-v  #延长密码有效期限5分钟
-V  #打印版本信息

sudo -i

为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以

sudo -i 直接运行sudo命令加-i参数

要求执行该命令的用户必须在sudoers中才可以

sudo su 运行sudo命令给su命令提权

运行su命令。要求执行该命令的用户必须在sudoers中才可以。