这可能是我不明白的地方,因为我习惯使用 Windows,而刚开始使用 Ubuntu。我知道 Linux 中的软件是以软件包的形式提供的,但我不明白的是为什么非管理员用户不能安装软件。
我的意思是,每个应用程序都由特定的用户运行,并且该用户只能以其权限运行该应用程序,因此如果他没有管理员权限,该应用程序也将无法访问未经授权的目录等。
我希望大多数时间都以非管理员用户的身份在我的电脑上工作,因为我觉得这样更安全,大多数时间我都不需要管理员权限。尽管我知道 Linux 中的病毒并不常见,但我仍然认为最佳做法是在你自己无法对重要文件进行任何更改的状态下使用计算机,这样病毒也不会损害任何重要文件,但我需要安装用于编程和网页设计等的软件。首先,我不想一直切换用户。但对我来说,通过非管理员用户在电脑上完成所有操作听起来更安全。
我很高兴知道我在这里有什么误解,因为这里有些东西听起来不对劲。
答案1
为什么要求您输入密码
大多数软件的设计都涉及敏感文件,即对您的私人数据或系统完整性的安全性非常敏感的文件。这就是为什么软件安装存在潜在风险,应该由知道自己在做什么的用户进行验证。即使是开源软件,在有人检查之前,您也无法确定您的新音频播放器中是否包含恶意代码。即便如此,也可能有人忽略了某些东西,或者软件包在途中被操纵了。谁知道程序深处隐藏着什么?用户应该知道。
Ubuntu 提供了一种安装软件的舒适方式。软件开发人员可以依赖这种舒适感,并假设 synaptic/software center/apt 使他们能够访问这些敏感文件。Canonical 会检查软件存储库中是否存在错误和恶意代码。但最终的责任由您承担。
如果相关软件不需要访问敏感文件,那么它可以(原则上)安装在主文件夹中,但不能采用 Ubuntu 的方式。例如,您必须自己编译源代码或运行自定义安装脚本。除了需要付出更多努力之外,它还有一个缺点,就是不允许其他用户访问您刚刚安装的程序(因为他们无权访问您的主文件夹)。他们需要再次安装它。因此,这种安装方式在大规模上毫无意义,而在小规模上,输入密码通常比手动安装软件更容易。
这就是为什么 Synaptic 需要密码以及为什么这样做是有益的。
Sudoers
如果你确实急需让其他用户无需密码安装软件,你可以将它们添加到 sudoers 列表中。然而,这将导致巨大的安全风险。如果这不让你担心,那么请考虑一下,外面有一个拥有大量资源的机器人网络,它们可以通过互联网侵入你的计算机。他们这样做只是为了将你的计算机添加到网络中,并在你不知情的情况下利用其连接和计算能力进行各种非法活动。他们甚至没有想要你的个人数据。他们只是想劫持你的电脑。还是不担心?真的吗?那么请看下面的答案,这是 sudoers 列表工作原理的一个小指南:
请仔细阅读。您可能会将自己锁定在系统之外。
恐慌已经过去
所以现在你已经不再害怕,并开始认真对待此事,我可以告诉你,事情其实并没有那么糟糕。如果你信任使用你电脑的人,并且你没有安装允许远程访问系统的程序(例如 ssh 或 ftp 服务器),那么禁用密码功能其实并没有那么危险。只是不要不考虑最坏的情况就这么做,要考虑你的私人数据。
忽略会议纪要(不要轻易这样做- 参见正文和链接在上面):
# in shell type these commands
sudo su # in case you do something stupid, you'll have a root shell open
select-editor # (optional) will allow you to select text editor
visudo # secure way to open sudoers list
编辑器将打开添加如下行:
confus confusion=(root) NOPASSWD:/usr/sbin/synaptic,/usr/bin/software-center
语法解释:username machine=(usernameToRunCommandAs) command1,command2,...
。因此,上述行允许confus以root身份运行synaptic和softwarecenter,而无需密码查询。您仍然需要使用sudo synaptic
或启动它gksudo synaptic
,或者在您的shell配置文件中放置一个别名“alias synaptic ='sudo synaptic'”。
答案2
他们不能。事情是这样的。
在 Ubuntu 中创建的第一个用户被视为特殊用户:这是具有管理权限的用户。这意味着,每当此用户想要执行管理任务时,系统都会提示他输入管理员密码。这些任务是通过在
sudo
命令前面输入来执行的。所有其他用户(除非您自己更改)都是普通用户,除非管理员(第一个用户)允许,否则无法在整个系统范围内安装软件。普通用户只能将东西放在自己的主目录中,如果他们愿意,他们可以弄乱他们的主目录。
这样,只需一个人负责整个系统。
您可以通过将多个用户添加到 sudoers 文件来使这些用户成为管理员(以便能够安装软件)。
此外,他们可以在家中安装软件,但这取决于软件:有时安装程序想将其添加到系统中,但这是不允许的。这些安装往往来自源代码,因此这不是最简单的方法 ;)
答案3
在 Ubuntu 中,管理员具有 root 权限(通常简称为“root”,如“您需要成为 root”)。
对文件的访问可以分为三种类型:
- 读取(数值 4)
- 写入(数值 2)
- 执行(数值 1)
可以为每个文件或目录设置这些属性。此外,还可以在以下对象上设置这些限制:
- 文件的所有者
- 文件的组(用户可以是该组的成员)
- 除所有者或组外的所有其他用户
这些原则构成了 Linux 文件权限的基础。在 Windows 中,一切都可以执行。例如,给它一个.cmd
或扩展名。在 Ubuntu 中,您需要明确添加执行位,否则会引发权限错误。.exe
当用户执行程序时,程序会以该用户的身份访问文件,并且这些文件权限会生效。默认情况下,安装程序的位置是特权位置,只有所有者可以写入。此所有者是 root。所有其他用户只能读取和执行程序,而不能写入。这就是为什么您需要 root 权限才能安装程序。
Ubuntu 有一个名为sudo
(SuperUser DO ...) 的特殊程序,用于以 root 权限运行程序。这可用于安装软件。运行时,该sudo
程序会要求您输入用户密码。请注意,只有组成员admin
才能使用 以 root 身份运行程序sudo
。
在 Windows 中,您可以访问网站并下载安装程序。Ubuntu 使用软件存储库,您可以在其中搜索程序并安装它们。这些程序在添加到官方存储库之前会经过审查,因此您可以确保程序中不存在任何有害意图。
答案4
您提到了 Windows 和 Ubuntu 之间的巨大差异。在 Windows 中,当您以管理员身份登录时,程序将无需密码即可安装。这也使恶意软件能够运行其程序。在 Ubuntu (Linux) 中,即使以管理员身份登录,系统也会在您更改系统时要求您输入密码。因此,恶意软件无法轻易侵入您的系统。总之,以管理员身份运行 Ubuntu。如果您为孩子打开另一个用户帐户,请只给他们普通用户权限,这样他们就不会搞砸系统。