前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sudo,代表了Linux的绝对霸权!

sudo,代表了Linux的绝对霸权!

作者头像
xjjdog
发布2022-12-22 14:28:24
1.2K0
发布2022-12-22 14:28:24
举报
文章被收录于专栏:架构专题

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

su是一个Linux命令,浑身充满了power。可以切换到其他用户或者高权用户去干sth。

请原谅我这外企员工中英文夹杂式的表达,reason很简单,就是要你有很深的impression。

在很久很久之前,公司穷买不起MacBook,xjjdog只能使用用SecureCRT来远程连接服务器。

为了增加安全性,首先需要登陆一台跳板机,然后再在跳板机上使用ssh命令连接真正的目标机器。

其中,就有一台服务器对环境要求非常苛刻。当服务启动,总是发现它的环境变量不是自己所想要的那样,即使在root用户的.bash_profile文件里强行设置都没用。

到最后才发现,是su命令用错了。

那么, su, su -, sudo -i, sudo -s ,到底有什么区别?

sudo

首先,我们来看下sudo。

我们最常用的,就是 sudo -s了。它的意思是:

  1. 使用当前用户的环境变量
  2. 不跳转切换用户后的目录
  3. 切换到超级管理员或者目标用户的权限

这通常会带来一些问题,比如xjjdog用户下设置了自己的一套环境变量,当使用 su -s 切换到超级管理员权限,依然使用的是xjjdog的环境变量。这样,就会发生找不到命令,语言错误,甚至配置错误的结果。

相对应的, sudo -i 就干净利索的多。它的意思是:

  1. 使用root或者目标用户用户的环境变量
  2. 切换到 /root或者目标用户的home目录
  3. 切换到超级管理员或者目标用户的权限

大多数情况下,推荐使用 su -i 替代 su -s,这样出问题的几率会小的很。

su

与此对应的,就是su命令。

如果只运行su,它的效果和sudo -s是一样的。如果使用了 su - ,那么它的效果就是sudo -i。

如果没有特殊原因,任何使用,都应该使用sudo -i或者su -。

高权账号

随着运维工具的提升,普通开发已经很少有机会接触这种命令了。但万变不离其宗,在开发运维工具的时候,同样会碰到这样的问题。

很多时候,公司设定了严格的权限和分级制度,用来规范开发人员的操作。

但是,高权账号总是必要的。这些账号通常都会分配给leader们。

比较搞笑的是,公司的开发规范大多数开发是能够遵守的,而带头破坏规范的,一般还是高权账号。

公司的问题和社会的问题都是相似的。“管理者”设计了一套机制,用来避免风险,约束行为。但当绳子套在自己身上的时候,才体验到它的束手束脚。

怎么办?su来帮忙吧。效率也提升了,问题也解决了,留给一脸懵逼的后来人:“规范呢?怎么能带头破坏呢”?

没办法,谁让别人有sudo权限呢?

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小姐姐味道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sudo
  • su
  • 高权账号
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档