Linux

不同使用者的堆棧大小限制不同,如何確保所有使用者的堆棧大小設置相同?

  • October 8, 2013

我有一個 CentOS 6.4 伺服器,當我ulimit -a以 root 身份執行時,我得到這個:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 92905
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 65536
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

當我ulimit -a從 apache 的使用者執行時,我得到了這個:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 92905
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 32768
cpu time               (seconds, -t) unlimited
max user processes              (-u) 92905
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

我如何確保所有使用者都設置了相同的堆棧大小?

編輯:

[root@web3 ~]# tail /etc/security/limits.conf
#*               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
*                -       stack           65536
apache       -   stack       65536
# End of file
[root@web3 ~]#

即使我已更改此設置/etc/security/limits.conf並重新啟動伺服器,apache 的堆棧大小仍為 32768。

不確定為什麼要為所有使用者設置相同的限制。但我想說理想的位置是 /etc/profile 或 /etc/bashrc。

在 CentOS 6.4 中,apache 使用者的主目錄預設為 /var/www。這也是 Apache DocumentRoot。然而,由於 apache 使用者的 shell 是 /sbin/nologin,所以在這裡放置一個 shell 配置文件並沒有多大用處。

您可以在 /etc/security/limits.conf 中設置限制,基於每個使用者或每個組,這將允許您獲得正確的結果。此外,在limits.conf 中,您可以設置硬限制和軟限制,以獲得更靈活的配置。

引用自:https://serverfault.com/questions/543289