Ubuntu下如何将普通用户提升到root权限
的有关信息介绍如下:Ubuntu是一款linux操作系统,在linux系统中,用户被分为两种,第一种是root用户,只有一个用户,但是拥有最大的权限,可以做任何事。另外一类就是普通用户。只具有使用root用户分配的指定资源的权限。而如果普通用户想要使用root用户的权限呢?下面我们一起来看怎么给普通用户提升到root权限。
第一种可能的做法是,你知道root用户的密码,这个时候你就可以通过
su -
这个命令来切换到root用户,然后执行一系列root用户才能执行的命令以及操作。如下面图中所示,当前登录是一个普通用户office,这个时候打开终端的时候,命令行最前面显示的就是office
这台Ubuntu机器是我自己配置的,因此我知道root用户的密码,我执行
su -
命令后,输入root用户的密码,就能切换到root用户,如下面图中所示,这个时候命令提示符最前面就变成了root字样。
然后我来执行root用户才能执行的操作,安装软件,命令如下:
apt-get install nginx
可以看到,能够正常安装。说明确实是root权限下的操作。
这种方式退出也比较简单,直接输入exit就能够退出root用户的身份。如下面所示,退出后,又变成了普通用户office
上面这种方式比较直接,如果是你自己使用那么可能没什么问题。但是在服务器管理的时候,不可能随便把root密码告诉别人。这个时候如果其他用户需要进行一些需要root权限的操作的时候。就得通过修改配置文件来给普通用户赋予root用户的权限了。在Ubuntu中,可以修改的配置文件和目录主要有两个,分别是/etc/sudoers 和 /etc/suders.d/ 前者是一个配置文件,后者是一个配置文件目录,如下面所示,下面我们来依次讲解这两种做法。
我们先看来/etc/sudoers这个文件。这个文件只能由root用户来处理,因此我首先切换到root用户。然后来查看一下这个文件中的内容。如下面所示,从这个文件中,我们可以看到两段内容,分别是:
%admin ALL=(ALL) ALL
%sudo ALL=(ALL) ALL
这两段内容的含义就是,在admin和sudo组的用户,可以使用root用户的所有权限。也就是说,只要一个普通用户被加入到这两个组里,就可以使用root权限。
下面我们来看刚才登录系统时使用的普通用户office,查看用户信息的命令是
id
比如我们想看office用户的信息,命令就是;
id office
显示的结果如下,从显示的信息中我们可以看到,在groups里有sudo,也有admin这两个组的信息。说明office用户被加入到了root权限组。
我们来验证一下,普通用户执行root用户才能执行的命令的时候,需要在命令之前加上sudo,比如刚才root用户安装nginx时候命令是:
apt-get install nginx
那么office用户安装nginx命令就是
sudo apt-get install nginx
我们依次执行两种格式的命令,如下所示。从图中我们可以看到,不带sudo执行的时候会提示are you root,问你是不是root。但是带sudo执行的时候,则没有这个提示,而是直接执行安装程序,读取安装列表。说明office用户这个时候确实是有root权限的。
最后我们再次验证,创建一个新的普通用户test,命令是:
useradd test
然后使用命令id test查看test的信息,可以看到groups里只有一个test。
再将它添加到sudo组里面去,命令是:
usermod -a -G test -s /bin/bash sudo
添加完成后,修改它的密码,命令是:
passwd test
最后再用id test命令查看它的信息,可以看到groups里多了一个sudo组。如下所示:
添加完毕后,我们再次依次执行命令
apt-get install nginx
sudo apt-get install nginx
结果如下所示,可以看到,不带sudo命令会问你是不是root用户,同时报错。
带sudo命令的时候,可以成功执行安装nginx的命令,但是因为之前已经安装过,所以这里提示 already installed。说明test用户确实获取了root权限,这种方法是有效的。
我们再看第二种方式,这种方式是将单个用户的root权限配置到/etc/sudoers.d目录下的文件里,文件名和用户名相同。我们还是以test用户为例,刚才我们将它添加到了sudo组里,让它拥有了root权限,限制我们把它从这个组里踢出来。命令是:
gpasswd -d test sudo
可以看到提示,已经将test移出sudo组。踢出来以后,再执行
sudo apt-get install nginx
会看到提示,它没有这个权限。
这个时候,我们执行下面这条命令,用root用户来执行:
echo "test ALL=(ALL) ALL" >> /etc/sudoers.d/test
这个命令的意思是把双引号引起来的内容输出到/etc/sudoers.d/目录下的test文件中去,双引号引起来的内容就是给test用户赋予root权限。修改完成后,还要将这个文件的权限修改为0440,命令是:
chmod 0440 /etc/sudoers.d/test
如下所示:
执行完毕以后,我们再切换回test用户,然后再执行
sudo apt-get install nginx
这个命令,来看一下执行过程。如下所示,可以看到,能够顺利执行安装nginx的命令。说明它已经具有了root的权限。到这里,3种方式让普通用户获取root权限的方式讲解完毕。