在Linux当中有一些命令只有root账户才能使用,怎么样才能使普通的用户可以执行root权限的命令呢,就是要使用一个名字叫做sudo的命令,下面是对sudo命令的一些介绍

        sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。使用权限:在 /etc/sudoers 中有出现的使用者

        接下来打开/etc/sudoers文件看一下,这个配置文件主要是大量的注释,教你如何去配置一些用户和它要执行的命令

        往下拉就看见了root账户后面是ALL也就是对所有命令都拥有权限,而下面的%wheel则是代表的在这个wheel组当中的普通账户也是跟root一样拥有权限,可以使用sudo 加命令却执行只有root账户可以执行的一些操作

        

        就拿下面这个root账户的格式在说明一下操作格式

用户           主机名列表=命令程序列表


        再使用grep "bash" /etc/passwd命令查看一下当前可以登陆系统的账户出了root还有一个zhangsan


        

        再使用id zhangsan 查看一下zhangsan账户的具体信息,发现它不在wheel组当中也就是说zhangsan用户不能够使用root(超级管理员)的命令。我们知道root的命令都是放在/usr/sbin里面的命令只有root用户才能使用,而普通用户的命令却是放在了/usr/bin目录。

        

        接下来使用su - zhangsan命令切换到zhangsan用户

        利用zhangsan用户执行一个root用才能执行的命令ifconfig ens32 192.168.220.120(修改IP地址为192.168.220.120),发现zhangsan用户不可以使用,因为它没有执行权限。但怎么使普通用户能够拥有像root用户一样的执行权限呢。这边如果把zhangsan用户添加到wheel(安全用户组)当中去的话,zhangsan是可以利用sudo命令执行所有的root的命令的。这样非常的不安全,如何使zhangsan用使用具体的使用一条或者几条root才能使用的命令呢?


        这边需要切换回root账户


        这边使用hostname命令获取一下本机的主机名


        在这边执行一个chmod u+w /etc/sudoers命令,添加一个root用户的写权限



        然后利用vim /etc/sudoers打开sudo的配置文件


        在一个空白行按照格式输入zhangsan linux1=ifconfig,也就是说赋予zhangsan这个普通用户可以对主机linux1执行ifconfig命令的权限,输入完成后输入“:wq”保存并退出。注意这边的管理员命令一定要写命令的绝对路径,因为普通用户也可以使用ifconfig命令但跟管理员的ifconfig不一样。




             接下来再使用su - zhangsan命令切换到zhangsan用户  


        在使用sudo ifconfig ens32 192.168.220.120命令修改主机ip为192.168.220.120试试看


        发现这个时候的xshell软件已经断开了连接了


        接下来再使用ssh 192.168.220.120命令从本地去连接刚刚修改过密码的主机,已经成功开始提示你输入密码



        接下来输入root账户跟root账户的密码,已经登录到了刚刚修改过IP地址的系统上了