当前位置: 首页 > 科技观察

Sudo代表着Linux的绝对霸权!

时间:2023-03-12 05:53:45 科技观察

su是一个Linux命令,充满了力量。你可以切换到其他用户或高权限用户做某事。请原谅我这个外企员工,中英文混杂的表达。道理很简单,希望大家印象深刻。很久以前,公司买不起MacBook,所以xjjdog只能用SecureCRT远程连接服务器。为了增加安全性,首先需要登录跳板机,然后在跳板机上使用ssh命令连接到真正的目标机。其中,有一台服务器对环境要求很高。当服务启动的时候,我总是发现它的环境变量不是我想要的,即使在root用户的.bash_profile文件中强制设置了也没有用。直到最后才发现是su命令用错了。那么,su,su-,sudo-i,sudo-s,有什么区别呢?sudo首先,让我们看一下sudo。最常用的是sudo-s。意思是:切换用户后不跳转到目录,使用当前用户的环境变量切换到超级管理员或目标用户的权限这通常会导致一些问题,比如在xjjdog下设置自己的一套环境变量user,使用su-s切换到超级管理员权限时,仍然使用xjjdog的环境变量。这样就会出现找不到命令,语言错误,甚至配置错误的结果。相应地,sudo-i更干净。意思是:用root或者目标用户的环境变量切换到/root或者目标用户的家目录,切换到超级管理员或者目标用户的权限。在大多数情况下,建议使用su-i而不是su-s,这样出现问题的几率会很小。su对应这个,就是su命令。如果你只运行su,它与sudo-s的效果相同。如果使用su-,其效果是sudo-i。如果没有特殊原因,任何使用都应该使用sudo-i或su-。随着高权限账号运维工具的完善,普通开发已经很少有机会接触到这样的命令了。但一切都保持不变。在开发运维工具的时候,也会遇到这样的问题。在很多情况下,公司会设置严格的权限和分级制度来规范开发者的操作。但是,始终需要高性能帐户。这些帐户通常分配给领导者。搞笑的是,大部分开发者都能遵守公司的开发规范,而带头破坏规范的通常都是高能账号。企业问题和社会问题是相似的。“管理者”设计了一套规避风险、约束行为的机制。但是当绳子套在他身上的时候,他感受到了它的束缚。该怎么办?苏来帮忙。效率也提高了,问题也解决了,留给后人一头雾水:“规范呢?我们怎么能率先破坏呢?”没办法,谁让别人有sudo权限?作者简介:品味小姐姐(xjjdog),一个不允许程序员走弯路的公众号。专注于基础架构和Linux。十年架构,每天百亿流量,与你探讨高并发世界,给你不一样的滋味。