Saya mencoba untuk meningkatkan deskriptor file terbuka maksimum untuk semua pengguna di mesin ubuntu.
Pertanyaan ini agak merupakan tindak lanjut dari pertanyaan ini.
kecuali bahwa saya telah menambahkan entri "root" yang diperlukan di Limit.conf
Ini adalah entri
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000
Baris yang terkait dengan pam_limits.so
telah di-komentar di semua file yang relevan di /etc/pam.d/ dan fs.file-max
telah ditetapkan dengan benar di /etc/sysctl.conf
Namun, saya masih melihat
abc@machine-2:/etc/pam.d$ ulimit -n
1024
setelah reboot.
Apa yang bisa menjadi masalah?
Shell default saya adalah / bin / sh dan saya tidak dapat menggunakan chsh untuk mengubah shell default saya karena pengguna saya pada mesin diautentikasi melalui beberapa skema otentikasi terdistribusi.
Jawaban:
Saya memiliki masalah yang sama, tetapi dengan login SSH saja. Info masuk lokal (via konsol) menghormati
/etc/security/limits.conf
.Ternyata, ketika Anda mengatur:
dalam
/etc/ssh/sshd_config
file, lalu sshd mem-fork anak yang tidak memiliki hak untuk menyiapkan env akun. Karena anak ini tidak memiliki privasi, maka pam_limits.so pengaturan batas atas tidak berpengaruh.Begitu saya atur
masuk
/etc/ssh/sshd_config
dan memantulkan layanan SSH, maka file limits.conf dihormati dengan login SSH.sumber
UsePAM yes
. (+1 untuk menunjuk saya ke sshd-config)Saya menduga ulimit sedang diterapkan oleh / etc / profile atau ~ / .bashrc. Fakta bahwa sistem Anda memiliki pam yang rumit, saya akan mengkonfirmasi bahwa ada sesuatu yang tidak beres.
Saya juga akan mengkonfirmasi bahwa tidak ada file yang salah di /etc/security/limits.d/ diurai seperti disebutkan dalam pam_limits (8).
Saya akan menambahkan parameter debug ke sesi yang diperlukan baris pam_limits.conf dan kemudian menonton / var / log / auth.log saat Anda login.
Jika batas lunak Anda 1024, apa batas keras Anda?
su harus membuat Anda baru, masuk baru dengan su menggunakan argumen -l.
su-l -s / bin / bash
Semoga berhasil.
sumber
ulimit -Hn
Pada server Redhat login sebagai root
/etc/security/limits.conf
perintah strace dicatat sebagai root
dengan shell terbuka loglimit lainnya
Saya dengan cara ini saya tahu bahwa, pam_limits dimuat dan Limit.conf telah dibaca, jika pam_limits Anda dimuat tetapi Anda masih melihat nilai-nilai lain menggunakan ulimit -n, periksa profil shell Anda seperti yang dikatakan @etherfish.
sumber
Saya dengan masalah seperti ini, di sini apa yang saya lakukan.
Perintah strace akan mencetak semua interaksi yang dilakukan proses dengan pustaka eksternal, jadi dengan itu kita bisa melihat apakah konfigurasi kita dimuat atau tidak.
Jadi, saya lakukan, seperti yang disarankan di atas:
Dalam masalah saya, strace log (strace -o log su - nama pengguna) tidak memiliki instance teks batasan, jadi file tersebut membatasi.conf TIDAK dimuat.
Pertama saya pastikan pam_limits.so mencari /etc/security/limits.conf
Jadi, saya memastikan bahwa modul pam_limits.so dimuat dalam operasi auth di file yang terletak di /etc/pam.d ... misalnya, di /etc/pam.d/su, saya menambahkan:
Sekarang, saya dapat membuat "su" untuk pengguna saya dan batasnya akan dimuat. Anda dapat mengulangi langkah strace untuk memastikannya.
Linux saya adalah LFS, jadi kesalahan saya adalah tidak adanya pam_limits.so di file /etc/pam.d. Di distro lain saya tidak berpikir untuk menjadi masalah yang tepat ini.
Tapi semoga ini membantu.
sumber
Dalam kasus saya (Centos 6.10) strace menunjukkan bahwa setelah batas ditetapkan dari /etc/security/limits.conf di proses login kemudian diatur ulang dari /etc/security/limits.d/90-nproc.conf untuk semua non pengguna-root:
sumber