Linux中sudo和su的区别

介绍:主要对su和sudo的功能,区别以及使用进行介绍。

两者之间的区别

  • su用于用户之间的切换;
  • sudo用于普通用户可以使用root权限来执行指定命令

命令介绍

1. su

su简介

su用于用户之间的切换。但是前面的用户依然保持在登录状态。这种切换如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。

su用法

su在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;

su

su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;

su -

su切换到其他用户

su test

su缺点
  • 不安全-su工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中;
  • 如果某个用户需要使用root权限、则必须要把root密码告诉此用户;

2. sudo

sudo简介

sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。当然这个普通用户必须在/etc/sudoers文件中有配置项、才具有使用sudo的权利;

sudo用法

[sudo 指令 或 sudo -u username 指令]表示以某用户的环境执行命令, 不加用户表示以root用户的身份执行。

sudo -u appops

sudo执行流程
  1. 当用户执行sudo时,系统在/etc/sudoers档案中搜索该使用者是否具有 sudo执行权限;
  2. 若使用者具备可执行的sudo权限后,便让使用者【输入自己的密码】来确认;
  3. 若密码输入成功,便开始执行sudo后续的指令(root执行sudo时无需输入密码);
  4. 若切换者的身份与执行者相同时,也无需输入密码。

你可能感兴趣的:(Linux中sudo和su的区别)