Fir*_*ame 43 root sudo users administrator privileges
我在我的电脑上安装了 Ubuntu。要登录,我使用我在安装过程中创建的用户名和密码。这是否意味着我是 root 用户?如果是,那么我如何成为非root用户?看起来非 root 用户比管理员用户更安全。
Eli*_*gan 84
您是管理员,但不是root。该root用户可以做任何事情。管理员可以执行操作root,但通常管理员所做的不是由root. 这样,您就可以完全控制自己的系统,但前提是您选择使用它。
当您尝试以 方式执行操作时,Ubuntu 会询问您的密码root,以确保它确实是您本人。
真正的人类用户有用户帐户来代表他们。您在安装 Ubuntu 时创建了一个这样的帐户。但并非所有用户帐户都代表真正的人类用户。
真实的人类用户通过他们的用户帐户被授予(和拒绝)能力。他们必须使用他们的用户帐户才能使用系统;因此,他们的用户帐户的能力和限制适用于他们。
用户帐户还用于编纂能力和限制集。一些用户帐户——实际上,大多数,除非你有很多机器的人类用户——存在,以便某些程序或命令可以用他们的身份运行,一个具有正确能力和工作限制的身份。
例如,www-data用户存在,因此如果您运行 Web 服务器,它拥有服务器可访问的数据。没有真正的人类用户必须被授权对这些数据进行未经检查的更改,并且 Web 服务器不必被授权执行任何不需要为 Web 服务的操作。因此,与 Web 服务器由拥有 Web 服务器的所有权力(并且 Web 服务器将其权力)具有)。
该超级用户,用户名为root,是有能力和局限性的一个非常具体的组合非人类用户帐户:所有的能力,并没有任何限制。
root被允许做任何事情。仍有一些事情root不能做,因为系统本身无法执行或无法理解它们。所以root不能杀死一个处于不间断睡眠状态的进程,或者让一块石头太重而无法移动,然后移动它。
许多重要的系统进程,例如init,作为 运行root,并root用于执行管理任务。
root吗?可以配置root帐户,以便可以使用密码登录,但默认情况下在 Ubuntu 中未启用此功能。取而代之的是,你能想到的root作为一样www-data,lp,nobody,和其他非人类的账户。(运行cat /etc/passwd或getent passwd查看它们。)
人类用户使用他们自己的用户帐户登录,然后如果要使用另一个用户帐户执行某些任务,他们会使用该身份执行该任务,而实际上并未以该用户身份登录。
可以配置其他非人类用户,例如www-data,因此也可以以他们的身份登录。不过,这种情况很少见,而在其他一些类 Unix 操作系统中,通常像root 在终端中一样登录。运行整个图形界面的风险root,再加上有多少图形程序不是为运行而设计的root,可能无法正常工作,这意味着您永远不应该尝试获得一个root拥有的桌面会话。
请注意,虽然root在 Ubuntu 中默认禁用登录身份,但有一些方法可以在root不进行身份验证的情况下获取shell root,这会产生类似的效果:最常见的是sudo -s或-i、恢复模式和类似技术。(如果您不知道这些东西是什么,请不要担心。)这实际上并不是登录:在恢复模式下,您root在任何登录发生之前就已经成为了;使用sudo-based 方法,您只是以 root 身份运行 shell。
在 Ubuntu 中,管理员是可以做任何他们想做的事情的用户root,当他们选择这样做时。

系统设置 > 用户帐户。“Eliah Kagan”是管理员,所以他可以做一些事情root,但他不是root。
我是我的 Ubuntu 系统的管理员。当我运行程序时,通常它们运行为ek(“Eliah Kagan”是与ek用户名对应的全名。)
当我运行 AbiWord 或 LibreOffice 时,它以ek. 当我运行 Firefox、Chromium、Empathy 或 Pidgin 时,它以ek. 运行以提供桌面界面的程序作为ek.
但是,我是管理员,所以如果我需要执行管理任务,我可以这样做。
在命令行上,我通常使用以下sudo方式运行命令root:
sudo command...Run Code Online (Sandbox Code Playgroud)
这将促使我要我的密码。(不是root的密码;root没有密码。)
root. 在默认配置中,我必须输入密码才能执行此操作。root,即使输入他们的密码也是如此。sudo如果运行命令的用户不是管理员,命令将失败。因为管理员是完全普通的用户,除了能够以 身份执行操作之外root,运行需要root特权的命令仍然会失败,除非命令以身份root运行。

