博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sudo、磁盘配额、数组、信号捕捉
阅读量:7096 次
发布时间:2019-06-28

本文共 1876 字,大约阅读时间需要 6 分钟。

一、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]}显示第n+1个元素

数组中元素的个数

${#array[*]}

${#array[@]}

trap:在脚本中捕捉信号,并且可以特定处理

有这些信号:

1SIGHUP

2SIGINT

9SIGKILL

15SIGTERM

18SIGONT

19SIGSTOP

Ctrl +c

trap 'COMMAND命令' INT

中止了某个操作并要撤消此前所有的动作

本文转自 ZhouLS 51CTO博客,原文链接:http://blog.51cto.com/zhou123/793118

转载地址:http://ahaql.baihongyu.com/

你可能感兴趣的文章
课堂练习
查看>>
Android 上的浏览器
查看>>
微信小程序获取用户手机号,服务器解码demo
查看>>
Mac常用软件大全, 6-18特惠 ,限时降价,需要的看看吧
查看>>
Netty实践:ChannelInboundHandlerAdapter与ChannelOutboundHandlerAdapter
查看>>
Go语言学习笔记四: 运算符
查看>>
windows mongodb最常用命令简单归纳
查看>>
JS执行模糊搜索
查看>>
C++11新特性
查看>>
PowerTeam--Alpha阶段个人贡献分及转会人员
查看>>
判断 checkbox 是否选中以及 设置checkbox选中
查看>>
测试Hadoop2.7.1
查看>>
zookeeper 安装 && 基础知识
查看>>
[LeetCode] Remove Nth Node From End of List
查看>>
switch语句的技巧
查看>>
FindFileByContent
查看>>
抽象类和接口的区别——很深入的一篇文章
查看>>
小光棍数
查看>>
HDU3480:Division——题解
查看>>
HTTP头部和正文
查看>>