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 

2 Solutions collect form web for “Ne peut pas se connecter lorsque nofile est défini sur illimité dans /etc/security/limits.conf”

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 
  • Appliquer ulimit globalement sur Ubuntu
  • Les limites du descripteur de file Ulimit ne sont pas appliquées pour un process particulier
  • Impossible de basculer, ssh vers un user spécifique: su: ne peut pas définir l'ID user: la ressource temporairement indisponible?
  • Quelles sont les ramifications de l'augmentation du nombre maximal de descripteurs de files ouverts
  • Configurez la limite "ouvrir les files" dans Linux par user. Impossible d'installer plus de 1024
  • Paramètres Ulimit dans Oracle 11g sous Linux 5
  • Augmentation de nproc sur CentOS / RHEL
  • incapable de définir une valeur ulimit supérieure pour les files max open
  • limits.conf n'est pas appliqué.
  • "Ouvrir les files" ulimit: contrôler via limits.conf
  • Immergeant l'utilisation globale de la memory pour les process enfants
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.