sudo授权的配置以及bash编程之数组和关联数组。

简介:

    sudo按我的理解来看是一个提权命令,当普通用户需要执行系统管理员的命令的时候,就需要使用sudo来提权了,当然这个权限也是要系统管理员事先下发的。

        下面让我们一起来看看如何配置sudo吧:

sudo的配置文件在/etc/sudoers

可以先用chmod命令给予管理员修改权限,再用vim进行编辑,也可以直接用visudo命令直接编辑。

例1、我们给tuchao用户授予useradd,userdel,groupadd,groupdel权限。

# visudo

加入以下一行即可。

wKioL1OCtLHBw4xnAAISM-M3NRw823.jpg

# sudo -l    用于查看,用户可执行的特权命令。

刚刚授权的命令显示了吧。

wKioL1OCtV_worGkAALfGQOfN-I791.jpg

如果这时要给一组用户授权多个命令怎么办,那不是要写很多行?其实不用,配置文件可以支持alias功能的,可以把多个用户加到一个组里,配置的时候用%groupname表示,或者把多个用户加到一个alias里,当然命令也支持alias,可以把多个命令写到一个alias里。

例2、给openstack,tyz,admin,ldapuser,用户下发useradd,userdel,usermod,iptables执行权限。

我们这里创建了,SUPERUSER,SPECIALCOMMOND这两个别名实现的。

wKiom1OCy9ySpyLnAAJadjwT8kg606.jpg

用openstack用户做下测试,给防火墙添加一条规则怎么样?

$ sudo -l

$ sudo iptables -t filter -A INPUT -d 192.168.10.198 -p tcp --dport 443 -j REJECT

$ sudo iptables -L

规则加上去了吧,这样普通用户也可以管理防火墙了,当然这是实验,工作环境这样做很不安全。

wKiom1OCznvTOg3EAARGTef3gYs343.jpg

接下来,看看bash编程数组:

        数组其实就是一段连续的内存空间,用下标来引用每个内存空间中的值。

declare -a    声明一个数组;

declare -A    声明一个关联数组;

例、写一个脚本,把12个月份的单词保存至Month数组中,每一次执行随机给出一个月份。

wKioL1OC3D3A0MQNAADhhnw4n5w952.jpg

 

关联数组下标可以使用字符串:

# declare -A Month

# Month=([one]="january" [two]="february" [three]='March')

# echo ${Month[one]}

wKioL1OC6frxTFv2AADjKrkafdg970.jpg

 

本篇完

有问题欢迎与我交流QQ1183710107



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1417194

相关文章
|
存储 Shell 索引
如何在Bash中使用For循环和数组?
如何在Bash中使用For循环和数组?
387 0
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
3月前
Mac每次都要执行source ~/.bash_profile配置的环境变量才生效
Mac每次都要执行source ~/.bash_profile配置的环境变量才生效
151 2
|
3月前
|
存储 Shell 数据处理
深入探讨Bash脚本中的数组
【8月更文挑战第20天】
29 0
|
3月前
|
存储 运维 Shell
运维.Linux.bash学习笔记.数组及其使用
运维.Linux.bash学习笔记.数组及其使用
36 0
|
6月前
|
Shell Linux
sudo bash -c 'cat > /etc/profile.d/env.sh'
sudo bash -c 'cat > /etc/profile.d/env.sh' << EOF 是一个Linux命令行命令,用于创建一个名为 /etc/profile.d/env.sh 的文件,并将以下内容写入该文件:
106 4
|
6月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
121 0
|
6月前
|
监控 Shell
Raspberry Pi上的上网行为监控管理软件部署与配置(Bash)
在这篇文章中,我们将探讨如何在Raspberry Pi上部署和配置一款上网行为监控管理软件,通过Bash脚本实现。
292 0
|
6月前
|
监控 Shell
Raspberry Pi上的上网行为监控软件部署与配置(Bash)
在这篇文章中,我们将探讨如何在Raspberry Pi上部署和配置一款上网行为监控软件,通过Bash脚本实现。
219 0
|
存储 Shell
如何在Bash中获取数组长度?
如何在Bash中获取数组长度?
119 1
如何在Bash中获取数组长度?