当前位置:首页 > 文章 > 系统OS > 正文内容

Ubuntu初学教程,基本的命令(五)之超级用户和命令行

myblog4个月前 (06-25)系统OS85

超级用户,顾名思义,是一个拥有超能力的用户。在旧系统中,它是一个真正的用户,具有一个真实的用户名(几乎总是“root”),您可以像登录密码一样登录。至于这些超级功能:root可以修改或删除系统上任何目录中的任何文件,而不管这些文件的所有者是谁;root可以重写防火墙规则或启动网络服务,从而可能在攻击之前打开机器;root可以关闭机器,即使其他人仍在使用它。简而言之,root几乎可以做任何事情,轻松地跳过通常为阻止用户越界而设置的安全措施。

当然,作为根用户登录的人和其他人一样能够犯错误。计算历史记录中充满了错误的命令、删除整个文件系统或杀死重要服务器的故事。还有一种恶意攻击的可能性:如果用户以root身份登录并离开自己的办公桌,那么不满的同事跳上他们的机器并造成严重破坏也就不太棘手了。尽管如此,人性是它的本质,多年来许多管理员都因为使用根作为他们的主要帐户,或者仅仅是帐户而有罪。

为了减少这些问题,许多Linux发行版开始鼓励使用su命令。这被不同地描述为“超级用户”或“开关用户”的缩写,并且允许您在机器上更改为另一个用户,而不必再次登录或退出。当不使用任何参数时,它假定您想要更改为根用户(因此是名称的第一个解释),但是您可以将用户名传递给它,以便切换到特定的用户帐户(第二个解释)。通过鼓励使用su,目的是说服管理员将大部分时间用于正常帐户,只在需要时切换到超级用户帐户,然后使用logout命令(或Ctrl-D快捷方式)尽快返回到他们的用户级帐户。

通过最小化root用户登录的时间,su的使用减少了发生灾难性错误的机会。使用su切换到根帐户只是su安全方面向前迈出的一小步。

使用su时,整个终端会话将切换到其他用户。 不需要root用户访问权限的命令(如pwdls这样的普通命令)将在超级用户的主持下运行,从而增加了程序中引起重大问题的错误的风险。 更糟糕的是,如果您不知道当前以哪个用户身份运行,则您发出的命令在以用户身份运行时可能会非常友好,但是如果以root用户身份运行,则可能会破坏整个系统。

最好完全禁用root帐户,而不是允许具有危险权限的长期终端会话,而是要求用户根据每个命令专门请求超级用户权限。 该方法的关键是称为sudo的命令(如“切换用户并执行此命令”中所述)。

sudo用于为必须以超级用户特权运行的命令前。 配置文件用于定义哪些用户可以使用sudo以及可以运行哪些命令。 当运行这样的命令时,系统会提示用户输入自己的密码,然后将其缓存一段时间(默认为15分钟),因此,如果他们需要运行多个超级用户级别的命令,则不会不断获取该密码。 要求输入。

在Ubuntu系统上,安装系统时创建的第一个用户被视为超级用户。 添加新用户时,可以选择以管理员身份创建他们,在这种情况下,他们还可以使用sudo运行超级用户命令。 在Ubuntu 18.04的此屏幕截图中,您可以在对话框顶部看到该选项:

Ubuntu 18.04 add user dialog

假设您使用的是sudo的Linux系统,并且您的帐户已配置为管理员,请尝试以下操作,以查看尝试访问被认为是敏感文件(包含加密密码)的情况:

cat /etc/shadow
sudo cat /etc/shadow

Using sudo


如果在出现提示时输入密码,您应该会看到/etc/shadow文件的内容。 现在,通过运行reset命令清除终端,然后再次运行sudo cat /etc/shadow。 这次文件将显示在文件中,而不会提示您输入密码,因为该文件仍在缓存中。

如果使用sudo运行命令,请确保在继续操作之前了解该命令的作用。 使用sudo运行可使该命令具有与超级用户相同的权限。 例如,软件发行商的网站可能会要求您下载文件并更改其权限,然后使用sudo运行它。 除非您确切知道文件的功能,否则您将打开一个漏洞,可能会将恶意软件安装到您的系统上。 sudo一次只能运行一个命令,但是该命令本身可以运行许多其他命令。 sudoroot用户身份登录一样危险。

对于针对Ubuntu的说明,sudo常见使用aptapt-get命令将新软件安装到您的系统上。如果指令要求您首先通过编辑/etc/apt中的文件,或者通过使用“PPA”(个人软件包存档),使用apt-add-repository命令向您的系统添加一个新的软件存储库,那么您应该小心,因为这些源不是由Canonical管理的。但通常情况下,指令只要求您从标准存储库安装软件,这应该是安全的。

