此外,如果要撤销特定用户的超级用户/root 用户的访问权限,唯一的办法就是更改 root 密码,然后再告知所有其他用户新的 root 密码 。
文章插图
而使用 sudo 命令就不一样了,你可以很好的处理以上的两种情况 。鉴于 sudo 命令要求输入的是其他用户自己的密码,所以,不需要共享 root 密码 。同时,想要阻止特定用户访问 root 权限,只需要调整文件中的相应配置即可 。
默认行为
【linux权限sudo和su,系统运维|深入理解 sudo 与 su 之间的区别】两个命令之间的另外一个区别是其默认行为 。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录 。
因此,su 命令的默认行为是有风险的,因为用户很有可能会忘记他们正在以 root 用户身份进行工作,于是,无意中做出了一些不可恢复的更改(例如:对错误的目录运行 rm -rf 命令!) 。关于为什么不鼓励以 root 用户身份进行工作的详细内容,请参考这里 。
日志记录
尽管 sudo 命令是以目标用户(默认情况下是 root 用户)的身份执行命令,但是它们会使用所配置的用户名来记录是谁执行命令 。而 su 命令是无法直接跟踪记录用户切换到 root 用户之后执行了什么操作 。
灵活性
sudo 命令比 su 命令灵活很多,因为你甚至可以限制 sudo 用户可以访问哪些命令 。换句话说,用户通过 sudo 命令只能访问他们工作需要的命令 。而 su 命令让用户有权限做任何事情 。
sudo su
大概是因为使用 su 命令或直接以 root 用户身份登录有风险,所以,一些 Linux 发行版(如 )默认禁用 root 用户帐户 。鼓励用户在需要 root 权限时使用 sudo 命令 。
然而,您还是可以成功执行 su 命令,而不用输入 root 用户的密码 。运行以下命令:
sudo su
由于你使用 sudo 运行命令,你只需要输入当前用户的密码 。所以,一旦完成操作,su 命令将会以 root 用户身份运行,这意味着它不会再要求输入任何密码 。
PS:如果你想在系统中启用 root 用户帐户(强烈反对,因为你可以使用 sudo 命令或 sudo su 命令),你必须手动设置 root 用户密码,可以使用以下命令:
sudoroot
结论
当你需要可用的工具来提升(或一组完全不同的)权限来执行任务时,这篇文章以及之前的教程(其中侧重于 sudo 命令)应该能给你一个比较好的建议 。如果您也想分享关于 su 或 sudo 的相关内容或者经验,欢迎您在下方进行评论 。
本文由 LCTT 原创编译,Linux中国 荣誉推出
- 账号安全、su命令、PAM认证、sudo命令 Linux——系统安全及应用
- 普通用过通过sudo使用命令
- vnc远程控制linux端口5901
- linux环境android,图文详解在Linux下搭建Android开发环境
- 韩顺平Linux 1. Linux 应用领域
- 二、Linux应用领域
- 四十四、rwx权限
- Linux有问必答:如何使用tcpdump来捕获TCP SYN,ACK和FIN包
- don’t have access,提示没权限或同意协议
- 共享文件修改权限后还是只读,共享设置权限