前些天小编作一篇linux安装python的文章中遇到了很多问题,最重要的问题是关于权限不足的问题。相信很多刚开始学习linux的小伙伴使用某些命令或者更改系统的某些文件的时候都会遇到这样的情况。这时候我们有两种解决方式:切换到root用户;或者进行linux用户提权,今天我们就来介绍下有关linux用户提权的那些事。
权限,决定安全
不管是在linux还是Windows,用户都有进行分组,linux的最高权限用户叫root用户,Windows的最高权限用户叫administrator。在最高权限下还有一些普通用户。一个系统有很多的软件和配置文件,有些内容如果随意修改,就会造成一些不可预料的后果,所以一般普通用户数是不能修改这些内容的,只有超级管理员用户可以进行修改。在Windows中可能你在使用的已经是超级管理员用户了,因为Windows对这方面要求比较宽松(不过近些年来Windows也在要求用户不随意使用administrator用户用于日常操作,比如说一些个人化的功能administrator用户是不能使用的,比如Windows hello)。而linux的发行版中默认是使用一个普通用户的,在需要一些操作的时候进行提权,这就避免了用户的误操作导致系统崩溃。
学习linux的时候小编听过这样一个玩笑,如果你对你的工作不满,就到服务器运行
rm -rf /*
(危险行为,请勿模仿),然后跑路,这行代码的功能有个简单的形容——删库,他的作用是把系统挂载的根节点下面的所有内容删除(也就是删除这个系统)。这个命令在普通用户权限下是不能使用的,这在一定程度上保护了linux系统的安全。另外,以渗透测试出名的kali Linux,在以前是可以直接使用root用户的(小编依稀记得是2018版本之前),现在的kali Linux要求用户在装系统的时候创建一个普通用户然后使用普通用户。可见Linux对root用户的使用做出了一定收束
还有一个类linux(刚开始使用linux内核,后来被linux移出linux分支的Android)的系统——安卓系统,在早期安卓系统是带有root权限的,没有root权限也可以使用工具刷root,现在的安卓已经不能刷root权限了。
如何申请必要的权限
我们之前说了,普通权限是没有资格去做一些更改系统的配置和使用一些命令的,这时候我们就需要想办法进行系统的提权,提权分为两种,一种是暂时提权,一种是切换到超管用户。他们的操作都是不一样的,接下来我们就来看看这些操作怎么做吧。
如何区分权限
linux的终端由用户名+#或者$构成,输入命令在#或者$后(如下图所示),如果这个标识是#说明当前拥有管理员权限,如果是$说明没有管理员权限。
sudo命令
sudo命令作为一个linux用户提权的命令,他可以用来给某些需要管理员权限的命令进行提权,也可以给当前用户进行短暂的提权。简单的用法主要有如下两种:
sudo -i
:这个命令可以在当前终端窗口给用户提权到超级管理员权限,在这个终端窗口内用户可以使用超级管理员权限知道该窗口被关闭。在使用这个命令的时候需要输入自己的密码(不是root账户的密码)。
sudo 命令行
:这个命令可以给接下来的一句命令进行提权,但是命令结束后仍然是普通管理员权限。
su命令
su
命令是一个切换用户身份的命令,我们可以使用su
命令来切换到管理员身份,这样我们也能获得管理员权限。su
命令有两种写法,一种是su
,一种是su -
,两种命令有一定区别:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。
使用su命令也要输入密码。
小结
以上就是有关linux用户提权的所有内容了。更多linux的使用小窍门可以多多关注W3Cschool!