su与sudo的区别

在Linux系统上操作的时候,如果某些命令需要root权限才能执行,我们需要切换到root用户,这时我们有两种方法。

第一种: 直接切换到root用户,执行该命令。该命令不仅把用户身份切换为root,也把工作环境切换到了root。su - 与 su - root是同样的功能

[fedora@dhcp-129-232 ~]$ su -
Password: 
Last login: Tue Jun  2 16:33:46 CST 2015 on pts/0
[root@dhcp-129-232 ~]# whoami
root
[root@dhcp-129-232 ~]# pwd
/root

第二种: 使用sudo。通过su - / su - root切换到root用户和环境后,可以进行任何操作,而通过sudo可以把某些超级用户root拥有的权限有限制的开放,也就是说sudo是有限制的su。sudo不要求用户知道root的密码,但需要授权许可。

sudo命令执行的流程是从当前用户切换到root用户,以root用户执行指定命令后,退回到切换前的用户。

[fedora@dhcp-129-232 ~]$ sudo docker images
[sudo] password for fedora: 
fedora is not in the sudoers file.  This incident will be reported.

sudo命令执行没有成功,表示该用户不能执行sudo命令,那么如何给某个指定用户授权?

su - / su - root切换到root用户后,vi /etc/sudoers文件,在该文件中加入一行 yapei ALL=(ALL) ALL后,退出root用户

[root@dhcp-129-232 ~]# cat /etc/sudoers | grep fedora
fedora   ALL=(ALL)       ALL

再重新执行sudo命令,发现sudo命令执行成功,跟切换到root再执行命令的结果是一样的。

[fedora@dhcp-129-232 ~]$ sudo docker images
[sudo] password for fedora: 
sudo: docker: command not found
[fedora@dhcp-129-232 ~]$ whoami
fedora

这是切换到root执行命令的结果

[root@dhcp-129-232 ~]# whoami
root
[root@dhcp-129-232 ~]# docker images bash: docker: command not found...

 

转载于:https://www.cnblogs.com/penny-jimmy/p/4565360.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值