Todos son correctos, solo muestran diferentes tamaños.
lsmuestra el tamaño del archivo (cuando lo abre y lo lee, esa es la cantidad de bytes que obtendrá)dumuestra el uso real del disco que puede ser más pequeño que el tamaño del archivo debido a los agujerossizemuestra el tamaño de la imagen de tiempo de ejecución de un objeto/ejecutable que no está directamente relacionado con el tamaño del archivo (BSS no usa bytes en el archivo sin importar cuán grande sea, el archivo puede contener información de depuración que no es parte de la imagen de tiempo de ejecución , etc)
Si desea saber cuánta RAM/ROM ocupará un ejecutable excluyendo la asignación de memoria dinámica, size le brinda la información que necesita.