分类: LINUX
2014-10-20 15:09:30
edit /etc/pam.d/login
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow nullok use_authtok
session required /lib/security/pam_pwdb.so
session required /lib/security/pam_limits.so
you have to add the last two lines
edit /etc/security/limits.conf
可带参数:
issue=filename:指定其他配置文件,而不是缺省的/etc/issue.
noesc:不对配置文件中的转移字符进行解释。
配置文件说明:
debug:将调试信息写入日志
conf=filename:指定配置文件
配置文件说明:该配置文件每一行(一个条目)的语法如下:
在这里
可以是
用户名
用户组名,采用@group的语法
通配符*,表示任何
可以是
soft-表示软限制,可以超过该限制
hard-表示硬限制,有root设定,内核执行,不可以超过该限制
可以是
core-core文件大小 (KB)
data-最大数据大小(KB)
fsize-最大文件大小(KB)
memlock-最大可用内存空间(KB)
nofile-最大可以打开的文件数量
rss-最大可驻留空间(KB)
stack-最大堆栈空间(KB)
cpu-最大CPU使用时间(MIN)
nproc-最大运行进程数
as-地址空间限制
maxlogins-某一用户可以登录到系统的最多次数
locks-最大锁定文件数目
需要注意的是,如果无限制可以使用”-”号,并且针对用户限制的优先级要比针对组的
优先级高。
实际上,在linux服务器中,用户进程运行很长时间是可以接受的。而占用CPU过高则让其他用户无法忍受,而其很有可能是用户程序有问题,这个时候系统应该自动阻止这样的进程继续消耗系统资源。
最简单的方法就是通过ps发现CPU占用率超过某个限制的用户进程,然后将该进程杀死,这种做法很暴力,而且用户发现他的进程被杀以后很可能又启动进程,这样恶性循环。
有一种折中的方法,不是将目标进程杀死,而是适当调整其nice值,具体见如下shell程序:
renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'`
转载地址:http://blog.sina.com.cn/s/blog_53689eaf0101b5xe.html