Linux中如何限制一个用户可以使用启动的进程数

对于Linux中多用户的管理,往往我们需要去限制每一个用户在Linux中使用启动的进程数量,避免进程数、CPU、内存使用率">占用过高等问题,那么我们应该如何去限制一个用户呢?

我们可以通过修改/etc/security/limits.conf文件来实现。

先确定一下/etc/pam.d/login文件中下面一行的存在:
session required /lib/security/pam_limits.so

示例:

[root@localhost ~]# cat /etc/pam.d/login

#%PAM-1.0  auth [
user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.so  auth       include      system-auth  account    required     pam_nologin.so  account    include      system-auth  password   include      system-auth  # pam_selinux.so close should be the first session rule  session    required     pam_selinux.so close  session    required     pam_loginuid.so  session    optional     pam_console.so  # pam_selinux.so open should only be followed by sessions to be executed in the user context  session    required     pam_selinux.so open  session    required     pam_namespace.so  session    optional     pam_keyinit.so force revoke  session    include      system-auth  -session   optional     pam_ck_connector.so 

然后编辑/etc/security/limits.conf,在里面可以设置限制用户的进程数、CPU占用率和内存使用率等,如hard nproc 20就是指限制20个进程,具体可以看man。

示例:

[root@localhost ~]# vi /etc/security/limits.conf

# /etc/security/limits.conf  #  #Each line describes a limit for a user in the form:  #  #<domain>        <type>  <item>  <value> #  #Where:  #<domain> can be:  #        - an user name  #        - a group name, with @group syntax  #        - the wildcard *, for default entry  #        - the wildcard %, can be also used with %group syntax,  #                 for maxlogin limit  #  #<type> can have the two values:  #        - "soft" for enforcing the soft limits  #        - "hard" for enforcing hard limits  #  #<item> can be one of the following:  #        - core - limits the core file size (KB)  #        - data - max data size (KB)  #        - fsize - maximum filesize (KB)  #        - memlock - max locked-in-memory address space (KB)  #        - nofile - max number of open files  #        - rss - max resident set size (KB)  #        - stack - max stack size (KB)  #        - cpu - max CPU time (MIN)  #        - nproc - max number of processes  #        - as - address space limit (KB)  #        - maxlogins - max number of logins for this user  #        - max
syslogins - max number of logins on the system  #        - priority - the priority to run user process with  #        - locks - max number of file locks the user can hold  #        - sigpending - max number of pending signals  #        - msgqueue - max memory used by POSIX message queues (bytes)  #        - nice - max nice priority allowed to raise to values: [-20, 19]  #        - rtprio - max realtime priority  #  #<domain>      <type>  <item>         <value> #   #*               soft    core            0  #*               hard    rss             10000  #@student        hard    nproc           20  #@faculty        soft    nproc           20  #@faculty        hard    nproc           50  #ftp             hard    nproc           0  #@student        -       maxlogins       4   # End of file

时间: 2024-08-01 18:29:20

Linux中如何限制一个用户可以使用启动的进程数的相关文章

在Linux中添加普通新用户

  在Linux中添加普通新用户 ,超级用户(也称为"root")是一个具有修改系统中任何文件权力的特别账号.在日常工作中,最好不要使用超级用户账号进入系统,因为任何错误操作都可能导致巨大的损失.由于超级用户账号是系统建立后提供的惟一一个账号,因此,您需要建立和使用一个一般用户账号进行日常工作. 超级用户可以创建新的用户账号,下面的命令将建立一个名为joe的新用户: # adduser joe # passwd joe (键入joe的口令) Linux采用了将系统管理员和一般用户分开的

在 Linux 中为非 SSH 用户配置 SFTP 环境

在 Linux 中为非 SSH 用户配置 SFTP 环境 在某些环境中,系统管理员想要允许极少数用户在可以传输文件到Linux机器中,但是不允许使用 SSH.要实现这一目的,我们可以使用SFTP,并为其构建chroot环境. SFTP & chroot背景: SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可信数据流下的文件访问.文件传输以及文件管理功能.当我们为SFT

linux oracle11gr2新建了一个用户,默认表空间users,创建表过后,无法插入数据

问题描述 linux oracle11gr2新建了一个用户,默认表空间users,创建表过后,无法插入数据 linux oracle11gr2新建了一个用户,默认表空间users,创建表过后,无法插入数据,提示:no privileges on tablespace users 新建表空间,并修改这个用户:tanke1的默认表空间后,然后再新建新表,就可以正常插入数据了 解决方案 gant privileges to newuser 解决方案二: gant privileges to newus

Linux中如何配置让哪些服务启动?

Linux中如何配置让哪些服务启动? 1 运行ntsysv或者setup命令,进入菜单进行配置: [root@localhost software]# ntsysv [root@localhost software]# setup

linux中Tomcat用普通用户身份运行

在Linux下默认使用tomcat目录下bin/start.sh 脚本来启动tomcat,这样做简单,但是如果需要让tomcat监听在80端口就必须使用root用户来启动tomcat,这样在安全上存在风险,可以通过使用jsvc来启动tomcat. 参考资料 http://commons.apache.org/proper/commons-daemon/jsvc.html 版本说明system: Red Hat Enterprise Linux Server release 5.5Architec

Linux中如何禁止非法用户试探登录

linux的服务主机暴露在互联网上,经常会遭到一些非法用户的骚扰.如弱口令扫描,试探性登录: 这些都对linux主机构成威胁.下面脚本,就将非法用户拒之门外. 原理:获取尝试登录linux主机用户的IP,切登录失败次数超过10以上, 就认为此类IP为非法用户登录,然后将其IP追加到iptables规则中进行过滤,使其不能与linux主机通讯,系统每隔10分钟执行一次. #/bin/bash rm -f /data/ip.txt 2>/dev/null /sbin/iptables -F cat

Linux 中如何打开一个大文本文件

在"大数据"时代,我们会经常遇到有大文本文件(上 GB 或更大)的情况.假设需要我们手工的搜索和编辑这些大文件,或者为了解决一些特定的问题而需要手工分析多个上 GB 的日志文件.传统的文本编辑软件对处理这样的大文件不太有效,当我们试图打开一个大文件时会经常由于内存不足而郁闷的不行. 如果你是一个精明的系统管理员,你也许会用 cat.tail.grep.sed.awk 等这些命令的组合来打开和编辑一个文本文件.在这篇教程里,我将会谈论关于如何在 Linux 中打开(并编辑)一个大文本文件

linux中利用日志记录用户执行的命令

工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每个用户退出登录 时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置"/etc/rsyslog.conf"进一步将日志发送给日志服务器 第一种方法  # vi /etc/profile #设置history格式 export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev

怎样实现呢?vs2003中怎样实现一个用户只能一天只能申领一次??

问题描述 因为本人是快要毕业的人了,现在正在做毕业设计.因为本人的水平实在是不怎么地,所以在这过程中出现了很多的问题,请各位高人们帮忙指点一下小弟!在这里我先谢过了!现在的环境是sqlserver2000+vs2003+xp我做的系统是一个基于asp.net的试用网站问题1.怎样实现用户点击确定按钮之后,系统自动发送一条消息给用户.很简单的例子就是注册完论坛之后都会有一条欢迎来到××论坛的消息,想实现这个功能难吗?2.跟上面的问题差不多,只是怎样用户确定提交之后.将数据库中的数据依次发送给用户,