在Linux系统上有很多不同的安装软件的方法。从发行版的官方软件存储库直接安装是最安全的选择,但是有时您想要的应用程序或版本根本无法通过这种方式获得。通过任何其他机制进行安装时,请确保从相关项目的官方来源获取文件。

文件来自发行版本存储库外部的指示包括(但不限于)使用以下任何命令:curlwgetpipnpmmake或任何告诉您更改文件许可权的指令它可执行。

Ubuntu越来越多地使用“快照”(一种新的软件包格式),它通过更紧密地限制程序以阻止他们访问不需要的系统部分,从而提供了一些安全性改进。但是某些选项可能会降低安全级别,因此,如果要求您使用快照名称之外的任何参数运行snap install,则应准确检查该命令试图执行的操作。

让我们从标准Ubuntu存储库中安装新的命令行程序,以说明sudo的用法:

sudo apt install tree

一旦你提供了你的密码,apt程序就会打印出几行文字来告诉你它在做什么。tree程序很小,所以对大多数用户来说,下载和安装不应该超过一到两分钟。一旦返回到常规命令行提示符,程序就会安装并准备使用。让我们运行它来更好地了解我们的文件和文件夹集合是什么样子的:

cd /tmp/tutorial
tree

The output of the tree command

回到安装程序命令(sudo apt install tree ),它看起来与到目前为止所看到的略有不同。 实际上,它的工作方式如下:

1.sudo命令在不带任何参数的情况下使用时,将假定第一个参数是使用超级用户特权运行的命令。 其他任何参数将直接传递给新命令。 sudo的所有权限均以一个或两个连字符开头,并且必须立即跟随sudo命令,因此不会混淆该行上的第二个参数是命令还是参数。

2.本例中的命令是apt。与我们看到的其他命令不同,这并不能直接处理文件。相反,它希望它的第一个参数是执行(install)指令,其余参数根据指令变化。

3.在这种情况下,install命令会告诉apt命令行的其余部分将包含一个或多个要从系统软件存储库安装的软件包名称。 通常,这会将新软件添加到计算机中,但是软件包可以是需要安装到特定位置的文件的任何集合,例如字体或桌面图像。

您可以将sudo放在任何命令的前面,以超级用户身份运行它,但几乎没有必要。 甚至系统配置文件也通常可以用普通用户查看(只有catless),并且仅在需要编辑时才需要root特权。

sudo的一个技巧是使用它来运行su命令。 即使禁用了root帐户,这也会为您提供root shell。 当您需要以超级用户身份运行一系列命令时,它很有用,以避免必须在所有命令前加上sudo前缀,但这会使您面临与上述su完全相同的问题。 如果您遵循任何指示来运行sudo su的说明,请注意,此后的每个命令都将以root用户身份运行。


在本部分中,您了解了root帐户的危险,以及诸如Ubuntu之类的现代Linux系统如何通过使用sudo尝试降低危险的风险。 但是,任何使用超级用户权限的操作都应仔细考虑。 在遵循您在网上找到的说明后,您现在应该可以更好地发现那些可能需要更严格审查的命令。

推荐阅读

Ubuntu初学教程,基本的命令(五)之隐藏文件


版权声明:本文由静水流深发布,如需转载请注明出处。

分享给朋友:

相关文章

如何在CentOS 7上安装GONME,KDE等桌面环境

如何在CentOS 7上安装GONME,KDE等桌面环境

1.安装GNOME-桌面:这里安装GNOME桌面环境# yum -y groups install "GNOME Desktop&...

Ubuntu初学教程,基本的命令(三)之移动和处理文件

Ubuntu初学教程,基本的命令(三)之移动和处理文件

让我们首先使用mv(Move)命令将我们的组合.txt文件放到dir1目录中:mv combined.txt dir1您可以通过使用ls查看工作目录,然后使用cd dir1进入di...

Ubuntu初学教程,基本的命令(二)之创建文件和文件夹

Ubuntu初学教程,基本的命令(二)之创建文件和文件夹

创建文件夹和文件mkdir /tmp/tutorialcd /tmp/tutorial注意绝对路径的使用,以确保我们在/tmp中创建了教程目录。如果在开始时没有正斜杠,mkdir命...

在线升级Ubuntu版本

在线升级Ubuntu版本

启动软件更新程序按Superkey(Windows键)以启动Dash并搜索Update Manager。对于Ubuntu18.04或更高版本,单击桌面左下角的ShowApplications图标并搜索...

Ubuntu初学教程,基本的命令(四)之管道符应用

Ubuntu初学教程,基本的命令(四)之管道符应用

让我们从一个简单的问题开始。 您的Combined.txt文件中有几行? wc(word count)命令可以告诉我们,使用-l开关告诉我们,我们只需要行计数wc -l&...

Deepin更换国内软件源

Deepin更换国内软件源

使用root权限用户或者sudo编辑/etc/apt/sources.list在文件最前面添加以下条目deb [by-hash=force] http://mirrors.aliyun.com/dee...