Windows UAC 与 Linux sudo

Windows UAC 与 Linux sudo

Windows UAC 在概念上与 Linux sudo 相同,这样说正确吗?

你能指出两者的区别吗?

答案1

UAC 通过赋予当前登录用户执行标记为需要管理员权限的操作所需的系统权限来提升当前登录用户的权利。

  • 如果您是管理员,系统将要求您确认是否授予该进程管理访问权限
  • 如果您是标准用户,系统将提示您输入管理员帐户的凭据

UAC 的目的是确保具有管理权限的实际物理用户希望执行操作,而不是自动执行。进程可以通过三种方式提升权限运行:

  • 用户可以右键单击该程序并选择“以管理员身份运行”
  • 该计划体现了完整性级别requireAdministrator
  • 该计划体现了完整性级别highestAvailable并且用户是管理员

Sudo 通过将当前用户更改为 root 或其他用户来提升当前登录用户的身份,并以该用户的身份执行命令。命令列表以及谁可以执行哪些操作在 /etc/sudoers 中定义。Sudo 确实要求输入密码(您的密码),但会将其缓存一段时间,这样您就不必重新输入。sudo 的目的是允许有限数量的普通用户执行一些需要以 root 或其他用户身份运行的命令。

Windows 中的某些操作(例如安装设备)如果没有适当的权限,则会要求输入管理员密码。这有点像 sudo,但除非您在 Windows 下自定义权限分配、用户和组,否则任何管理员都可以授权该操作。

答案2

有点。通常,Linuxsudo允许您在一段时间内拥有管理员权限。Windows 的 UAC 也是如此。但是,sudo如果您拥有超级用户权限,也可以使用它以其他用户的身份执行操作。

答案3

以下是 MS 网站上关于 UAC 的介绍(Vista 和 7 操作方式相同) -点击这里。真正重要的是对如何处理管理员和标准用户的访问令牌的描述:

“当管理员登录时,系统会向用户授予两个访问令牌:一个完全管理员访问令牌和一个“过滤的”标准用户访问令牌。默认情况下,当本地管理员组的成员登录时,系统会禁用 Windows 管理权限并删除提升的用户权限,从而生成标准用户访问令牌。然后,系统会使用标准用户访问令牌启动桌面 (Explorer.exe)。Explorer.exe 是所有其他用户启动的进程的父进程,它们从该进程继承访问令牌。因此,除非用户同意或提供凭据以批准应用程序使用完全管理访问令牌,否则所有应用程序默认都以标准用户身份运行。与此过程相反,当标准用户登录时,系统只会创建标准用户访问令牌。然后,系统会使用此标准用户访问令牌启动桌面。”

可以通过多种方式配置 UAC。对于标准用户,UAC 提示将要求具有管理员权限的帐户登录,对于管理员用户,UAC 可以仅要求批准操作,也可以配置为还需要登录(后者被 MS 认为不太安全)。

相关内容