pam_limits: Operação não permitida para sshd

1

Debian 8.0, pam 1.1.8-3.1, sshd 1: 6.7p1-5.

Estou tentando aumentar permanentemente o número máximo de arquivos abertos.

Em /etc/pam.d/ eu tenho:

/etc/pam.d# grep pam_limits.so *
atd:session    required   pam_limits.so
common-session:session required pam_limits.so
common-session-noninteractive:session required pam_limits.so
cron:session    required   pam_limits.so
login:session    required   pam_limits.so
runuser:session         required        pam_limits.so
sshd:session    required     pam_limits.so
su:session    required   pam_limits.so         

Em /etc/security/limits.conf :

*       hard    nofile  20000500
*       soft    nofile  20000500         

Em /etc/ssh/sshd_config :

UsePAM yes

Em /etc/sysctl.conf :

fs.file-max = 20000500

Eu reiniciei o sistema operacional e o que estou vendo em /var/log/auth.log é:

sshd[807]: pam_limits(sshd:session): Could not set limit for 'nofile' to soft=20000500, hard=20000500: Operation not permitted; uid=0,euid=0

Mesma coisa que tenta fazer ulimit -Hn 20000500 as root :

bash: ulimit: open files: cannot modify limit: Operation not permitted

Usando a tentativa e erro, descobri o número máximo que posso dar a ulimit -Hn sem falhar: 1048576. Por que exatamente esse número e de onde ele vem?

P.S. Quando diz "operação não permitida", como sei quem decide? Eu suponho que o código dentro de pam_limits.so está tentando definir os limites, mas quem realmente se recusa? É o sistema PAM que possivelmente assume todo o sistema de segurança no sistema operacional?

    
por Yuri Ushakov 10.06.2015 / 14:22

2 respostas

2

Não é uma recomendação, eu gostaria de dizer, você não pode fazer isso. se você está procurando essa outra resposta.

não pode logar quando o nofile está configurado para ilimitado em /etc/security/limits.conf

man proc

   /proc/sys/fs/file-max
          This file defines a system-wide limit on the number of open files for all processes.  (See also setrlimit(2), which can be used by a process to set the per-
          process  limit,  RLIMIT_NOFILE,  on the number of files it may open.)  If you get lots of error messages in the kernel log about running out of file handles
          (look for "VFS: file-max limit <number> reached"), try increasing this value:

              echo 100000 > /proc/sys/fs/file-max

          The kernel constant NR_OPEN imposes an upper limit on the value that may be placed in file-max.

          If you increase /proc/sys/fs/file-max, be sure to increase /proc/sys/fs/inode-max to 3-4 times the new value of /proc/sys/fs/file-max, or you will  run  out
          of inodes.

          Privileged processes (CAP_SYS_ADMIN) can override the file-max limit.

ulimit é um limite para um usuário, normalmente não é o mesmo número definido na configuração global, é como um usuário pode usar todos os arquivos no sistema.

    
por 10.06.2015 / 15:45
2

Nada codificado, basta definir sysctl_nr_open por fs.nr_open = 5242880 e re-fazer sysctl -p / login, seu limite é agora 5m. file-max precisa ser o mesmo valor.

    
por 28.06.2015 / 11:06

Tags