非管理员用户为什么不能安装软件?


11

这可能是我不了解的事情,因为我已经习惯了Windows,并且只是从Ubuntu开始。我知道linux中的软件以软件包形式提供,我不明白为什么非管理员用户不能安装软件。

我的意思是,每个应用程序都由特定用户运行,并且该用户只能以其特权运行该应用程序,因此,如果他没有管理员权限,该应用程序也将无法访问未经授权的目录等。

我希望大部分时间都可以与非管理员用户一起在PC上工作,因为对我来说,这似乎更安全,大多数时候我不需要管理员权限。尽管我知道linux中的病毒不常见,但我仍然认为最佳实践是在计算机上工作,使您自己无法对重要文件进行任何更改,这样病毒也不会损害任何重要文件,但是我需要安装用于编程和网页设计等的软件,首先,我不想一直切换用户。但是对我来说,在PC上完成的所有操作都将通过非管理员用户完成,这对我来说更安全。

我很高兴知道我在这里有什么误会,因为这里听起来有些不对劲。

Answers:


16

为什么要求您输入密码

大多数软件旨在接触敏感文件,即对您的私人数据的安全性或系统完整性敏感的文件。这就是为什么软件安装存在潜在风险,并且应该由知道自己在做什么的用户进行验证。即使对于开源软件,您也不能确定没有错误的代码位会随您的新音频播放器一起到达,除非有人进行检查。即使这样,在某些情况下也可能会被忽略或打包。谁知道程序深层隐藏的内容?一个用户应该。

Ubuntu提供了一种舒适的软件安装方式。软件开发人员可以依靠这种舒适感并假设突触/软件中心/ apt使他们能够访问这些敏感文件。Canonical检查软件存储库中是否存在错误和恶意代码。但是最终责任是您的。

如果所讨论的软件不需要访问敏感文件,则可以(原则上)将其安装在主文件夹中,尽管无需使用Ubuntu方式。例如,您将必须自己编译源代码或运行自定义安装脚本。除了付出更大的努力外,它还具有不允许其他用户访问您刚安装的程序的缺点(因为他们无权访问您的家庭文件夹)。他们将需要第二次安装它。因此,这种安装方式在大范围内毫无意义,在小规模范围内,键入密码通常比手动安装软件容易。

因此,这就是Synaptic要求输入密码的原因,以及这样做的好处。


苏多斯

如果确实需要其他用户安装没有密码的软件,则可以将其添加到sudoers列表中。但是,这将导致很大的安全风险。如果这与您无关,请考虑那里有一个具有大量资源的漫游器网络,可以通过Internet闯入您的计算机。他们这样做只是为了将您的计算机添加到网络中,并在您不知情的情况下使用其连接和计算能力来做各种非法事情。他们甚至不追随您的个人数据。他们只想劫持您的PC。还是不关心吗?真?然后查看以下答案,这是有关sudoers列表的一个小方法:

第一次后如何使Ubuntu永远记住密码

仔细阅读。您可以将自己锁定在系统之外。

恐惧结束了

因此,现在您的内心深处感到恐惧,并认真对待此事,我可以告诉您,这确实没那么糟。如果您信任计算机上的工作人员,并且没有安装允许远程访问系统的程序(例如ssh-或ftp-server),那么禁用密码确实没有那么危险。只是不要在没有考虑最坏情况的情况下这样做,并考虑您的私有数据。


忽略程序(不要轻描淡写 -参见上面的文本和链接):

# 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

编辑器将打开ADD行,如下所示:

confus confusion=(root) NOPASSWD:/usr/sbin/synaptic,/usr/bin/software-center

语法说明:username machine=(usernameToRunCommandAs) command1,command2,...。因此,以上代码允许confus以root身份运行synaptic和softwarecenter,而无需密码查询。您仍然需要在外壳配置文件中以sudo synapticgksudo synaptic或以别名“ alias synaptic ='sudo synaptic” 开头。


thanx混淆了,您真的让我理解了。很高兴看到这样一个不错的linux社区:)
fiftyeight

2
别客气。由于linux作为一个开源项目依赖于人们无偿投入工作,因此在社区中您会发现很多有用的人。
混淆使用

4

他们不能。这是交易。

  1. 在Ubuntu中创建的第一个用户被认为是特殊用户:这是具有管理权限的用户。这意味着无论何时该用户想要执行管理任务,都会提示他输入管理员密码。这些任务通过放在sudo命令前面来发出。

  2. 所有其他用户(除非您自己进行更改)都是普通用户,除非管理员(第一用户)允许,否则它们无法在系统范围内安装软件。普通用户只能将内容放在自己的主目录中,如果愿意,可以将主目录弄乱。

这样,由1个人负责系统。

通过将这些用户添加到sudoers文件中,可以使多个用户成为管理员(以便能够安装软件)。

除此之外,他们还可以在自己的家中安装软件,但这确实取决于软件:有时安装程序想要将其添加到系统中,这是不允许的。这些安装通常来自源代码,因此不是最简单的方法;)


2

在Ubuntu中,管理员具有root特权(通常称为“ root”,如“您需要成为root”)。

对文件的访问可以分为三种类型:

  • 读取(数值4)
  • 写(数值2)
  • 执行(数值1)

可以在每个文件或目录上设置这些属性。此外,可以在以下方面设置这些限制:

  • 文件的所有者
  • 文件组(用户可以是该组的成员)
  • 不是所有者或组中的所有其他用户

