Ne peut pas se connecter lorsque nofile est défini sur illimité dans /etc/security/limits.conf

Je définis les valeurs suivantes (-1 sera résolu à illimité, je suppose) dans /etc/security/limits.conf (CentOS 6.2)

Nofile de racine doux -1

Root nofile dur -1

Et je ne peux pas me connecter avec l'utilisateur root maintenant. Comme le problème décrit ici . Régler la valeur en retour résoudrait le problème.

Quelqu'un peut-il aider à expliquer cela?

Mises à jour:

Merci les gars. Je mémorise mes paramètres incorrectement. Ces valeurs devraient être

 root soft nofile -1 root hard nofile -1 

Comme vous l'avez dit @Michael Hampton, votre syntaxe est erronée, mais de toute façon, je ne pense pas que c'est une bonne idée de mettre la limite de fichier illimitée

Vous pouvez lire cette publication pour plus d'informations https://stackoverflow.com/questions/1212925/on-linux-set-maximum-open-files-à-unlimited-possible

J'ai téléchargé la version kernel linux-2.6.32.61 et j'ai vu cela à partir de kernel / sys.c:

  SYSCALL_DEFINE2(setrlimit, unsigned int, resource, struct rlimit __user *, rlim) { struct rlimit new_rlim, *old_rlim; int retval; if (resource >= RLIM_NLIMITS) return -EINVAL; if (copy_from_user(&new_rlim, rlim, sizeof(*rlim))) return -EFAULT; if (new_rlim.rlim_cur > new_rlim.rlim_max) return -EINVAL; old_rlim = current->signal->rlim + resource; if ((new_rlim.rlim_max > old_rlim->rlim_max) && !capable(CAP_SYS_RESOURCE)) return -EPERM; if (resource == RLIMIT_NOFILE && new_rlim.rlim_max > sysctl_nr_open) return -EPERM; 

De man proc

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

De ./fs/file.c:

 ./fs/file.c:30:int sysctl_nr_open __read_mostly = 1024*1024; echo $((1024*1024)) 1048576 

Pourquoi avez-vous besoin de plus de fichiers que nr_open?

J'ai fait un test en utilisant vos paramètres limites.conf:

/etc/pam.d/su:

  egrep -v "^#|^$" /etc/pam.d/su auth sufficient pam_rootok.so session required pam_env.so readenv=1 session required pam_env.so readenv=1 envfile=/etc/default/locale session optional pam_mail.so nopen session required pam_limits.so @include common-auth @include common-account @include common-session 

Maintenant, je vais passer à la racine de l'utilisateur en utilisant la commande su:

 root@ubuntu:~# strace -e setrlimit su - root setrlimit(RLIMIT_NOFILE, {rlim_cur=RLIM64_INFINITY, rlim_max=RLIM64_INFINITY}) = -1 EPERM (Operationnot permitted) 

Vous avez inversé les deuxième et troisième champs.

Il devrait indiquer à la place:

 root soft nofile -1 root hard nofile -1