天天看點

sudo授權的配置以及bash程式設計之數組和關聯數組。

    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這兩個别名實作的。

用openstack使用者做下測試,給防火牆添加一條規則怎麼樣?

$ sudo -l

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

$ sudo iptables -L

規則加上去了吧,這樣普通使用者也可以管理防火牆了,當然這是實驗,工作環境這樣做很不安全。

接下來,看看bash程式設計數組:

        數組其實就是一段連續的記憶體空間,用下标來引用每個記憶體空間中的值。

declare -a    聲明一個數組;

declare -A    聲明一個關聯數組;

例、寫一個腳本,把12個月份的單詞儲存至Month數組中,每一次執行随機給出一個月份。

關聯數組下标可以使用字元串:

# declare -A Month

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

# echo ${Month[one]}

本篇完

有問題歡迎與我交流QQ1183710107

本文轉自qw87112 51CTO部落格,原文連結:http://blog.51cto.com/tchuairen/1417194