![sudo 会影响整个服务器还是仅影响用户帐户?](https://linux22.com/image/708906/sudo%20%E4%BC%9A%E5%BD%B1%E5%93%8D%E6%95%B4%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%98%E6%98%AF%E4%BB%85%E5%BD%B1%E5%93%8D%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%EF%BC%9F.png)
我最近为我的公司花了不少钱购买了一台 vps,并且已开始为我的每个网站设置 ssh 和 cpanel 帐户。
我开始在一个帐户上安装 Composer,但需要 root 权限。我的问题是,如果您以特权用户身份使用 sudo,如果您犯了一个严重的错误,您是否会导致整个服务器瘫痪,或者更改是否只会影响该特定用户帐户而不影响 root?
在此基础上,帐户是否完全与 root 隔离,或者您是否有可能将整个服务器置于风险之中(如果您真的很努力的话)? sudo 是否与 root 访问完全相同,但仅限于帐户内,您是否只是切换到 root? 有没有办法限制我可能对用户帐户造成的损害, sudo 是在我的帐户上安装软件包的最佳方式吗?
答案1
当您调用 sudo(没有明确的用户参数)时,您在该命令的持续时间内实际上是 root 身份。如果该命令启动了新的 shell,则从该 shell 运行的所有命令也都是 root 身份。所以是的,您使用 sudo 执行的任何操作都会影响整个服务器。
有关其工作原理的详细信息,请参阅以下 Unix StackExchange 问题:
答案2
有了sudo
(或者更确切地说/etc/sudoers
并放入配置文件)管理员可以授予非特权用户以任何其他用户etc/sudoers.d/*
身份运行某些命令和程序的权力。root
如何配置、授予哪些提升的权限决定了是否存在风险。
如果您sudo
按预期使用且仅授予对有限命令集的访问权限,则用户就无法造成超出这些命令允许范围的危害。
另一方面,如果你货物崇拜系统管理员并盲目复制典型的 ACL:
username ALL=(ALL) ALL
然后您授予username
运行权限任何命令作为root 或任何其他用户一切赌注都取消了。
笔记:有许多命令使用 sudo 可以有效授予比你预期更多的访问权限,例如sudo vim <file>
以及其他编辑器、备份工具(如 tar 和 unzip 等)...