最现代的linux发行版使用一种称为sudo的可调性和高度可配置性工具。您可能已经听说过。在Windows中,在安装程序时,必须提供管理员密码。
在Ubuntu中,默认禁用管理员用户(root)。您甚至不知道他的密码,没人知道,直到您使用更改了他的密码sudo
。用户可能会在短时间内或执行单个任务(例如,安装程序)获得root特权。该用户必须具有使用权限sudo
(在中配置/etc/sudoers
)。以sudo
root用户身份执行执行的程序。
然后,在由gnome驱动的图形会话中,还有其他机制可以执行管理任务。其中之一是policyKit。有一个具有根特权的后台程序在后台运行。例如,如果用户要关闭计算机(只有root用户可以执行此操作),则该用户通过安全上下文(称为D-Bus)与此守护程序进行对话。如果被授予,则守护程序将执行系统的关闭命令。这些规则在中定义/usr/share/polkit-1/actions/*
。
Gnome通常带有一个称为Gnome Keyring的单点登录解决方案。在此钥匙圈中,可以存储您的凭证。通过网络共享(例如,在Nautilus中)进行身份验证时,将提示您输入密码,并且有一个复选框可以记住您的密码。这将存储在密钥环中,该密钥环是一个受密码保护的数据库。该数据库将在通过PAM进行图形登录过程中解锁。
然后是基于SELinux的AppArmor。AppArmor为系统上运行的不同应用程序定义配置文件。这些配置文件处理和限制特定应用程序所需的访问。
所有这些机制也都实现在Windows操作系统中。只是以一种不同的,不太透明的方式。
我真的可以推荐一些有关上述机制的讲座,以了解它们如何协同工作。
参考文献: