Linux下su与su -命令的区别以及sudo命令

1. su与su - 命令的区别

假设当前用户名test

  • 如果执行su切换到root用户,则切换后仍在当前位置,虽然切换了root身份,但是Shell环境仍然是普通用户的Shell。
  • 如果执行su -切换到root用户,则切换后转到root用户的家目录下,Shell环境切换到root的Shell环境。

举个例子:系统默认PATH 是没有/sbin这个路径的,所以如果是root环境,可以直接运行ifconfig,而普通用户必须使用绝对路径/sbin/ifconfig才可以访问,否则会报找不到该命令。

由此如果普通用户只是用su切换到root,直接运行ifconfig会报找不到该命令。

2. sudo

  • sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令。

  • 默认情况下,系统只有root用户可以执行sudo命令。 如果想把某个用户使用提升的权限运行单个命令,并且不需要普通用户知道root密码,即可以采用sudo方式。

  • 需要root用户通过编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。

  • sudo用的不是root密码,而是当前用户密码。

严格意义来说,sudo也要进行严格的权限控制,否则会被普通用户执行修改root密码,切换root操作,需要进行黑名单命令控制

猜你喜欢

转载自blog.csdn.net/weixin_33777877/article/details/87636549