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

这可能是我不明白的事情,因为我已经习惯了Windows,而且我刚刚开始使用Ubuntu。 我知道linux中的软件包含在我不明白的内容中,为什么非管理员用户不能安装软件。

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

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

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

为什么要求您输入密码

大多数软件都设计用于触摸敏感文件,即对私有数据的安全性或系统完整性敏感。 这就是软件安装存在潜在风险的原因,应该由知道自己在做什么的用户进行validation。 即使对于开源软件,在有人检查之前,您无法确定没有坏的代码位与您的新奇音频播放器一起到达。 即便如此,一些事情可能会被忽视,或者包裹可能会在途中被操纵。 谁知道程序的深度隐藏着什么? 一个用户应该。

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

如果有问题的软件不需要访问敏感文件,它(原则上)可以安装在主文件夹中,但不能以Ubuntu方式安装。 例如,您将自己编译源代码或运行自定义安装脚本。 除了更大的努力,它的缺点是不允许其他用户访问您刚刚安装的程序(因为他们无权访问您的主文件夹)。 他们需要再次安装它。 因此,这种安装方式在大规模和小规模下毫无意义,通常更容易输入密码而不是手动安装软件。

所以这就是Synaptic为密码而烦恼的原因以及为什么这样做很好。


sudoers文件

如果您真的迫切需要让其他用户安装没有密码的软件 ,您可以将它们添加到sudoers列表中。 然而,这将导致很大的安全风险 。 如果这与您无关,请考虑那里有一个机器人网络,有很多资源可以通过互联网侵入您的计算机。 他们这样做只是为了将你的计算机添加到网络中,并在你不知情的情况下使用它的连接和计算能力来做各种非法的事情。 他们甚至没有将您的个人数据告诉您。 他们只是想劫持你的电脑。 还是不关心? 真? 然后看看以下答案,这是关于sudoers列表工作的小方法:

如何让Ubuntu第一次记住永远的密码

仔细阅读。 你可以把自己锁在系统之外。

恐慌结束了

所以,现在你背后的恐慌并认真对待这件事,我可以告诉你,这真的不是那么糟糕。 如果您信任在您的计算机上工作的人,并且您没有安装允许远程访问您的系统的程序(例如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 

编辑器将打开ADD这样一行:

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

语法说明: username machine=(usernameToRunCommandAs) command1,command2,... 因此,上面的行允许confus以root身份运行synaptic和softwarecenter而无需密码查询。 您仍然需要使用sudo synapticgksudo synaptic启动它,或者在shell配置文件中添加别名`alias synaptic =’sudo synaptic’。

他们不能。 这是交易。

  1. 在Ubuntu中创建的第一个用户被视为特殊用户:这是具有管理权限的用户。 这意味着当该用户想要执行管理任务时,系统将提示他输入管理员密码。 这些任务是通过将sudo放在sudo前发出的。

  2. 所有其他用户(除非您自己更改)是普通用户,除非admin(第一个用户)允许他们这样做,否则无法在系统范围内安装软件。 普通用户只能将东西放在他们自己的家中,如果他们想要,他们可以搞乱他们的主目录。

这样一个人负责系统。

通过将这些用户添加到sudoers文件,您可以使一个以上的用户成为管理员(因此能够安装软件)。

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

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

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

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

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

  • 文件的所有者
  • 文件组(用户可以是该组的成员)
  • 所有其他非所有者和组内的用户

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

当用户执行程序时,程序将以该用户和这些文件权限的方式访问文件。默认情况下,安装程序的位置具有特权,只有所有者才能编写。 这个所有者是root。 所有其他用户只能读取和执行程序,而不能写入程序。 这就是您需要root权限才能安装程序的原因。

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

在Windows中,您将转到网站并下载安装程序。 Ubuntu使用软件存储库,您可以在其中搜索程序并安装它们。 这些程序在添加到官方存储库之前会进行审核,因此您可以确保程序中不存在任何有害意图。

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

目前没有办法告诉系统“从这个.deb安装firefox,但是在用户的主目录中,以便它与系统的其余部分隔离”; 这就是为什么目前它主要是一个全有或全无的事情。 (这也是运行第三方.debs很糟糕的原因,包和它包含的脚本都有对你的系统的root访问权限)

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

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

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

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

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

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