sudo按我的理解来看是一个提权命令,当普通用户需要执行系统管理员的命令的时候,就需要使用sudo来提权了,当然这个权限也是要系统管理员事先下发的。
下面让我们一起来看看如何配置sudo吧:
sudo的配置文件在/etc/sudoers
可以先用chmod命令给予管理员修改权限,再用vim进行编辑,也可以直接用visudo命令直接编辑。
例1、我们给tuchao用户授予useradd,userdel,groupadd,groupdel权限。
# visudo
加入以下一行即可。

# sudo -l 用于查看,用户可执行的特权命令。
刚刚授权的命令显示了吧。

如果这时要给一组用户授权多个命令怎么办,那不是要写很多行?其实不用,配置文件可以支持alias功能的,可以把多个用户加到一个组里,配置的时候用%groupname表示,或者把多个用户加到一个alias里,当然命令也支持alias,可以把多个命令写到一个alias里。
例2、给openstack,tyz,admin,ldapuser,用户下发useradd,userdel,usermod,iptables执行权限。
我们这里创建了,SUPERUSER,SPECIALCOMMOND这两个别名实现的。
![09$%_NDELX48QYF_I5SB]M2.jpg wKiom1OCy9ySpyLnAAJadjwT8kg606.jpg](https://ucc.alicdn.com/gtdqzn4uqwgsg/developer-article469658/20241018/86d263e1f1334d2e8d7f518666fbf14a.jpeg?x-oss-process=image/resize,w_1400/format,webp)
用openstack用户做下测试,给防火墙添加一条规则怎么样?
$ sudo -l
$ sudo iptables -t filter -A INPUT -d 192.168.10.198 -p tcp --dport 443 -j REJECT
$ sudo iptables -L
规则加上去了吧,这样普通用户也可以管理防火墙了,当然这是实验,工作环境这样做很不安全。
![BB0OII2D]V]FU]S8Z1K4@J3.jpg wKiom1OCznvTOg3EAARGTef3gYs343.jpg](https://ucc.alicdn.com/gtdqzn4uqwgsg/developer-article469658/20241018/c106ac1dcc4e4a31bd76fa841119ed12.jpeg?x-oss-process=image/resize,w_1400/format,webp)
接下来,看看bash编程数组:
数组其实就是一段连续的内存空间,用下标来引用每个内存空间中的值。
declare -a 声明一个数组;
declare -A 声明一个关联数组;
例、写一个脚本,把12个月份的单词保存至Month数组中,每一次执行随机给出一个月份。

关联数组下标可以使用字符串:
# declare -A Month
# Month=([one]="january" [two]="february" [three]='March')
# echo ${Month[one]}
![(~$XOJG4T_}O_EE6]H$%VJO.jpg wKioL1OC6frxTFv2AADjKrkafdg970.jpg](https://ucc.alicdn.com/gtdqzn4uqwgsg/developer-article469658/20241018/526c6c606de740c4a08dadf47aa45887.jpeg?x-oss-process=image/resize,w_1400/format,webp)
本篇完
有问题欢迎与我交流QQ1183710107
本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1417194