root权限允许访问Linux系统上所有的功能。在Windows上就是我们所说的管理员权限。
有两种方式执行root权限:
1)、su
2)、sudo
1、su
su命令允许我们在终端中切换用户账户。当我们切换到root账户时须要考虑几个地方,现在我们先来看看如何使用这个命令。
命令的基本格式如下:
su <username>
因为在终端中指定了账户的用户名,所以执行此命令的时候需要输入密码。该命令如果没有其他参数,将保留前一个用户的当前环境。保留的主要环境是当前的工作路径,如果我已自己的身份登陆,并且切换用户,则当前的工作路径不会改变。举例来说,如果我登陆了我们的账户并且在当前在主文件夹中,如果我们切换账户,不加任何参数,则我们仍然会在主文件夹中。
PS:切换用户后我们可以退出并返回之前的用户,通过命令”exit“。
初始环境所做的任何设置都将被保留。例如我们创建一个测试变量A,为它赋值”11“。首先在终端中输入命令”echo $A“,将会放回空白行。
接着我们用命令”export A=55“为变量赋值,我们可以通过再次执行“echo $A”命令来验证该值是否已设置。终端中将会返回一个值55。接着我们切换账户,再次执行“echo $A”命令,响应应该和第一次一样。
如果我们希望切换用户,并获得一个新的环境,我们在用户名前面加一个破折号:
su - <username>
注意,不要把破折号放到用户名后面,会报错。
2、sudo
所有想要执行管理员权限命令的成员必须在正确组。在红帽子系统中,这个组叫”wheel“,在Debian 中,这个组叫”root“。如果你不是这个组中的一员却想要执行管理员权限,那么会遇到如下情况:
<username> is not in the sudoers file. This incident will be reported.
为了修复这个报错,我们需要将用户加到发行版的合适的组中。
在执行“sudo”的命令之前运行一个具有root特权的命令,会提示输入帐户密码,我们不需要实际的root密码,因为我们的账户在发行版的sudoers组中。
sudoers文件可以用以下命令编辑:
sudo visudo
我们会看到文件中有类似于这样的一行:
root ALL=(ALL:ALL) ALL
这一行允许root用户,甚至以不同的用户(使用su或sudo)登录,能够作为所有用户或组运行命令。所有命令都是允许的。
3、总结
如果将用户切换到另一个用户,并且执行命令,它们将获得新用户的权力。将会使当前的用户集作为所有者来创建新文件。
如果将用户切换到root用户或者使用sudo命令来创建文件,用户的所有者就是root。
我们需要注意当前使用的用户和所拥有的权限。如果我们需要root权限并且使用sudo命令,那么我们需要密码。实际的root密码不应该和其他用户分享。
在linux中sudo将会经常使用,所以我们需要熟悉它。