您的位置:首页 > 职场人生

sudo、磁盘配额、数组、信号捕捉

2012-02-29 23:59 120 查看
一、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

如图所示:





#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 限定组的配额





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





#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+1个元素
数组中元素的个数
${#array[*]}
${#array[@]}
trap:在脚本中捕捉信号,并且可以特定处理
有这些信号:
1、SIGHUP
2、SIGINT
9、SIGKILL
15、SIGTERM
18、SIGONT
19、SIGSTOP
Ctrl +c
trap 'COMMAND命令' INT
中止了某个操作并要撤消此前所有的动作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息