su和sudo命令的区别

    su命令用于切换用户,不只是向root用户切换,也可以向其他用户切换。切换前的用户依然保持在登录状态。这种切换如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证密码为切换后用户的密码;sudo命令用于赋予普通用户root权限

1 su命令


su 用户名 切换到该用户,但工作环境仍然是原用户的工作环境

su - 用户名 切换到该用户,工作环境是该用户的工作环境

如上图,su不加任何参数,默认为切换到root用户,但没有转到root用户主目录下,也就是说这时虽然是切换为root用户了,但并没有改变工作环境,仍然是原用户zhouruixue的工作环境(用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等);su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境,即root的用户主目录;上图中输入的密码都是root用户的密码。

由上可知,su root使得root用户在zhouruixue用户环境中进行操作,某种程度上也可以认为su使得普通用户具有了root权限。


2 sudo命令

(1)添加用户,首先用adduser命令添加一个普通用户,命令如下: 

#adduser tommy </p>< p>//添加一个名为tommy的用户

#passwd tommy //修改密码

Changing password for user tommy.

New UNIX password: //在这里输入新密码

Retype new UNIX password: //再次输入新密码

passwd: all authentication tokens updated successfully.


(2)赋予root权限

方法一:修改/etc/sudoers文件,找到下面一行,把前面的注释(#)去掉

## Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

然后修改用户,使其属于root组(wheel),命令如下:

#usermod -g root tommy

修改完毕,现在可以用tommy帐号登录,可获得root权限进行操作。


方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

tommy ALL=(ALL) ALL

修改完毕,现在可以用tommy帐号登录,可获得root权限进行操作。


方法三:修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:

tommy:x:500:500:tommy:/home/tommy:/bin/bash

修改后如下

tommy:x:0:500:tommy:/home/tommy:/bin/bash

保存,用tommy账户登录后,直接获取的就是root帐号的权限。

如上图所示,zhouruixue用户本来不具有root权限,不能使用sudo命令,在使用方法二后具有了root权限

参考:

http://blog.csdn.net/crave_shy/article/details/23037787

http://www.jb51.net/os/RedHat/138116.html


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CentOS 8 是一种流行的 Linux 操作系统,而 sudo 命令su 命令是两种常用的权限管理工具。 sudo 命令superuser do)主要用于给普通用户提供以超级用户(root)权限执行命令的能力。通过 sudo 命令,管理员可以将特定命令的执行权限授予普通用户,而不需要将 root 密码分享给他们。这样做的好处是可以实现更精细的权限管理,限制用户执行某些特定命令的能力。在使用 sudo 命令时,用户需要输入自己的密码,而不是 root 密码。另外,sudo 还可以记录每次特权命令的使用日志,方便审计和故障排除。 相比之下,su 命令(switch user)更像是直接切换用户的工具。通过 su 命令,用户可以切换到其他用户(包括 root 用户)的身份,并进入新用户的环境。su 命令通常需要输入目标用户(比如 root)的密码才能成功切换身份。su 命令默认切换到 root 用户,但也可以指定其他用户。 区别总结如下: 1. sudo 命令可以将特定命令的执行权限授予普通用户,而 su 命令是直接切换用户身份。 2. sudo 需要用户输入自己的密码,su 需要用户输入目标用户的密码。 3. sudo 命令可以实现更细粒度的权限控制和审计功能,而 su 命令更加直接且全面。 综上所述,sudo 命令su 命令在权限管理和使用方式上有所不同,选用哪种方式取决于实际需求和安全考虑。 ### 回答2: CentOS 8 是一种常见的 Linux 操作系统,sudocommand 和 sucommand 都是用来切换用户的命令sudo 是“superuser do”的缩写,用于以超级用户身份执行命令。通过使用 sudo,普通用户可以暂时获取超级用户(也称为 root 用户)的权限,以执行需要特殊权限的任务。sudo 命令需要输入用户自己的密码来验证身份,然后可以执行特定的命令。使用 sudo 命令可以增加系统的安全性,因为只有临时的特定命令需要超级用户权限。 su是“switch user”的缩写,用于切换用户身份。通过使用 su,用户可以直接切换到其他用户的身份,包括超级用户。su 命令需要输入切换到的用户的密码,然后用户的身份将切换到目标用户身份下,并打开一个新的 shell 会话。在 su 模式下,用户获得的是完全的目标用户权限,可以执行目标用户所拥有的所有命令sudosu 在使用上有一些区别sudo 仅需要用户自己的密码,而不是目标用户的密码。而 su 需要用户输入目标用户的密码。此外,sudo 执行的命令只有该用户有权限执行的命令,而 su 执行的命令和目标用户的权限没有区别。 总结:sudosu 命令都可以用于切换用户,sudo 是执行特定命令需要超级用户权限时的首选命令,而 su 则用于完全切换到其他用户的身份。这两个命令在使用方法和权限管理上有一些区别,用户需要根据具体的需求选择适合的命令

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值