Linux su与sudo有何区别?
文章插图
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的使用存在一些分歧 。
推荐阅读
- 人与人|为什么离职后,关系再怎么好的同事也都会逐渐的不再联系?
- 外卖|喜茶门店经理与外卖骑手勾结套运费13万 11人被抓
- 蕉藕粉的功效与作用
- 微软|索尼回应前独占游戏《死亡搁浅》加入微软PGP:完全没有参与
- 理智与情感读后感1500字 理智与情感读后感
- 石鳗鱼的功效与作用有哪些?
- 鸟鸡汤的功效与作用有哪些?
- 大学”和“学院”到底有什么区别? 学院与大学的区别
- |钓灵与钓钝,不能只看调目与钓目;野钓选择钓钝,是因为这些原因
- 泌乳素高与睡眠有关吗