Linux系统/etc/security/limits.conf文件主要起什么作用??
/etc/security/limits.conf#<domain> <type> <item> <value>
##* soft core 0 禁止创建core文件
#* hard rss 10000 非root用户最多使用10M内存
#@student hard nproc 20 最多进程数限制在20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
limits.conf的工作原理:
limits.conf的后端是这样工作的:limits.conf是pam_limits.so的设置文件,然后/etc/pam.d/下的应用程式调用pam_***.so模块。譬如说,当用户访问服务器,服务程式将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
例:限制admin用户登录到sshd的服务不能超过2个
在/etc/pam.d/sshd 中添加 session required pam_limits.so
在/etc/security/limits.conf中添加 admin - maxlogins 2
查看应用程式能否被PAM支持,用ldd
limits.conf文件的参数
Limits.conf文件的参数能设置成以下两种形式之一:
暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或通过编辑 /etc/security/limits.conf。
1.core - 限制内核文件的大小
何谓core文件,当一个程式崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是个内存映象(同时加上调试信息),主要是用来调试的。 core文件是个二进制文件,需要用相应的工具来分析程式崩溃时的内存映像。
系统默认core文件的大小为0,所以没有创建能用ulimit命令查看和修改core文件的大小。
$ulimit -c
0
$ ulimit -c 1000
$ ulimit -c
1000
-c 指定修改core文件的大小,1000指定了core文件大小。也能对core文件的大小不做限制,如:
# ulimit -c unlimited
#ulimit -c
unlimited
如果想让修改永久生效,则需要修改设置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
2.nofile - 打开文件的最大数目
对于需要做许多套接字连接并使他们处于打开状态的应用程式而言,最佳通过使用 ulimit ?n,或通过设置nofile 参数,为用户把文件描述符的数量设置得比默认值高一些。 limits.conf的格式如下:username|@groupname type resource limitusername|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。resource:core - 内核文件的大小date - 最大数据大小fsize - 最大文件大小memlock - 最大锁定内存地址空间nofile - 打开文件的最大数目rss - 最大持久设置大小stack - 最大栈大小cpu - 以分钟为单位的最多 CPU 时间noproc - 进程的最大数目as - 地址空间限制maxlogins - 此用户允许登录的最大数目要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so按下面说的,可以用ulimit -n 32768设置最大描述符,不过只对当前会话有用,而且要root,这个不好办或者修改/etc/security/limits.conf,但要重启另外,没查到linux究竟最大描述符有没有限制,其他几个限制要不要改
##* soft core 0 禁止创建core文件
#* hard rss 10000 非root用户最多使用10M内存
#@student hard nproc 20 最多进程数限制在20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
limits.conf的工作原理:
limits.conf的后端是这样工作的:limits.conf是pam_limits.so的设置文件,然后/etc/pam.d/下的应用程式调用pam_***.so模块。譬如说,当用户访问服务器,服务程式将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
例:限制admin用户登录到sshd的服务不能超过2个
在/etc/pam.d/sshd 中添加 session required pam_limits.so
在/etc/security/limits.conf中添加 admin - maxlogins 2
查看应用程式能否被PAM支持,用ldd
limits.conf文件的参数
Limits.conf文件的参数能设置成以下两种形式之一:
暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或通过编辑 /etc/security/limits.conf。
1.core - 限制内核文件的大小
何谓core文件,当一个程式崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是个内存映象(同时加上调试信息),主要是用来调试的。 core文件是个二进制文件,需要用相应的工具来分析程式崩溃时的内存映像。
系统默认core文件的大小为0,所以没有创建能用ulimit命令查看和修改core文件的大小。
$ulimit -c
0
$ ulimit -c 1000
$ ulimit -c
1000
-c 指定修改core文件的大小,1000指定了core文件大小。也能对core文件的大小不做限制,如:
# ulimit -c unlimited
#ulimit -c
unlimited
如果想让修改永久生效,则需要修改设置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
2.nofile - 打开文件的最大数目
对于需要做许多套接字连接并使他们处于打开状态的应用程式而言,最佳通过使用 ulimit ?n,或通过设置nofile 参数,为用户把文件描述符的数量设置得比默认值高一些。 limits.conf的格式如下:username|@groupname type resource limitusername|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。resource:core - 内核文件的大小date - 最大数据大小fsize - 最大文件大小memlock - 最大锁定内存地址空间nofile - 打开文件的最大数目rss - 最大持久设置大小stack - 最大栈大小cpu - 以分钟为单位的最多 CPU 时间noproc - 进程的最大数目as - 地址空间限制maxlogins - 此用户允许登录的最大数目要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so按下面说的,可以用ulimit -n 32768设置最大描述符,不过只对当前会话有用,而且要root,这个不好办或者修改/etc/security/limits.conf,但要重启另外,没查到linux究竟最大描述符有没有限制,其他几个限制要不要改
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-08-06
主要是对用户的资源使用进行限制。比如:限制文件打开的数量。core产生的大小等等
第2个回答 2013-08-06
limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。limits.conf的格式如下:username@groupname type resource limitusername@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。resource:core - 限制内核文件的大小date - 最大数据大小fsize - 最大文件大小memlock - 最大锁定内存地址空间nofile - 打开文件的最大数目rss - 最大持久设置大小stack - 最大栈大小cpu - 以分钟为单位的最多 CPU 时间noproc - 进程的最大数目as - 地址空间限制maxlogins - 此用户允许登录的最大数目要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:ls /lib/security/pam_limits.so 如果不作限制,可能一行代码就让你很惨了,甚至需要你重启一下。 你可以把下面这行代码复制粘贴到终端里执行测试一下是否需要限制 :(){ ::; }; :例如我的:* soft core 0* hard rss 102400truth soft nproc 2047truth hard nproc 16384truth soft nofile 1024truth hard nofile 65536truth hard cpu 10同时编辑sudo gedit /etc/pam.d/login加入#禁止调试文件session required /lib/security/pam_limits.so系统重启后可尝试 :(){ ::; }; :这时会出现bash: fork: 资源临时不可用本回答被网友采纳