o comando ulimit, por padrão, altera os limites HARD, que você (um usuário) pode diminuir, mas não pode aumentar.
Use a opção -S para alterar o limite SOFT , que pode variar de 0 - { HARD }.
Na verdade, alimentei 'ulimit' para 'ulimit -S', por isso, o padrão é usar os limites brandos o tempo todo.
alias ulimit='ulimit -S'
Quanto ao seu problema, você está perdendo uma coluna nas suas entradas no limits.conf
Deve haver QUATRO colunas, a primeira está faltando no seu exemplo.
* soft nofile 4096
* hard nofile 4096
A primeira coluna descreve a quem o limite deve ser aplicado. '*' é um caractere curinga, ou seja, todos os usuários. Para aumentar os limites de root , você precisa inserir explicitamente 'root' em vez de '*'.
Você também precisa editar /etc/pam.d/common-session*
e adicionar a seguinte linha ao final:
session required pam_limits.so