Linux su与sudo有何区别?(linux的sudo是什么意思)
nanshan 2024-10-21 06:13 26 浏览 0 评论
su命令和sudo命令都让用户可以执行非特权用户(除root用户之外的所有人)无权执行的系统管理任务。一些人偏爱sudo命令,比如Seth Kenlon最近发表了《在Linux上使用sudo的五个理由》,该文盛赞sudo的诸多优点。
另一方面,我偏爱su命令,更喜欢用它而不是用sudo来处理我从事的大部分系统管理工作。我在本文中比较了这两个命令,解释了为什么我更喜欢su而不是sudo,但仍然同时使用这两个命令。
系统管理员的历史观点
su命令和sudo命令是为不同的世界设计的。早期的Unix计算机需要全职系统管理员,他们使用root帐户作为唯一的管理帐户。在那个时代,拥有root密码的人以root身份登录电传打字机或CRT终端,然后执行管理Unix计算机所必需的管理任务。root用户也会拥有非root帐户来处理非root活动,比如编写文档和管理个人电子邮件。
这些计算机上通常有许多非root用户帐户,这些用户都不需要全面的root访问权。用户可能需要以root身份运行一两个命令,但很少这样。许多系统管理员以root身份登录,完成工作后退出root会话。有时需要整天保持以root身份登录的状态。大多数系统管理员之所以很少使用sudo,是由于它需要输入比运行基本命令所需的更多内容。这些工具都可以提升权限,但方式大不相同。这种差异归因于它们最初面向不同的用例。
sudo
sudo的初衷是让root用户能够向一两个非root用户授予这一权限:访问他们经常需要的一两个特定命令。sudo命令使非root用户可以临时访问执行任务所需的提升权限,比如添加和删除用户、删除属于其他用户的文件、安装新软件以及通常管理现代Linux主机所需的任何任务。
允许用户访问需要提升权限的一两个常用命令可以让系统管理员避免用户的大量请求,并消除等待时间。sudo命令并不将用户帐户切换成root;大多数非root用户永远不应该拥有全面的root访问权。在大多数情况下,sudo让用户可以发出一两个命令,然后允许权限提升到期失效。在这个短暂的间隔(通常设置为5分钟),用户可以执行任何需要提升权限的必要管理任务。如果用户需要继续使用提升的权限,但尚未准备好发出另一个与任务相关的命令,可以运行sudo -v命令,重新验证登录信息,并将间隔时间再延长5分钟。
使用sudo命令确实有这个副作用:生成非root用户使用的命令的日志条目及其ID。日志便于事后分析问题,以确定用户何时需要加强培训。
su
su命令旨在允许非root用户将权限级别提升到root——实际上就是非root用户成为root用户。唯一的要求是用户需要知道root密码。这方面没有任何限制,因为用户现在以root身份登录。su命令提供的权限提升没有时间限制。用户以root身份想工作多久就可以多久,无需重新验证身份。完成工作后,用户可以发出exit命令,从root恢复到自己的非root帐户。
争议和变化
最近su与sudo的使用存在一些分歧。“真正的[系统管理员]不使用sudo”——Paul Venezia
Venezia在其文章中称,对于许多充当系统管理员的人来说,sudo被用作不必要的道具。他没有用太多的篇幅来捍卫或解释这一立场,只是声称这是事实。我同意他的看法,对于系统管理员来说是这样。我们不需要辅助轮来完成我们的工作。实际上,辅助轮很碍事。
然而,时代在“变化” ——美国民谣之父Bob Dylan是对的。自单人单机时代问世以来,管理计算机的方式发生了显著变化。在许多环境中,计算机的用户也是管理员。因此有必要为那些用户提供root的部分权限。一些现代发行版(比如Ubuntu及衍生版)经配置后,可将sudo命令专门用于特权任务。在那些发行版中,不可能以root用户身份直接登录或者甚至使用su成为root,因此需要sudo命令允许非root用户访问root权限。在这种环境下,所有系统管理任务都使用sudo来执行。
如果锁定root帐户,并将常规用户帐户添加到wheel组,可以进行这种配置。这种配置很容易被规避。
不妨在任何Ubuntu主机或虚拟机上先进行试验。我安装了Ubuntu 16.04 LTS1,并使用VirtualBox将它安装在虚拟机中。我在安装过程中为这个试验创建了一个非root用户student,并使用了一个简单的密码。
以用户student身份登录,打开终端会话。查看/etc/shadow文件中root对应的条目,加密的密码存储在该文件中。
student@ubuntu1:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied1.2.
权限被拒绝,因此我们无法查看/etc/shadow文件。这对所有发行版都很常见,旨在防止非特权用户查看和访问加密的密码,不然可以使用常见的黑客工具破解这些密码。现在不妨尝试使用su –成为root。
student@ubuntu1:~$ su -
Password: <Enter root password – but there isn't one>
su: Authentication failure1.2.3.
左右滑动查看完整代码这会失败,因为root帐户没有密码,被锁在外面。使用sudo命令查看/etc/shadow文件。
student@ubuntu1:~$ sudo cat /etc/shadow
[sudo] password for student: <enter the student password>
root:!:17595:0:99999:7:::
<snip>
student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7:::
<snip>1.2.3.4.5.6.
左右滑动查看完整代码我截断了输出结果,只显示root和student用户对应的条目。我还缩短了加密的密码,因此条目将放在一行中。字段由冒号(:)隔开,第二个字段是密码。请注意,root的密码字段是bang,即是个感叹号(!)。这表明该帐户已被锁住,无法使用。
现在,要使用root帐户成为真正的系统管理员,就需要为root帐户设置密码。
student@ubuntu1:~$ sudo su -
[sudo] password for student: <Enter password for student>
root@ubuntu1:~# passwd root
Enter new UNIX password: <Enter new root password>
Retype new UNIX password: <Re-enter new root password>
passwd: password updated successfully
root@ubuntu1:~#1.2.3.4.5.6.7.
左右滑动查看完整代码现在您可以直接在控制台上以root身份登录,或者直接使用su成为root,而不是对每个命令使用sudo。当然,每当您想以root身份登录,完全可以就使用sudo su -,但何必劳这个神?
请别误解我的意思。Ubuntu及上下游衍生版之类的发行版非常好,这些年来我就用过其中几个。在使用Ubuntu及相关发行版时,我最先做的事情之一是设置root密码,以便我可以直接以root身份登录。
其他发行版(如Fedora及衍生版)如今在安装过程中提供几个有意思的选择。我注意到这点的第一个Fedora版本是Fedora 34。可以在页面上找到这些安装选项之一,以设置root密码。新选项允许用户以锁定Ubuntu root帐户的方式选择“锁定root帐户”。该页面上还有一个选项,允许使用密码,以root身份远程SSH登录到该主机,但仅当root帐户被解锁时才适用。
页面上的第二个选项允许创建非root用户帐户。该页面上的选项之一是“将该用户设为管理员”。选中该选项后,用户ID被添加到名为wheel组的特殊组中,授权该组成员可以使用sudo命令。Fedora 36甚至在该复选框的描述中提到了wheel组。
可以将多个非root用户设为管理员。使用该方法指定为管理员的任何人都可以使用sudo命令,在Linux计算机上执行所有管理任务。
Linux只允许在安装过程中创建一个非root用户,因此其他新用户可以在创建时添加到wheel组中。root用户或另一个管理员可以使用文本编辑器或usermod命令,将现有用户直接添加到wheel组。在大多数情况下,今天的管理员只需要执行几项基本任务,比如添加新打印机、安装更新或新软件,或者删除不再需要的软件。这些GUI工具需要root或管理员密码,接受指定为管理员的用户输入的密码。
我如何在Linux上使用su和sudo?
我既使用su又使用sudo。它们在我的系统管理员工具箱中都有重要的位置。
我无法锁定root帐户,因为我需要使用它来运行我的Ansible剧本和为执行备份而编写的rsbu Bash程序。这两个命令都需要以root身份运行,我编写的另外几个管理Bash脚本也是如此。我使用su命令将用户切换成root用户,那样我就可以执行这些任务和其他许多常见任务。在确定和解决问题时,使用su将我的权限提升到root尤其有用。
当非root用户需要执行需要root权限的任务时,我将sudo命令用于这些任务。我在sudoers文件中设置了非root帐户,以便只访问完成任务所需的一两个命令。当我只需要运行一两个拥有升级权限的快速命令时,我自己也会使用sudo。
结论
使用哪种工具其实不如完成工作那么重要。使用vim或Emacs、systemd或SystemV、RPM或DEB、sudo或su,并没有那么大的区别。
归根到底,应该使用最顺手、最适合自己的工具。Linux和开源的最大优点之一便是,我们通常都有许多可供选择工具帮助我们完成任务。su和sudo各有优点,适当用于预期的用例时,两者都表现不俗。我偏爱用su处理自己的大部分工作,因为它最适合我和我的工作流程。
参考链接:
ps://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin
相关推荐
- 教你一个解决手机卡顿的方法(10秒解决手机卡顿问题)
-
我们的手机天天刷头条,看视频,用了一阶段时间以后,就时不时的发生卡顿现象。昨天我的手机就发现了这个问题。友友们,你们遇到过这样的问题吗?你们都是怎样解决的?我看了一眼我的粉丝情况,头条君给我分析的很精...
- 手机视频缓存清理,3步彻底清空,告别卡顿
-
在我们使用手机观看视频的过程中,经常会产生大量的缓存垃圾,这些垃圾文件不仅占用了手机的存储空间,还可能导致手机卡顿和运行缓慢。然而,你知道如何彻底清空手机的视频缓存,让手机恢复流畅的使用体验吗?在本文...
- 关手机这个开关,轻松提升流畅度!
-
关闭手机这个开关,跟新买的一样流畅。手机不要再清理垃圾了,只要关闭这个开关,手机就会和新买的差不多,丝滑流畅不卡顿。其实抖音里就隐藏着一个小开关,每天刷过的视频都会保存在手机里,如果一直不清理,手机就...
- 如何清理今日头条和西瓜视频的内存,让手机流畅不卡顿?
-
对于老年人而言,今日头条和西瓜视频能带来丰富的资讯与娱乐。然而,随着使用时间的增加,这些应用会占用大量手机内存,致使手机运行卡顿。那该如何解决呢?接下来,我将用最简单易懂的方式教老年人清理今日头条和西...
- 视频在线如何转换格式?好用不卡顿的三种转换办法
-
转换视频格式目前来说已经是很熟练的操作了,但是还有些用户可能还是不知道,小编今天就特意给大家带来一些小众才知道的转换教程,让新手也能快速的上手去转换视频格式,以后获取到视频就不怕内容丢失了,视频的格式...
- 如何把视频慢放处理?这几个慢放方法记得收藏
-
如何把视频慢放处理?如果你想让视频慢放,可能是因为你想放慢一些精彩的瞬间,或者你想制作一个慢动作视频。在这篇文章中,我们将介绍一些调速方法,这些方法可以有效地调整视频速度,一起来学习一下吧。方法一:使...
- 如何清理看过的视频,释放垃圾,让手机更流畅?
-
现在谁的手机上没几个短视频平台,无聊时就会刷别人的视频。可您知道吗?我们看过的内容都会被自动保存在手机里,而且很耗内存。如果长时间不释放,手机就会出现各种问题,其中最突出的就是反应慢。相信很多老年人的...
- 手机掉帧是怎么回事?刷视频的时候经常掉帧卡顿
-
手机掉帧是指在运行应用或视频时,画面出现卡顿、不流畅的现象,通常由硬件性能不足、软件优化不佳、内存占用过高、网络问题或设备过热等因素引起。尤其是在刷视频时,掉帧问题可能更为明显,以下是具体原因及解决方...
- 拍视频画面卡顿不流畅,原来是相机设置错误 #短视频拍摄
-
拍摄视频时,应该选择哪种快门速度?许多新手朋友可能会认为,快门速度越高,画面就越清晰,实则不然。因为拍摄视频时,需要考虑一个问题,即动态模糊。例如,如果设置为24帧/秒,那么每秒钟会拍摄24张图片。如...
- 手机卡顿最大原因#视频太卡怎么变流畅
-
抖音这几个开关是手机卡顿的最大原因。你是不是也会经常遇到刷视频的时候,打开一个视频之后老半天还在那转着圈圈,总觉得手机没有之前流畅了。这就说明你的手机占用的内存太多了,导致手机卡顿,使用不流畅。使用手...
- 为啥你家的玩游戏和刷视频经常性的会卡,那是你不懂这些小妙招
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:暴走的黄小猪说到网速有不少的值友都有一个共同点,那就是“卡”,那是你根本没体验过啥叫真正的网速啊,全屋零四条网络报表也花不了几个钱你们的方法...
- 电脑看视频卡顿有什么解决方法?(电脑看视频画面卡顿是什么原因)
-
电脑看视频卡顿的原因可能多种多样,包括硬件性能不足、网络问题、软件设置不当等。以下是一些常见的解决方法,帮助你改善视频播放的流畅度:一、硬件方面1.检查硬件性能:如果电脑配置较低,尤其是CPU、内存或...
- 手机Wi-Fi满格但视频卡顿,你需要这样解决
-
累了一天的打工人回家拿出手机准备玩玩游戏,看看电影时,发现网络异常卡顿,但手机又显示Wi-Fi信号满格,当咱们遇到此类问题时,这些动作能让网络恢复正常,方法如下。一、重启路由器和光猫很多家庭在安装好路...
- 视频越刷越卡?原来是路由器开启了这个功能,关闭方法来了
-
应该很多小伙伴都有过类似的经历,就是在家里长时间刷视频或者看剧的时候,网速好像会越来越慢,视频总是要加载。手机本身可能是一部分原因,但路由器也会影响,你知道吗?当我们在刷视频的,路由器会悄悄地开启大量...
- 一招解决视频卡顿的问题,改变发布渠道后,结果香了
-
最近一段时间拍了很多美景视频,编辑发布到头条后,有时一直显示在缓冲,播放不了,有时打开断断续续的,老是卡顿。导致的后果是:要么展现量很低,要么阅读量寥寥无几,这让我非常苦恼。所以再发布作品时,我只好文...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)