root
计算机术语言
root,也称为根用户,是Unix(如SolarisAIXBSD)和类UNIX系统(如LinuxQNX等),及AndroidiOS移动设备系统中唯一拥有系统上所有权限的的超级用户,因其可对根目录执行读写和执行操作而得名。其相当于Windows系统中的管理员用户(Administrator),自Windows 10操作系统之后,Windows系统中不再使用root用户,而是使用管理员用户来执行类似root用户的高权限操作,但Windows系统中的管理员用户权限也是有限制的,不完全等同于Linux系统中的root用户。root用户具有系统中的最高权限,可以执行系统中的任何操作,包括创建、修改和删除文件(包括删除所有文件)、启动或停止系统中任何一个进程、增加或者禁用硬件、安装软件、管理用户账户(删除或增加用户)等等。因为root用户具有如此高的权限,因此在正常情况下并不建议直接以root用户身份操作系统,以免造成系统意外损坏。当需要执行高权限操作时,可以使用sudo等临时授权命令方式,更安全地执行高权限操作。
背景介绍
现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都视为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源,普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户,此用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。
权限设置
root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在UnixLinuxAndroid中,除非确实需要,一般情况下都不推荐使用root。最好单独建立一个普通的用户,作为日常之用。
安全性
不推荐使用root的一个原因则是出于安全的考虑。root具有系统所有的权限,root密码如果泄漏,足以导致整台计算机完全被窃取root密码的人所控制,拥有root密码就意味着拥有了这台计算机上所有用户的所有数据。
有些任务必须由root才能执行,例如删除系统内置应用程序。但在Unix或Linux系统中又不推荐使用root,这构成了一个矛盾。于是产生了一个sudo的做法,就是在必要时使用su提权,即把系统管理的一部分权限授予普通用户,并且只有在这些用户需要更高权限的时候,才允许这些用户暂时性的使用root命令来管理系统
根目录(/root)是其他用户无权访问的,这在一定程度上增强了整个系统的安全性,但不完全是。Unix、Linux及Android的安全性更在于它的高度可配置性,也就是说,Unix或者Linux的安全性更取决于系统管理员而不是Unix或Linux系统本身。一般的模式是:UnixLinuxAndroid提供一种健全的安全机制,由系统管理员根据实际需要制定相应的安全策略,并且部署这些安全策略。“机制”是能做什么不能做什么,“策略”是要做什么不要做什么。而Windows的安全策略和安全机制则比较混乱,windows本身过于依赖安全策略,导致系统管理员在很多时候束手束脚,反而得不偿失。
手机厂商
部分手机厂商与运营商合作,在设备出厂时预装了一系列应用程序,旨在构建封闭的生态圈。然而,这些预装应用对于部分用户来说可能并不受欢迎。为了维护这一封闭的生态,这些厂商采取了多种手段来限制用户获取管理员权限(root权限),从而迫使用户使用这些预装应用。此外,如果用户自行获取了root权限,一些手机厂商可能会以此为理由拒绝提供保修服务,即使设备出现的是与root权限无关的硬件质量问题。
这些做法使得消费者在购买设备后可能无法按照自己的意愿使用和管理设备,不仅可能对消费者的权益造成侵害,而且还可能带来潜在的隐私泄露风险。从长远来看,这些做法限制了消费者的选择权和设备的可定制性,也可能阻碍手机行业的健康发展。
现今一些手机厂商开始在系统内置root权限开关,系统默认是不开启root权限的,如果想要开启可以咨询客服、求助论坛或是查询资料自行开启,而且不同机型的root权限开启方式不尽相同。
Android root 工具汇总
Linux系统操作命令
在Linux操作系统中,可以使用如下语句切换普通用户和root用户:
1. 从普通用户切换到root用户:
如果已经知道root用户的密码,可以使用su命令(switch user)来切换到root用户:
然后系统会提示输入root用户的密码。输入正确的密码后,就可以以root用户的身份操作了。
此外,sudo su命令也可以切换到root用户,但与su命令有所差别。
sudo su命令切换:
然后系统会提示输入当前账号的密码。输入正确的密码后,系统暂时授权当前用户root权限。
● sudo su命令:
1. sudo是一种授权机制,允许系统管理员授予普通用户临时获取root权限的能力。
2. sudo su命令首先会要求输入当前用户的密码(而不是root密码),然后才会切换到root用户。
3. 默认情况下,sudo会记录授权操作,以便管理员进行审计。
4. 通常情况下,sudo是默认启用的,而且更安全,因为它可以减少恶意行为的风险。
5. [sudo su] 切换root身份,不携带当前用户环境变量。[sudo su -]切换root身份,携带当前用户环境变量。
● su命令:
2. 使用su命令时,需要输入目标用户(例如root)的密码,而不是当前用户的密码。
3. su命令提供的是一种永久性的权限切换,直到使用exit命令退出到原来的用户。
6. [su] 切换root身份,不携带当前用户环境变量。[su -]切换root身份,携带当前用户环境变量。
注意,[su]/[sudo su]只是切换了root身份,但Shell环境仍然是普通用户的Shell,工作目录仍然是当前普通用户的工作目录;而[su -]/[sudo su -]连用户和Shell环境一起切换成root身份,切换以后,工作目录变为root的工作目录,环境变量也会改变。
2. 从root用户切换到普通用户:
如果已经从普通用户切换到了root用户,并且想要切换回原来的普通用户,可以使用exit命令或者按Ctrl + D来退出root用户会话,返回到之前的用户。
Exit命令:
或者,也可以直接使用su命令,指定要切换到的普通用户的用户名:
这里的username应替换为要切换到的普通用户的实际用户名。同样,系统会提示输入该用户的密码。
3. 使用sudo命令执行root权限的命令:
除了直接切换到root用户外,还可以使用sudo命令(superuser do)以root用户的权限执行特定的命令。这需要当前的用户账号在/etc/sudoers文件中有相应的权限配置。
例如,要以root权限执行ls /root命令,可以这样做:
系统会提示输入当前用户的密码(而不是root密码),如果权限配置正确,命令就会以root权限执行。
简而言之,sudo是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。
具体来说,sudo允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。通过sudo获得的权限范围是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝地和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。
sudo 可以暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
由于不需要超级用户的密码,部分类Unix系统甚至利用sudo使一般用户取代超级用户作为管理账号,例如Ubuntu、Mac OS。
注意:频繁使用root权限或切换到root用户可能会带来安全风险,因为root用户具有对系统的完全控制权。因此,在执行需要root权限的操作时,请务必谨慎。
参考资料
15 best root apps for Android.AndroidAuthority.2016
Release Magisk v27.0.topjohnwu/Magisk.
Installation.Magisk.
最新修订时间:2024-10-11 21:09
目录
概述
背景介绍
权限设置
参考资料