说明需要sudo用于执行管理任务的屏幕截图。(基于“三明治”由兰德尔罗。)
图形程序可以root通过图形前端sudo运行,例如gksu/gksudo和kdesudo. 例如,为了运行 GParted,root我可以运行gksudo gparted. 然后会以图形方式提示我输入密码。

由于我以图形方式提示,因此不必有终端。这是管理工具作为root.
Polkit(曾经称为 PolicyKit)是管理员以root. 程序访问执行操作的服务。有时,动作是运行整个程序;有时动作更有限。
如今,许多图形系统管理实用程序默认设置为使用 polkit,而不是使用sudo.
此类实用程序的一个示例是软件中心。它充分利用了 polkit,要求用户只有在他们想做一些需要root特权的事情时才输入他们的密码。(这也可以通过sudo基于 -based 的身份验证实现,但实现起来更难也更难看。)
在软件中心,我可以找到并阅读有关应用程序的信息;然后当我想安装它时会要求我输入密码。

任何图形程序可以作为运行root用gksudo和其它图形sudo前端。(该程序可能无法正常工作得非常好,这取决于它是否被设计用来作为root,但启动程序的命令会被执行root。)
虽然 polkit 现在比sudoGUI 前端更常见,因为 Ubuntu 上的应用程序在root幕后执行操作的方式,polki 只会运行图形应用程序,就root 好像有一个配置文件允许它并指示可以执行哪些操作。
pkexec 是用于使用 polkit 运行程序的命令。
像sudo,pkexec可以运行非图形命令。(并且它不需要定义命令功能的配置文件——它只是将命令作为root.)
pkexec command...Run Code Online (Sandbox Code Playgroud)
pkexec以图形方式提示输入密码,即使它是从终端运行的(这是其行为与gksudo直接运行更相似的方式之一sudo)。
(如果没有 GUI——例如,如果您从虚拟控制台或纯文本SSH 会话登录,或者 GUI 无法正常运行——那么pkexec将优雅地降级并在命令行上提示您输入密码.)

成功执行身份验证后,该命令将在终端中运行。

