su与su -,sudo 的区别
"sudo" , "su" , "su - " 区别;
一、sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;
格式:
sudo -u USERNAME COMMAND
默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。
二、su 为 switch user,即切换用户的简写。
格式为两种: su -l USERNAME(-l为login,即登陆的简写) su USERNAME
如果不指定USERNAME(用户名),默认即为 root,
su USERNAME,与su - USERNAME的不同之处如下: 1、su - USERNAME 切换用户后,同时切换到新用户的工作环境中。 2、su USERNAME 切换用户后,不改变原用户的工作目录,及其他环境变量目录。
三、
su -,su -l 或 su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。
"su" 与 "su - " 切换最大的就是 更改了环境变量一块切换。
用su -命令则默认转换成成root用户了。
所以切换到root的身份的命令即为:su -root 或 su -,su root 或 su。
而不带参数的"su命令"不会改变当前工作目录以及 HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。