这些原则构成了Linux文件权限的基础。在Windows中,一切都可以执行。例如给它一个.cmd.exe扩展名。在Ubuntu中,您需要显式添加执行位,否则将引发权限错误。

当用户执行程序时,该程序将以该用户身份访问文件,并且文件权限也随之增加。默认情况下,安装程序的位置具有特权,只有所有者可以写入。该所有者是root。所有其他用户只能读取和执行程序,而不能写入程序。这就是为什么您需要root特权才能安装程序。

Ubuntu有一个名为sudo(SuperUser DO ...)的特殊程序,用于以root特权运行程序。这可用于安装软件。运行时,sudo程序会要求您输入用户密码。请注意,只有该admin组的成员才能使用以root身份运行程序sudo

在Windows中,您将转到一个网站并下载安装程序。Ubuntu与软件存储库一起使用,您可以在其中搜索程序并进行安装。在将这些程序添加到正式存储库之前,需要对其进行审核,因此可以确保程序中没有有害意图。


好的,我理解了,所以用户不能以某种方式将软件安装到其主目录中,并且这样就不会接触敏感区域吗?我的意思是,如果他们真的想要,他们可能可以下载程序所需的文件,并将它们放在自己的主目录中,不是吗?
十一月58

他们可以在该主目录中安装软件。他们只需要自己编译它,然后将二进制文件放在这里即可。当然,以这种方式安装的软件将无法在其他位置访问受保护的文件。尽管大多数软件都是以某种方式构建的,但它需要访问此类文件。
con-f-use

我已使用安装软件的“ Ubuntu方式”更新了答案。可以在您的主目录中安装软件,但这实际上取决于您下载的内容。SOmetimes,它是带有扩展名.tar.gz或的存档.tar.bz2。这些通常可以直接在主目录中提取,但是有时您需要在使用之前编译程序。如果文件带有.bin.sh扩展名,则通常是可执行安装程序,其用法有所不同。请记住,Ubuntu不使用文件扩展名来确定类型,而是使用其内容。
Lekensteyn 2011年

2

非管理员用户无法安装软件,因为软件包在安装时会以root用户身份运行,因为它们安装在系统的特权部分,运行维护者脚本等。

当前没有办法告诉系统“从此.deb安装firefox,但将其安装在用户的主目录中,以便与系统的其余部分隔离开”。这就是为什么目前几乎全有或全无。(这也是为什么运行第三方.debs不好,软件包及其包含的脚本具有对系统的root访问权的原因)


1

您提到了Windows和Ubuntu之间的巨大差异。在Windows中,当您以管理员身份登录时,无需输入密码即可安装程序。这也使恶意软件能够运行其程序。在Ubuntu(Linux)中,即使以管理员身份登录,系统也总是在您更改系统时要求您输入密码。因此,恶意软件无法轻易入侵您的系统。总结一下,以管理员身份运行Ubuntu。如果您为孩子开设另一个用户帐户,而不是只给他们普通用户权限,那么他们就不会搞砸系统。


“ admin”是指具有sudo权限的用户吗?真正的管理员将是root。

Windows软件不会要求您输入密码,因为您必须以管理员身份登录。但是由于Windows根本无法正常工作,因此,如果您要下载一个在不知不觉中包含危险脚本的deb文件,并且放了通行证来安装该文件,则可能会损坏该系统,就像Windows恶意软件一样。
Uri Herrera

甚至Windows的“ Admin”帐户也不是系统文件的真正所有者,而是SYSTEM(在这种情况下),“ Admin”是您在安装时创建的帐户,而ROOT是系统文件的真实帐户。所有者
Uri Herrera

0

您可以以普通的非管理员用户身份安装软件。普通用户安装的软件将由该用户“拥有”,这实际上意味着它是该用户的扩展-与拥有用户相比,它没有比拥有用户更多的权限,尽管它可能具有更少的权限。用户的选择。

一种常见的做法是用户在其主目录中创建一个“ bin”目录。如果/ home / [user] / bin存在,则将其添加到该用户路径的开头。您可以将可执行文件放在/ home / [user] / bin或您具有写入和执行访问权限的任何其他文件夹中,然后从那里执行程序。

普通用户不能做的是在系统范围内安装软件包。例如,普通用户不能将可执行文件放在/ usr / bin中,也不能向它们授予超出用户自身权限的权限。显然,这是出于基本的安全原因-例如,您需要管理员权限才能重新格式化硬盘驱动器,并且您不希望有人未经授权地这样做。

据我所知,除非具有管理员权限,否则您不能使用软件包管理软件来安装软件包,因为软件包管理是在系统范围内进行的。

但是,没有管理员权限,您可以创建shell脚本,编写和编译源代码,下载和编译“ tarball”(它们是复杂应用程序的源代码包),或者下载可执行文件,只要它们只能与普通用户的权限。某些独立游戏,例如World of Goo或X-Plane 9,可以通过这种方式安装和使用。


在重读问题时,我认为我的答案没有直接关系。一个更相关的答案是,假设用户的普通帐户具有管理员权限,则在执行任何需要超级用户权限的操作之前应该提示他输入密码,并且这样做应该足够安全,但是他可以创建另一个用户帐户来执行此操作如果他愿意,则没有管理员权限。
bgvaughan 2011年

您的问题实际上是有帮助的,谢谢:)
fiftyeight
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.