请关注本头条号,每天坚持更新原创干货技术文章
如需学习视频,请查看本头条号简介,免费在线观看学习视频
1. 了解sudo的作用
日常操作中为了避免一些误操作,更加安全的管理系统,我们一般使用普通用户登录系统,而非root。当需要执行一些管理员命令操作时,再切换成root用户身份去执行。
普通用户切换到root用户的方式有:su和sudo。
sudo命令用来以其他身份来执行命令,鸿蒙系统能打开root权限吗,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
使用权限:在 /etc/sudoers 中有出现的使用者。
配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。
visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理。
2. 配置sudo用户
修改sudo的配置文件,使zcwyou用户也可以通过sudo调用root权限。让用户zcwyou可以通过sudo执行所有root可执行的命令。
以root身份用visudo打开配置文件
[zcwyou@zcwyou ~]$ visudo
可以看到类似下面几行:
01在电脑上连接好手机,然后打开电脑上的应用宝这个软件。软件会读取你的手机信息以及帮助你获取ROOT权限。如果你的手机没有安装应用宝,电脑会在你的请求下在你的手机上安装应用宝。02然后就是应用宝的首页。03在应用宝的左。
User privilege specificationroot ALL=(ALL)ALL
加入一行,针对zcwyou用户:
zcwyou ALL=(ALL) ALL
保存退出
root root用户
ALL 所有的主机上都可以
(ALL) 是以谁的身份来执行,ALL就代表root可以任何人的身份来执行命令
ALL 所有的命令,也可以限制只能执行某些指令。
验证:
切换到zcwyou用户,我们用它的身份执行命令:
ls: /root: 权限不够
[zcwyou@zcwyou ~]$ sudo ls /root
PassWord:
anaconda-ks.cfg Desktop install.log install.log.syslog
3. 限制sudo用户的权限
只让zcwyou像root那样使用ls和ifconfig
[zcwyou@zcwyou ~]$ visudo
修改为以下内容:
zcwyou localhost= /sbin/ifconfig,/bin/ls
再来执行命令:
[zcwyou@zcwyou ~]$ sudo head -5 /etc/shadow
Password:
Sorry,user zcwyou is not allowed to execute ‘/usr/bin/head -5 /etc/shadow’ as root on localhost.localdomain.
提示没有权限,证明设置成功。
[zcwyou@zcwyou ~]$ sudo /sbin/ifconfig eth0
ifconfig可正常使用。
4. 借用其他用户身份
例如,我们想让zcwyou用户在linux主机上以user1或user2的身份执行date命令,这样编写配置文件:
2、如果没有打开手机自带root权限,点击进入设置--安全中心---授权管理---root权限管理---打开允许应用获取root权限 3、如果是手机系统升级,需要刷手机稳定版,在手机官网---ROM下载---下载相应的稳定版系统 4、打开手机。
zcwyou linux=(user1,user2) /usr/bin/date
那么,zcwyou到底以user1还是user2的身份执行?需要把user1或user2设为默认的目标用户即可。比如,再加一行,以user1为默认用户:
Defaults:zcwyou runas_default=user1
当然,我们可以使用sudo -u user1 date或者sudo -u user2 date灵活切换用户。但这样比较麻烦。
再来看一条里面的规则:
%users ALL=/sbin/mount /mnt/cdrom,/sbin/umount /mnt/cdrom
user321 192.168.100.0/24=(root) /usr/sbin/useradd
%users 就是代表users这个组里面的所有成员
ALL 代表可以这所有的主机上
= 后面没有括号,也就是代表默认是以root身份
sbin/mount /mnt/cdrom,/sbin/umount /mnt/cdrom 可以执行挂载的命令
用户是user321
5. 查看用户可以执行的命令
已经授权的普通用户可以使用命令:
[zcwyou@zcwyou ~]$ sudo -l
第一种:网上下载相应的Root软件(如刷机精灵、一键root精灵等),通过第三方的软件来获取Root权限,不过有些机型并不适用。 第二种:需要在官网解锁,之后才能够Root,且成功率比较低,另外部分手机是很难Root的。 第三。
显示可以执行那些命令
要执行命令要在执行命令之前加上 sudo ,然后输入用户自己的密码,这是因为要验证,执行命令的用户确实是该用户。
sudo命令还有这个机制,就是在你正确输入密码并成功执行命令的5分钟内,再执行命令是不需要输入密码的,过了5分钟,就需要再次验证该用户的自己的密码,当然也可以手动让该期限过期,请看最后的sudo语法。
Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行:
Defaults env_reset
6. sudo免密码:
user123 localhost=NOPASSWD: /bin/cat,/bin/ls
7. sudo选项说明
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
手机root权限获取方法如下:下载一个刷机软件。下载完成后把软件安装到电脑。用数据线连接手机,打开手机的USB调试模式。机和电脑连接成功后,打开root精灵软件,点击连接手机。软件会检测手机匹配机型,点击,一键安全root,开始。
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
-b 在后台执行指令。
-h 显示帮助。
-H 将HOME环境变量设为新身份的HOME环境变量。
-k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l 列出目前用户可执行与无法执行的指令。
-p 改变询问密码的提示符号。
-s 执行指定的shell。
-u <用户> 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
-v 延长密码有效期限5分钟。
-V 显示版本信息。
-S 从标准输入流替代终端来获取密码