我一直认为“sudo”只是启动另一个登录过程,特别是使用“root”作为用户名并要求输入密码登录。运行某个程序后,它会结束并注销(或:保持打开的会话一段时间然后退出)。不知道我从哪里听说的,但这对我来说似乎是合理的。
但是现在我发现了这个 sudoers 选项:
ALL ALL = (root) NOPASSWD: /my/command
Run Code Online (Sandbox Code Playgroud)
这允许我以 root 身份从任何用户运行任何程序,而无需输入任何密码。这让我想知道:
这是如何运作的?程序如何获得用户权限?sudo 是否需要一个服务器(作为守护进程以 root 身份运行)并连接到该服务器,向它发送应该执行的内容并且该服务器以 root 权限执行它?
其他用户呢?
有什么好的和简单的解释这是如何工作的吗?