天天看點

sudo、磁盤配額、數組、信号捕捉

一、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