Linux中su、su -和sudo的区别

su

su 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。

su -

su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境。

这个涉及到不同用户下的环境变量的配置。

su和sudo没有切换工作目录和环境变量,只是赋予用户权限,
而su -是真正切换到root登录,工作目录切换到/root,环境变量也同时改变.

sudo

通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码(sudo用的不是root密码,而是当前用户密码),所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被称为受限制的su,另外sudo是需要授权许可的,所以也被称为授权许可的su。

sudo执行命令的流程是当前用户切换到root(或其他指定切换到的用户),然后以root(或其他指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。

sudo的配置文件是/etc/sudoers,我们可以用他的专用编辑工具visodu来进行配置,配置好后,可以切换到您授权的用户下,通过sudo -l来查看哪些命令是可以执行或禁止的。

su和sudo的区别

共同点:都是root用户权限;
不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全获得root的权限和root的工作环境。
sudo:表示获取临时的root权限执行命令。
sudo执行命令的流程:

1、当前用户切换到root(或其他指定切换到的用户),
2、以root(或其他指定的切换到的用户)身份执行命令,
3、执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。

su - root和su root区别

su - root:以root身份登录,then the shell is login shell, .bash_profile and .bashrc will be sourced.

su root/其他命令:与root建立一个连接,通过root执行命令。then only .bashrc will be sourced.
最直接的区别是su目录还是原先用户目录,su - root后目录就变为root用户的主目录

因此,可以在.bashrc修改PATH、PHP、APACHE、Mysql等路径。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值