rootroot很特别,因为它可以做任何可以做的事情。但它是一个用户帐户等任何帐户,和运行命令为一体的方式root与sudo(直接地或用图形前端)或polkit可以稍微进行修改,以运行命令的任何其他用户:
sudo -u username command...Run Code Online (Sandbox Code Playgroud)
gksudo -u username command...Run Code Online (Sandbox Code Playgroud)
pkexec --user username command...Run Code Online (Sandbox Code Playgroud)
sudo先打字?这安全性如何?!使用 with 运行命令sudo有点像调用papal infalliblity。
当您使用sudo[invoke papal infallibility]运行命令时,Ubuntu [Catholic people] 会努力确保您真的是您[真正的教皇]。
是的,我知道教皇无误(即使是规范的)是声明性的;平行并不完美。
尝试像rootwith sudo(或 polkit)那样做一些事情是一件大事——Ubuntu 不会像您运行程序的所有其他时间一样让它溜走。
系统会提示您输入密码。(然后,您所做的操作会在短时间内被记住,因此您不必在管理系统时不断输入密码。)
除了提醒您要小心之外,这还可以防止两种情况:
root(包括包管理器安装的任何东西,例如 LibreOffice),也不能更深层次地更改系统。su。那是什么?我可以用那个吗?su作为另一个用户进行身份验证,并运行命令(或启动交互式 shell)。可以限制谁被允许使用su,但su使用目标帐户的密码进行身份验证,而不是运行用户的密码。
例如,作为username运行,就像.su username -c 'command...'command...sudo -u username command...
但是当您像usernamewith一样运行命令时sudo,您需要输入密码。当您像usernamewith一样运行命令时su,您需要输入username密码。
由于su进行认证为目标用户,用su你只能运行命令的用户,其帐户被启用。
该root帐户(如www-data和nobody)默认情况下禁用。没有可以作为 登录的密码root。所以你不能su用来运行命令作为root.
您可以使用su可以登录的其他用户身份运行命令(通常包括系统上代表人类的所有用户帐户)。
以访客身份登录时,您根本无法使用su。
su和sudo不是管理员的人甚至可以使用管理员su身份运行sudo。(不过这没关系,因为他们需要管理员的密码才能以管理员身份运行命令。)也就是说,受限用户可以使用surunsudo来运行命令root。这看起来像:
su username -c 'sudo command...'Run Code Online (Sandbox Code Playgroud)
(以这种方式运行图形程序需要特别小心。)
su命令作为运行命令不是更安全的方式root吗?可能不是。
root怎么办?使他们成为受限用户而不是管理员。
sudo做root怎么办?除非您重新配置sudo使其在没有密码的情况下成功,否则它将失败。
root在最近的sudo命令上运行的程序不能运行,所以不需要密码吗?这不太可能成功。如今,大多数操作系统(包括 Ubuntu)都sudo默认进行了配置,因此其时间戳仅适用于特定上下文。
例如,如果我sudo ...在一个终端选项卡中运行并成功验证,sudo在另一个选项卡中(或由不相关的 GUI 程序运行,或者我从虚拟控制台或 SSH 会话运行)仍将提示输入密码。即使它之后立即运行。
不。
sudopolkit 或 polkit 进行身份验证时,它难道不能“监听”正在键入的内容吗?可能,是的。但是它可以“监听”输入的密码su。
不要告诉别人你的密码。
理想情况下,他们应该有一个单独的用户帐户,让他们可以做他们需要做的事情。例如,可以在帐户之间共享文件,允许多个用户写入文件,同时仍然拒绝其他用户访问。
但是,在允许不太受信任的人共享您的帐户的情况下,它应该是一个有限的用户帐户。您可以为此目的创建一个单独的帐户(这是有道理的 - 如果它是为您和您想要拥有不同功能的其他人的帐户,则应该是一个不同的帐户)。
sudo和su,使人们身份登录root,手动?不,因为让人们登录存在严重的缺点root。在可能的情况下,应采取尽可能少的行动root。甚至与管理系统直接相关的大多数行为(例如,查看用户的配置和阅读日志)通常也不需要root特权。
此外,正如潜在的恶意程序可以看什么类型的人,当他们运行sudo或su,或创建一个假的sudo/su密码提示,潜在恶意程序可以创建一个伪造的登录界面了。
在 Ubuntu 12.04 及更高版本中,管理员是名为sudo.
在 Ubuntu 11.10 及更早版本中,管理员是名为admin.
当 12.04 之前的 Ubuntu 系统升级到 12.04 或更高版本时,admin为了向后兼容而保留该组(并继续向其中的用户授予管理权),但sudo也会使用该组。
如果你喜欢,当然。在System Settings > User Accounts 中创建一个受限用户帐户,然后以该用户身份登录。
是的,只需将其从sudo和admin组中删除(见上文)。
但是您应该确保至少有一个其他管理员帐户,以便您可以管理您的系统。如果没有,那么您必须启动到恢复模式或 Live CD 并让某个用户再次成为管理员。(这是类似的,以重置丢失的管理员密码。)
用于管理用户和组的图形工具通常会阻止您创建没有管理员的系统,或者至少会警告您。命令行工具通常不会(相信您知道自己在做什么)。
| 归档时间: |
|
| 查看次数: |
41562 次 |
| 最近记录: |