产生原因
用过Linux的人往往都会遇到一个报错
Error: This command has to be run under the root user.
Linux的权限设置的确提高了安全性,可是遇到到这样的报错,去问root要密码su过去执行这个命令?_?
行倒是行,但是万一你删库跑路咋搞
所以Linux的大佬们安排了sudo解决这个问题
sudo的使用方法
sudo +执行的命令
使用这条命令之前需要在/etc/sudoers里面添加自己这个用户和root用户的记录,彰显自己和大哥的关系,让系统放行要执行的命令
而且Linux为了防止语法错误还专门提供了一个编辑器visudo,防止不小心配置错误导致血崩
[root@centos8 ~]# visudo
在编辑器里面大概第一百行左右找到
root ALL=(ALL) ALL
复制root这一行,添加在下面,但是把root改成需要root权限的用户名
hx ALL=(ALL) ALL
按x保存退出
使用hx用户试一下
[hx@centos8 boot]$ sudo dnf install -y sl
[sudo] password for hx:
Sorry, try again.
[sudo] password for hx:
Sorry, try again.
[sudo] password for hx:
CentOS-8 - AppStream 895 kB/s | 4.3 kB 00:00
CentOS-8 - Base 966 kB/s | 3.9 kB 00:00
CentOS-8 - Extras
还是要输入密码,就贼麻烦
回到root用户下,将刚才添加的那行改为
hx ALL=(ALL) NOPASSWD:ALL
如果觉得ALL拥有root所有的权限不安全,就给用户指定他能执行的命令的绝对路径就好了。例如给hx关机重启的权限
hx ALL=(ALL) NOPASSWD:/sbin/shutdow,/usr/bin/reboot