我在PC上安装了Ubuntu。要登录,我使用在安装过程中创建的用户名和密码。这是否意味着我是root用户?如果是,那么我如何成为非根用户?看来非root用户比admin用户更安全。
我在PC上安装了Ubuntu。要登录,我使用在安装过程中创建的用户名和密码。这是否意味着我是root用户?如果是,那么我如何成为非根用户?看来非root用户比admin用户更安全。
Answers:
您是管理员,但不是root
。该root
用户可以做任何事情。管理员可以像执行操作一样执行操作root
,但是通常,管理员不能执行操作root
。这样,您就可以完全控制自己的系统,但是只有在选择使用它时才可以。
当您尝试使用时,Ubuntu会要求您输入密码root
,以确保它确实是您。
真实的人类用户具有代表他们的用户帐户。您在安装Ubuntu时创建了一个这样的帐户。但是,并非所有用户帐户都代表真实的人类用户。
真实的人类用户通过其用户帐户被授予(和拒绝)功能。他们必须使用其用户帐户才能使用该系统;因此,其用户帐户的功能和限制适用于他们。
用户帐户还用于整理功能和限制集。存在一些用户帐户-实际上,除非您有很多人工用户,否则大多数用户帐户都存在-以便某些程序或命令可以其身份运行,该身份具有正确的能力和对工作的限制。
例如,该www-data
用户存在,因此,如果您运行Web服务器,则该用户拥有服务器可访问的数据。无需授予真正的人类用户对这些数据进行未经检查的更改的权限,也不必授予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中禁用了as登录,但有一些方法可以获取root
不进行身份验证的shell root
,这会产生类似的效果:最常见的是sudo -s
or-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...
这将促使我要我的密码。(不是root
的密码;root
没有一个。)
root
。在默认配置中,我必须输入密码才能执行此操作。root
即使输入密码也无法执行动作。sudo
如果运行命令的用户不是管理员,则命令将失败。因为管理员是非常普通的用户,除了用于执行操作的能力root
,需要运行一个命令root
的权限仍然会失败,当运行命令,除了作为root
。
屏幕截图显示了sudo
用于执行管理任务的需求。(基于“三明治”由兰德尔罗。)
图形程序可以root
通过诸如/和的图形前端sudo
运行。例如,以我可以运行的方式运行GParted 。然后,将以图形方式提示我输入密码。gksu
gksudo
kdesudo
root
gksudo gparted
由于系统已提示我,因此不必一定要有终端。这是运行管理工具的一种方式root
。
Polkit(曾经称为PolicyKit)是管理员执行的另一种方式root
。程序访问执行该动作的服务。有时,该操作正在运行整个程序。有时,动作会受到更多限制。
如今,许多图形系统管理实用程序已设置为默认情况下使用polkit而不是使用sudo
。
这种实用程序的一个示例是软件中心。它充分利用了polkit的优势,要求用户仅在想要执行需要root
特权的操作时才输入密码。(这也可以通过sudo
基于-的身份验证来实现,但是要实现起来更加困难和麻烦。)
在软件中心,我可以找到并阅读有关应用程序的信息。然后在我要安装密码时要求我输入密码。
任何图形程序可以作为运行root
用gksudo
和其它图形sudo
前端。(该程序可能无法正常工作得非常好,这取决于它是否被设计用来作为root
,但启动程序的命令会被执行root
。)
尽管polkit现在比sudo
GUI前端更常见,因为Ubuntu上的应用程序在root
后台执行操作,但是polki只会运行图形应用程序,root
就像有一个允许它的配置文件并指出可以执行的操作一样。
pkexec
是用于通过polkit运行程序的命令。
像一样sudo
,pkexec
可以运行非图形命令。(并且它不需要配置文件来定义命令的功能-只需将命令运行为即可root
。)
pkexec command...
pkexec
即使从终端运行密码也以图形方式提示输入密码(这是其行为与gksudo
直接运行相比更类似于密码的一种方式sudo
)。
(如果没有GUI,例如,如果您是从虚拟控制台或纯文本SSH会话登录的,或者GUI无法正常工作,那么pkexec
它将正常降级并在命令行上提示您输入密码)
成功完成身份验证后,该命令将在终端中运行。
root
root
之所以特别是因为它可以做任何可以做的事情。但这是一个与任何帐户一样的用户帐户,可以稍微修改root
以sudo
(直接或使用图形前端)或polkit来运行命令的方式,以便以任何其他用户的身份运行命令:
sudo -u username command...
gksudo -u username command...
pkexec --user username command...
sudo
先输入?那怎么安全?使用命令运行sudo
有点像调用教皇的错误。
当您使用sudo
[invoke papal infallibility] 运行命令时,Ubuntu [天主教徒]会努力确保您确实是 [真正的教皇]。
是的,我知道教皇无误(即使是规范性的)也可以声明。并行不是完美的。
尝试root
使用sudo
(或polkit)做某事很重要-Ubuntu不仅会像其他所有运行程序一样让幻灯片放过。
提示您输入密码。(然后,您会记住此操作一小段时间,因此在管理系统时不必不断输入密码。)
除了提醒您要小心之外,这还可以防止以下两种情况:
root
(包括程序包管理器安装的任何程序,例如LibreOffice)或深层更改系统。su
。那是什么?我可以用吗?su
以其他用户身份进行身份验证,然后运行命令(或启动交互式外壳程序)。这可能限制谁被允许使用su
,但su
与进行身份验证目标帐户的密码,用户的不是密码运行。
例如,以username身份运行,就像。su username -c 'command...'
command...
sudo -u username command...
但是,当您像username
使用命令那样运行命令时sudo
,请输入密码。当您与一样运行命令username
时su
,请输入username
密码。
由于su
进行认证为目标用户,用su
你只能运行命令的用户,其帐户被启用。
默认情况下,root
帐户(如www-data
和nobody
)处于禁用状态。没有密码可以以身份登录root
。因此,您不能使用su
以运行命令root
。
您可以用来su
以另一个可以登录的用户身份运行命令(通常包括系统上代表人类的所有用户帐户)。
以访客身份登录后,您将无法使用su
。
su
和sudo
并非管理员的人甚至可以su
用来sudo
以管理员身份运行。(但是,这是可以的,因为他们需要管理员密码才能以管理员身份运行命令。)也就是说,受限用户可以使用su
来以运行sudo
身份运行命令root
。看起来可能像:
su username -c 'sudo command...'
(以这种方式运行图形程序需要特别注意。)
su
一种更安全的方式来运行命令root
吗?可能不是。
root
呢?使他们成为受限用户而不是管理员。
sudo
该root
怎么办?除非您重新配置sudo
为不使用密码即可成功执行,否则它将失败。
root
在最近的sudo
命令中背负运行的程序,因此不需要密码吗?这将不太可能成功。如今,大多数操作系统(包括Ubuntu)已sudo
默认配置,因此其时间戳仅适用于特定上下文。
例如,如果我sudo ...
在一个“终端”选项卡中运行并成功进行身份验证,则sudo
在另一个选项卡中(或由不相关的GUI程序运行,或者从虚拟控制台或SSH会话运行)仍会提示您输入密码。即使此后立即运行。
没有。
sudo
polkit或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
使用该组。
如果您愿意,可以。在系统设置 > 用户帐户中创建一个受限用户帐户,然后以该用户身份登录。
是的,只需将其从sudo
和admin
组中删除(请参见上文)。
但是,您应确保至少有一个其他管理员帐户,以便可以管理系统。如果没有,则必须启动到恢复模式或实时CD,然后让某些用户再次成为管理员。(这是类似的,以重置丢失的管理员密码。)
用于管理用户和组的图形工具通常会使您无法创建没有管理员的系统,或者至少会警告您。命令行工具通常不会(相信您知道自己在做什么)。
root
就像Batman一样。区别完全是构建的身份问题。布鲁斯·韦恩(Bruce Wayne)随时随地都可以成为蝙蝠侠,几乎可以做任何事情,但他永远都是布鲁斯·韦恩(Bruce Wayne)的幕后黑手。尽管如此,蝙蝠侠还是他本来的真实人物-布鲁斯·韦恩的性格是一种使他免受成为蝙蝠侠的后果的创造。通过在日常生活中扮演韦恩,他经常可以保护自己和亲人免受自己的错误,系统缺陷和哥谭市的恶意软件的侵害。
没有愚蠢的问题;)
我希望这可以澄清一些事情:
在Ubuntu中,可以创建两种不同类型的用户帐户:标准帐户和管理员帐户。两者之间的区别:标准帐户不允许通过root用户访问权限对系统进行任何重要更改,而管理员帐户可以使用其密码以root用户身份进行更改。Root用户本身是系统创建的许多用户之一,您通常不会看到或注意到该用户,并且您不能以此身份登录(无论如何,默认情况下)。如果您登录了管理员类型的帐户,则可以通过以下方式成为该Root用户:sudo
在终端中输入命令,然后就可以输入密码来安装软件,进行系统更改等。如果以标准用户身份登录,则将无法执行任何操作。
sudo
在所有Linux系统中要对系统进行任何更改,我们需要以root用户身份进行身份验证,并且要应用所有更改,我们需要以root用户身份进行身份验证。
普通用户无法在整个系统范围内应用更改。与Windows相比,这是Linux的优势。
如果进行了任何攻击,那么这将仅扩展到Linux / Unix系统中的该区域,因为要攻击或修改其余区域,它需要root权限,但是在Windows中,如果某个位置受到攻击,则意味着整个系统都将受到影响。
这就是为什么只有在许多问题中,如果有任何用户不要求输入root密码的提示,那么我们会警告他,因为在安全情况下不建议这样做,而是由他们自己决定。
如果您想成为root用户,sudo可以为您提供帮助。
sudo -i
如果您想以root用户身份启动应用程序,则可以sudo。
sudo <app_name>
以非root用户身份运行系统总是一个更好的选择。
安装期间创建的帐户是管理员帐户。
在Ubuntu中,root帐户没有密码,因此,您无法以root
用户身份登录。有许多方法可以避免此情况,但这是默认设置。
Ubuntu中的管理员帐户意味着该用户已添加到组中sudo
,这使该帐户有资格使用该sudo
命令临时获得特权。PolicyKit可以通过提示“管理员”密码来请求特权升级。(您需要选择一个管理员用户,并提供该帐户的密码。)
打开终端并尝试更新软件包索引。apt-get update
是用于执行此操作的命令,它需要以root用户身份运行。仅当您以root用户身份登录或使用特权升级以root用户身份执行时,它才有效。管理员可以sudo apt-get update
通过对sudo
允许命令以任何用户身份运行的机制进行身份验证来运行。不允许标准用户执行此操作。
从系统设置中打开用户帐户,然后尝试添加新用户。那里使用的保护机制是PolicyKit。允许管理员对特权进行身份验证和升级,但标准用户将被阻止。需要输入“管理员”密码才能继续。
Administrator
在两个窗格中的帐户名下看到管理员帐户和Standard
普通用户。没有。
您用来登录Ubuntu的用户不是admin用户(Linux术语中的admin用户称为root)
root
与sudo
和PolicyKit的)。
sudo
您可以通过尝试以root用户身份运行的程序来限制访问权限,这会使它变得更加模糊。
root
有sudo
,那是无关紧要的。管理员可以运行任何的命令root
用sudo
。默认情况下,没有其他人可以使用root
(或任何其他用户)运行任何命令sudo
。而且,sudo
这只是一种以root身份执行操作的机制- sudo
如今,人们倾向于认为实际上通常是PolicyKit。