Linux命令su和sudo的区别

1、su命令        Linux命令su和sudo的区别

su命令用来切换用户,substitute英文含义“代替”的意思

常用格式有:

①su:不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变

Linux命令su和sudo的区别

Linux命令su和sudo的区别

②su - 或者su -l 或者 su --login:切换为root用户,同时变更工作目录,以及SHELL,USER,PATH,HOME,LOGNAME变量。

Linux命令su和sudo的区别

Linux命令su和sudo的区别

注:exit命令可退出root用户

③su username :切换为其他用户,目录不改变,SHELL,USER,PATH,HOME,LOGNAME变量改变。

Linux命令su和sudo的区别

④su  -, -l, --login username:切换到其他用户,变更工作目录,以及SHELL,USER,PATH,HOME,LOGNAME变量。

Linux命令su和sudo的区别
⑤其他参数:

   -m,-p或--preserve-environment:变更身份时,不要变更环境变量(preserve:保持的意思)。

   -c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

2、sudo命令

Linux命令su和sudo的区别

sudo命令:使用其他用户来执行命令,一般是root用户。 

举例:使用sudo命令执行 修改系统时间命令

Linux命令su和sudo的区别

执行时报“不在sudoers文件中”。所以这个是需要配置sudoders文件的。

sudoers文件存放在etc目录下,我们可以直接输入命令visudo编辑sudoers文件,使用visudo命令编辑文件,会验证我们添加的信息是否有语法错误。

Linux命令su和sudo的区别

sudoers文件内容

Linux命令su和sudo的区别

主要在这里编写,root代表用户,ALL代表主机,括号里的ALL代表已什么身份运行,最后一个ALL代表要执行的命令。

Linux命令su和sudo的区别

在文件里添加:jack ALL=(root) /bin/date,保存后,切换用户,执行命令

Linux命令su和sudo的区别

sudo -l 查看当前用户可以用sudo执行的命令都有哪些

sudo date -s 执行成功