“abrir arquivos” ulimit: controlando via limits.conf

6

Estou batendo com a cabeça nisso, e não consigo entender por que não está funcionando. Espero que alguém possa esclarecer isso, ou, se isso não der certo, me dê algumas sugestões para avenidas de investigação.

Eu tenho um sistema Red Hat 7.3 (não pergunte) onde é desejável aumentar o limite de arquivos abertos para o usuário wls81 . Eu pensei que eu não era capaz de controlá-lo, mas cada vez mais parece que eu só tenho o problema com o usuário que eu preciso mudar. Eu adicionei as seguintes linhas a /etc/security/limits.conf :

wls81       soft    nofile      10100
wls81       hard    nofile      10240
madhatta    soft    nofile      10100
madhatta    hard    nofile      10240

pam_limits.so está sendo invocado corretamente, até onde eu sei:

[madhatta@server madhatta]$ sudo grep limits /etc/pam.d/*
/etc/pam.d/login:session    required     /lib/security/pam_limits.so
/etc/pam.d/sshd:session    required     /lib/security/pam_limits.so
/etc/pam.d/su:session    required     /lib/security/pam_limits.so
/etc/pam.d/system-auth:session     required      /lib/security/pam_limits.so

Quando eu ssh em como eu, recebo o novo limite suave e posso aumentar até o limite máximo:

desktop> ssh server
Last login: Thu May 10 13:20:13 2012 from a.b.c.d
[madhatta@server madhatta]$ ulimit -n 
10100
[madhatta@server madhatta]$ ulimit -n 10200
[madhatta@server madhatta]$ ulimit -n 
10200
[madhatta@server madhatta]$ ulimit -n 10300
bash: ulimit: cannot modify open files limit: Operation not permitted

mas quando eu ssh como o usuário wls81 , não consigo:

desktop> ssh wls81@server
Last login: Wed May  9 22:29:33 2012 from a.b.c.d
[wls81@server wls81]$ ulimit -n
1024
[wls81@server wls81]$ ulimit -n 10000
bash: ulimit: cannot modify open files limit: Operation not permitted

O mesmo acontece quando eu su - para cada usuário. Eu sinceramente não consigo entender por que esse usuário não pode ter sua ulimit s resetada. Alguém tem alguma ideia?

    
por MadHatter 10.05.2012 / 14:29

2 respostas

4

Bem, o mistério está resolvido. Descobri que, quando eu fiz su - wls81 , obtive o limite de 1024, mas quando acabei de su wls81 , obtive o novo limite maior. Acontece que o .bash_profile do wls81 invocou outro script, que por sua vez invocou um script de configuração de ambiente de um usuário completamente diferente no sistema, que fez um ulimit -n 1024 .

Quando eu removi essa linha, o wls81 agora recebe o novo limite.

    
por 17.05.2012 / 23:10
0

Eu acho que você também pode precisar verificar e provavelmente configurar o máximo de arquivos de texto para arquivos abertos no kernel:

sudo systcl fs.file-max

e edite o /etc/sysctl.conf para tornar as alterações permanentes.

    
por 10.05.2012 / 14:36