一、sudo
su USERNAME
su - USERNAME -c COMMAND 不用進入使用者就可以執行指令
sudo可以定義普通使用者臨時的可以執行管理類指令、網絡管理類指令等
sudo 的配置檔案:
/etc/sudoers
#visudo打開
who which_host=(whom) command_list
例如:centos ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /user/sbin/usermod
指令組:
Alias 的名稱中的字元必須全部使用大寫字母
Host_Alias主機組
Cmnd_Alias 指令組 USERMANAGER=
/usr/sbin/useradd,/usr/sbin/usredel,/usr/sbin/use
rmod,/usr/bin/passwd
User_Alias使用者組 USERNAME = jerry,redhat,....
User_Alias POWERMANGER = tom,USERMANGER 使用者組也
可以嵌套
在使用者中執行指令時需要用sudo 開頭
這些指令會儲存在日志:/var/log/secure中
man soduers 檢視幫助
sodu -l列出所能執行的指令
sodu -k每次執行指令都需要輸入密碼
二、quota
限制一個使用者對磁盤的使用
磁盤配額:
在兩方面限制:
空間大小
檔案個數
都分别有着兩個方面
軟限制
有一定的寬限期
硬限制
絕對不能超出
磁盤配額的生效級别是檔案系統
可以獨立對使用者配額,也可以隻對組進行配額
事先建立資料庫檔案
生效資料庫:
aquota.user對使用者
aquota.group對組
如何實作:
1、為要啟用磁盤配額的檔案系統設定挂載選項:
usrquota
grpquota
臨時有效
# mount -o remount,usrquota,grpquota /home
永久有效:
# vim /etc/fstab
如圖所示:
<a href="http://blog.51cto.com/attachment/201202/235204951.jpg" target="_blank"></a>
#mount -o remount /home
2、建立配額所用的資料庫:
# quotacheck -cmug /home
c:建立,并不讀取原有資料庫直接建立
m:不挂載為隻讀
u:與使用者資料庫
g:與組資料庫
3、啟用對應檔案系統上磁盤配額的功能
quotaon /home開啟
quotaoff /home關閉
4、設定使用者配額或級配額
互動式:
#edquota
-u限定的是使用者配額
edquota -u redhat -u可省略
edquota –g redhat 限定組的配額
<a href="http://blog.51cto.com/attachment/201202/235412944.jpg" target="_blank"></a>
edquota -p redhat centos 複制給另外一個使用者
#edquota -t 設定配額超出軟限制的寬限期
非互動式:
#setquota
-u USERNAME SOFT HARD INODE-SOFT INODE-HARD -a
| FILESYSTEM
# setquota user12 l0240 20480 0 0 /home
repquota
顯示一個磁盤配額的摘要資訊:
#repquota filesystem
例如:repquota /home
<a href="http://blog.51cto.com/attachment/201202/235747185.jpg" target="_blank"></a>
#warnquota
向所有超出檔案系統配額的使用者發一封郵件
進行警告
可以與crontab -e 結合來編輯以定期警告
如何關閉磁盤配額:
暫時關閉:quotaoff
永久關閉:可以說是上面相反的過程
三、數組:
如何聲明一個數組:
declare -a AA
指派方法:
1、
例如:
AA[0]=jerry
AA[1]=tom
AA[2]=wendy
2、
AA=(jerry tom wendy)
有空格用引号引起
${array[0]}=${array}數組中第一個元素的字元數
數組中第m個元素的字元數
${#array[m]}
${array[n]}顯示第n+1個元素
數組中元素的個數
${#array[*]}
${#array[@]}
trap:在腳本中捕捉信号,并且可以特定處理
有這些信号:
1、SIGHUP
2、SIGINT
9、SIGKILL
15、SIGTERM
18、SIGONT
19、SIGSTOP
Ctrl +c
trap 'COMMAND指令' INT
中止了某個操作并要撤消此前所有的動作
本文轉自 ZhouLS 51CTO部落格,原文連結:http://blog.51cto.com/zhou123/793118