sudo não passa pelo > operador porque nunca o vê. O shell interpreta o > caractere e sudo só vê echo 4096. Isso significa que o shell como seu ID de usuário tenta abrir / proc / sys / fs / file-max e, portanto, falhar.
O trabalho gira em torno de:
% echo 4096 | sudo dd of=/proc/sys/fs/file-max
% sudoedit /proc/sys/fs/file-max